本帖最后由 icecut 于 2023-1-4 00:06 编辑
其实去年就准备玩一下risc-v了. 专门买了一本书<计算机组成与设计-硬件软件与接口>第五版 risc-v版本. 记得我第一次买这本书是mips版本. 时隔多年.
我在diy论坛发了个帖子, 准备做个diy的小玩具, 暂时还没想到目标. 我估计最初应该是个usb/网口转多串口的一个工具.
https://bbs.21ic.com/icview-3264974-1-1.html
选型肯定有usb hs接口, 因为fs支持不了多串口. 我以前做st的版主, 手里有一些st的板子. 其中一块usb hs的 板子一直没用起来. 总感觉价格贵那么一点.
我以前做了一块单片机开发板, 用的ch340的芯片, 稳定性很好, 还支持linux, mac等系统, 我是个linux支持者. 如果支持macos我就很开心了.
看置顶区有个risc-v比赛<第二届RISC-V MCU创新应用大赛>, 恰好我买的就是这块板子. 量不多. 就没麻烦wch推荐给我的销售, 直接jlc下单, 拿到一块板子. 内向的人比较懒,不太喜欢跟人打交道, 能用钱买的一般不浪费感情. 等diy的开始赚钱了就可以自己定芯片了.否则让某创一站完成就好了.
板子来了第一坑. 大多数人遇不到.
这边板子配备了3个typec插头. 我还想着真先进, 结果插上,没电. 气了个半死. 我多年没搞usb偷电了就这么欺负我. 但我怀疑是没加pd协议.
因为我去年对usb a接口进行了降级. 家里几乎充电器,电脑, 都不不支持usb a了全是usb c, 这不, 逼着我翻箱倒柜找老电脑,还要找usba-usbc的转接线. 愁人.
幸好我一个有线键盘有这么一条线. 赶紧从公司拿回来(码农悲惨, 要用好东西必须自己买. 公司的入门级),
找出我2014年的thinkpad来, 打开还是能用的. 装好那个mounriver的开发工具. 我对eclipse是很熟悉的, 但是因为是java的比较吃内存,总不喜欢用. 现在买的ide依然是java开发的. 所以为了他专门买的大内存电脑, 用不起来好亏. 我已经正版化了好几个软件了. 这不, 下载了官方的板载代码包搞起.
作为一个底层程序员, 第一件事是看wch-link的实现方案, 发现设备管理器是串口+hid, 尤其是适配linux类软件比如openocd, 这货在12年前我也玩过, 是openjtag的方案. 我没玩精. 领导陆大神玩的非常666.
板子来了2大坑, 这货还要给我考试?
我想把那个蓝灯点亮. 程序编译成功, 下载成功, 验证调试也成功. 好好一块板子为啥灯不亮?
我去看sch,发现这货设计思路清奇, 直接接到了排针上 . 我搜了八遍,没找到不连线的led怎么能亮?
一个惨败的面容去找答案.
在文档介绍中发现. 需要用j3连接到io上才能亮. 这是在考验我20年来的存货啊. 买短路块和杜邦线,从来不差钱. 没有一百根也有八十.
于是我抛弃了那个画的难看的sch文档. 就靠板子标注找到了pa0, 因为我在原理图上半天也没看见pa0在哪. (等我的画个网页版本的原理图)
线连上之后终于能闪灯了. 这不是我的目的.
在mounriver的网站上, 我看到了mac版本的入口, 下载了之后之后工具链, 有一点点失望. 但是也够用,毕竟给我个eclipse我也不一定用, make一下不就够了嘛. 有openocd这么开放的工具,我自己写个界面也不成问题啊.
文档上说openocd要依赖libusb, 以前windows下面搞libusb搞得电脑直犯病. 有点不太喜欢. 一个串口能搞定的你用啥libusb啊. 忍了. brew update了一下, brew install libusb, 你可别小看命令行.特别棒的生产力工具.
话说这个文档啊, 就不能详细点. 带着2个cfg文件, 你就不再带个shell启动文件?
挖空脑子也想起来, 我的确可以--help一下, 蒙了一把, ./openocd -f wch-risc-v.cfg, 程序稳定启动, 开发板蓝灯一闪, 主芯片挂起, 意味着成功了.
真爽啊.
wch-link这个玩意做的这么好, 要是开源一下就更好了. 肯定世界级好评.
我用n年前买的typc转hdml扩展插到电脑上, 转出usba, 然后用usba-usbc线连到了板子上. 以前各种费钱的模块买的不少; 苹果原装, 兼容性刚刚的.
再来一张openocd的图. 看见了这个, 就像猫见了老鼠, 吃是不可能的, 一定有玩起来.
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
看着这俩个端口, 想想曾经写tcl的日子, 太tmd熟悉了.
但是现在都忘记了.
不过既然8个串口都集成过来了, 那必然要让大家知道串口的威力. 作为一个5年嵌入式+5年互联网开发的老专家. 就是一片树叶也能当利器护身.
宝刀未老, 谁与争锋. 一起搞一把啊
@21小跑堂 给点流量哦
|
@icecut :C-C协商9V12V20V这些需要协议,协商5V只要区分主从设备,有下拉电阻5.1K就能识别为UFP,主机会开启供电
@gtbestom :好,我回去找找. 应该是cc需要一个协议. 不是电阻这么简单.因为支持很多电压
@icecut :是的,C-C 需要识别电阻,就是那两个没焊上的电阻,焊上就行
@gtbestom :现在遇到的不是不能, 是不支持两边都是typec的线. usba-usbc是没问题的
看原理图啊,背面有两个电阻没焊,焊上就可以支持 TYPEC PD 供电了
细心猜测,大胆尝试,不仅发现问题还能解决问题,以自身扎实功底完成填坑壮举,不过大佬的思维跳脱的真厉害,文章的内容总能向我想不到的地方跳转,内向的大佬可能比较懒,但是不影响强。
@cooldog123pp :嗯. 你也在用?
沁恒的芯片?