该来的还是回来-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链接
XXXXXXXXXXXXXXXXXX/rikka0w0/STM8-VUSB

代码以后还会继续改善,增加更多功能,更好的封装
STM8掺了USB,应该能做更多有意思的东西
欢迎USB大神们一起来研究~
来自:电子信息 / 电子技术
12
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
rb-sama
8年5个月前 IP:湖北
824496
脆脆厉害!
stm8的usb功能我之前一直不敢想,如果能稳定传输数据。可以在设计上省去串转usb芯片。
体积至少小两倍,要知道电子产品同样功能体积小一点能带来的改变可不止一点。

强烈建议脆脆出usb评估板!( ´ ▽ ` )ノ
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ry7740kptv
8年5个月前 IP:陕西
824507
毕竟IO模拟USB1.1还是很消耗系统资源的,8位单片基本跑了USB协议栈就干不了别的了,还是用带控制器和物理层的单片实在,LPC的M0系列有很便宜且带USB的单片~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-16533
8年5个月前 IP:江西
824508
用USB为啥不用STM32......
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
8年5个月前 IP:广东
824511
楼上两位同志!难度!难度啊!用STM8撸出USB,基本说明:

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

从折腾难度上来讲,已经吊打阿莫的各种S103 bootloader了。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
amo
8年5个月前 IP:广东
824550
一直没机会折腾……备件、拆机IC、废板上各种M3、M4、Power、FPGA、CPLD……上周还扔了一堆
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
tangler
8年5个月前 IP:广东
824602
建议还是用sdcc编译吧。cosmic编译器简直烂……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32
8年5个月前 IP:四川
824705
不知道STC的玩意能不能实现软件usb,同为8位机。(好像STC是假1T)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
8年5个月前 IP:澳大利亚
824771
这个主要看单个指令周期快不快和指令周期一不一定
usb对时间要求很高的哦
stc得分析下指令集咯
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wlianmin
8年5个月前 IP:广东
824890
我之前移植的,还不完善,后面没时间弄了 XXXXXXXXXXXXXXXXXX/wlianmin/stm8_usb
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
8年5个月前 修改于 8年5个月前 IP:澳大利亚
825048
引用 wlianmin:
我之前移植的,还不完善,后面没时间弄了 XXXXXXXXXXXXXXXXXX/wlianmin/stm8_usb
最近在做新的stm8软usb
从根本把整个PC占用的问题解决了
重新写了rx和tx的程序 不过大部分是汇编的
最近先debug下再发上来
原版的接收程序似乎不能处理Bit-Stuffing这种情况 会比较蛋疼

快来一起坑/w\
顺便问一下 15MHz的晶振呢
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
y5664579
8年5个月前 IP:黑龙江
825267
理论上超过12Mhz主频的mcu都可以达到 但是为了效率足够必须汇编
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

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

所属专业
上级专业
同级专业
金坷居士
学者 机友 笔友
文章
170
回复
1711
学术分
11
2011/09/23注册,4个月6天前活动

怪哉!灵异的三极管电流流向! 这素一个在仿真的RCC电路,示波器上绿色的是集电极电流红色的是发射极电流。窝萌都知道发射姬电流素集电极电流和基极电流之和,所以讲道理发射极电流一定比集电极略大。可仿真结果刷了三观,Q1集电极电流一部分流经基极,然后流经Q2的C->E。

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}