电子技术
0
该来的还是回来-STM8的软件USB
金坷居士 2016-8-15 21:52:52
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楼
0
脆脆厉害!
stm8的usb功能我之前一直不敢想,如果能稳定传输数据。可以在设计上省去串转usb芯片。
体积至少小两倍,要知道电子产品同样功能体积小一点能带来的改变可不止一点。

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

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

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

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

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

2016-9-6 00:35:53
11楼
0
理论上超过12Mhz主频的mcu都可以达到 但是为了效率足够必须汇编

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

万流景仰
专栏收藏夹发私信
学术分 11科创币 343总主题 171 帖总回复 1708 楼拥有证书:会员 笔友 机友 学者
注册于 2011-09-23 14:21最后登录 2019-02-20 00:03

个人简介

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

Github  https://github.com/kccd/nkc.git

科创研究院 (c)2001-2019

蜀ICP备11004945号-2 川公网安备51010802000058号