Toggle navigation
科创
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
登录
 
注册
电波
论坛
专栏
应用
登录
注册
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
论坛
>
电子信息
>
电子技术
文号
824492
阅读
33573
回复
12
收藏
11
该来的还是回来-STM8的软件USB
金坷居士
2016/08/15
电子技术
IP:澳大利亚
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链接
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
代码以后还会继续改善,增加更多功能,更好的封装
STM8掺了USB,应该能做更多有意思的东西
欢迎USB大神们一起来研究~
来自:
电子信息
/
电子技术
12
0
全部
只看作者
金坷居士
作者
10年4个月前
IP:澳大利亚
824771
8楼
这个主要看单个指令周期快不快和指令周期一不一定
usb对时间要求很高的哦
stc得分析下指令集咯
加载全文
引用
评论
0
金坷居士
作者
10年3个月前
修改于 10年3个月前
IP:澳大利亚
825048
10楼
引用 wlianmin:
我之前移植的,还不完善,后面没时间弄了
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
最近在做新的stm8软usb
从根本把整个PC占用的问题解决了
重新写了rx和tx的程序 不过大部分是汇编的
最近先debug下再发上来
原版的接收程序似乎不能处理Bit-Stuffing这种情况 会比较蛋疼
快来一起坑/w\
顺便问一下 15MHz的晶振呢
加载全文
引用
评论
0
全部
只看作者
在列表中查看
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
编辑
删除
{{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
保存
取消
我也是有底线的
保存中...
保存