该来的还是回来-STM8的软件USB
AVR的好处都有啥?
这玩意价格差不多,但是VUSB(软件USB)大大扩展了AVR的应用空间。

STM8是一种性价比很高的单片机,上面外设功能很强大,价格也便宜,封装也够小,也够稳定,就是不带硬件USB,而且也没有现成的软件USB哎。

窝想着STM8和AVR是差不多的货色,速度也差不多,理论上AVR能做的STM8也能做!

于是Google了一下,发现了一个老毛子的代码,窝兴冲冲的下载到单片机里,发现电脑根本不是别这个USB设备!!

原理不难,用stm8的定时器和IO接收发送USB包,如果stm8用12M晶振,usb1.1的低速设备速率是1.5Mbit/s,通过适当的延时也能做到。由于对时间的高度敏感,所以毛子把收发部分的核心代码用汇编写了。

窝开始了漫长的修改之路...当然中间也参考了别人的代码和大量文档..
现在做到了用STM8S103F3P6模拟一个自定义的USB-HID设备,HID就是人机接口设备,鼠标键盘都是这种。HID设备可以和主机之间收发信息。

目前的进度是,模拟的HID设备可以被枚举,可以和主机交换信息。
目前没做的:没加入字符串描述符的支持,没封装好,部分电脑不兼容
USB总线有时间的时候,单片机占用率相当高,这个没办法,因为USB就算是低速设备的通讯速率对8位机也是个挑战...

测试兼容列表:
HM67主板的USB2.0
UPC的某种USB3.0芯片
2014款Mac Pro
Surface Pro 3(不兼容,无法枚举,原因不明)

开发环境STVD+Cosmic
单片机STM8S103F3P6

源码:
Github链接
https://github.com/rikka0w0/STM8-VUSB

代码以后还会继续改善,增加更多功能,更好的封装
STM8掺了USB,应该能做更多有意思的东西
欢迎USB大神们一起来研究~
来自 电子技术
2016-8-15 22:14:49
1楼
脆脆厉害!
stm8的usb功能我之前一直不敢想,如果能稳定传输数据。可以在设计上省去串转usb芯片。
体积至少小两倍,要知道电子产品同样功能体积小一点能带来的改变可不止一点。

强烈建议脆脆出usb评估板!( ´ ▽ ` )ノ
折叠评论
加载评论中,请稍候...
折叠评论
2楼
毕竟IO模拟USB1.1还是很消耗系统资源的,8位单片基本跑了USB协议栈就干不了别的了,还是用带控制器和物理层的单片实在,LPC的M0系列有很便宜且带USB的单片~
折叠评论
加载评论中,请稍候...
折叠评论
3楼
用USB为啥不用STM32......
折叠评论
加载评论中,请稍候...
折叠评论
4楼
楼上两位同志!难度!难度啊!用STM8撸出USB,基本说明:

1. 楼主已经把STM8 CPU编程手册翻烂了
2. 楼主已经把USB Spec翻烂了

从折腾难度上来讲,已经吊打阿莫的各种S103 bootloader了。
折叠评论
加载评论中,请稍候...
折叠评论
2016-8-17 10:21:06
2016-8-17 10:21:06
5楼
一直没机会折腾……备件、拆机IC、废板上各种M3、M4、Power、FPGA、CPLD……上周还扔了一堆
折叠评论
加载评论中,请稍候...
折叠评论
2016-8-18 23:43:37
2016-8-18 23:43:37
6楼
建议还是用sdcc编译吧。cosmic编译器简直烂……
折叠评论
加载评论中,请稍候...
折叠评论
2016-8-22 14:46:49
2016-8-22 14:46:49
7楼
不知道STC的玩意能不能实现软件usb,同为8位机。(好像STC是假1T)
折叠评论
加载评论中,请稍候...
折叠评论
2016-8-23 23:56:00
2016-8-23 23:56:00
金坷居士(作者)
8楼
这个主要看单个指令周期快不快和指令周期一不一定
usb对时间要求很高的哦
stc得分析下指令集咯
折叠评论
加载评论中,请稍候...
折叠评论
2016-8-26 16:25:11
2016-8-26 16:25:11
9楼
我之前移植的,还不完善,后面没时间弄了 https://github.com/wlianmin/stm8_usb
折叠评论
加载评论中,请稍候...
折叠评论
2016-8-30 22:24:08
2016-8-30 22:24:08
金坷居士(作者)
10楼
引用 wlianmin:
我之前移植的,还不完善,后面没时间弄了 https://github.com/wlianmin/stm8_usb
最近在做新的stm8软usb
从根本把整个PC占用的问题解决了
重新写了rx和tx的程序 不过大部分是汇编的
最近先debug下再发上来
原版的接收程序似乎不能处理Bit-Stuffing这种情况 会比较蛋疼

快来一起坑/w\
顺便问一下 15MHz的晶振呢

[修改于 3 年前 - 2016-08-30 22:27:46]

折叠评论
加载评论中,请稍候...
折叠评论
2016-9-6 00:35:53
2016-9-6 00:35:53
11楼
理论上超过12Mhz主频的mcu都可以达到 但是为了效率足够必须汇编
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png