stm8s系列的单片机纯软件模拟usb1.1(非usb单片机)

zhou_ru_nian 2015-12-20 11:45:51
想通过足够快的stm8s系列的单片机实现直接用io口接到usb差分信号线上与PC机通讯,比如文字输入,通过编程实现,也可以是其他单片机,但要求单片机内没有usb固件,或者usb模块,
...全文
3388 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_38129107 2018-08-10
  • 打赏
  • 举报
回复
8051能直接模拟USB?
我一直想试试,可是理论上算起来速度不够啊!STC系列最高才35M(为了稳定没敢跑这么高过 ,一般也就设到24-28M)。IO口速度算起来怎么也达不到USB的最低要求啊。
楼上怎么做到的?
huxingkeji 2018-03-20
  • 打赏
  • 举报
回复
引用 19 楼 huxingkeji 的回复:
没人关注么?我目前已经在是16MHz的8051上实现了鼠标枚举,鼠标光标也以移动了。有兴趣的加群477698778
经过1年时间的反复折腾, 终于要量产了,之前小批量跑过100多K, 遇到的问题已经全部解决
huxingkeji 2017-02-21
  • 打赏
  • 举报
回复
没人关注么?我目前已经在是16MHz的8051上实现了鼠标枚举,鼠标光标也以移动了。有兴趣的加群477698778
huxingkeji 2017-01-09
  • 打赏
  • 举报
回复
楼主还在搞么, 我最近也在研究VUSB, 目前的进展是16MHz的8051上实现了数据发送, 可以正常接收一包数据。 有兴趣的话,交流一下,一起搞。我建了一个USB交流群, 群号是:477698778, 加群备注VUSB。
maxwell11 2016-09-23
  • 打赏
  • 举报
回复
先先你的IO口反应速度是多少,没个几十M的速度,还是不要想这些了。当别人都去买衣服穿的时候,你还去买块布自己做,是想证明自己的手艺好呢,还是自己的时间多?
mkelehk 2016-09-22
  • 打赏
  • 举报
回复
用FPGA模拟USB协议可以做到
shinerise 2016-07-13
  • 打赏
  • 举报
回复
赞勇气。也仅仅是勇气可嘉。
EmbedJames 2016-07-13
  • 打赏
  • 举报
回复
当然,速度不太高,好像只能模拟USB1.0的 对于数据量不大的情况,足够用了
EmbedJames 2016-07-13
  • 打赏
  • 举报
回复
主要是成本考量。 用一个普通单片机,具备USB连接能力,通常做成自定义的HID设备,又免驱动,还是很有吸引力的。 如果和上位机连接,至少还可以省一片 USB转 UART芯片,有吸引力
紫藤Teng 2016-03-22
  • 打赏
  • 举报
回复
额,为什么要这样做呢,mcu拿来进行数据处理运算,让USB给外部芯片实现不是更好
zhou_ru_nian 2016-03-18
  • 打赏
  • 举报
回复
是的,我买了个逻辑分析仪,能看到里面的逻辑电平,但我想用纯C语言模拟出来,用16进制数据转二进制直接一位一位在两个io口输出(两个io口相反的),数据是正确的,但速度一下子慢了好多(才三百多KHz),完全跟不上(正确的是七百多KHz),虽然我用的是STC15W204S,但时钟频率也达到了35MHz,可能我程序算法没过关吧
Anjoid 2016-03-18
  • 打赏
  • 举报
回复
因为USB信号的比特流是12Mbps 每个bit的jitter是有范围的 需要精确控制IO时序 用C语音实现起来基本上不太靠谱 就算时钟频率足够你也不知道编译器会把你的C代码编译成什么样的汇编操作 在涉及端口操作时序的地方用几句汇编实现估计容易点 另外突然想到虽然USB信号线是差分对 也没必要用两个单片机IO口做反向的比特流 可以用两个三极管实现单端转差分的电路 好好研究哈 有啥进展给大家分享分享 我们也学习学习
Anjoid 2016-03-17
  • 打赏
  • 举报
回复
USBASP用的就是ATmega8+12M的晶振做的 如果非常熟悉USB协议 一帧帧的每个bit干嘛用的都能搞清楚 能用汇编精确控制MCU端口操作时序 自己实现一个USB1.1的设备还是有可能的 我记得国内也有人做过
zhou_ru_nian 2015-12-30
  • 打赏
  • 举报
回复
大家来关注下呗,本人已经把atmega48pa的官方usbasp程序还原了,可以自主编程,然后想改成hid设备,但hid协议有难倒我了,毕竟还没细看程序,
zhou_ru_nian 2015-12-22
  • 打赏
  • 举报
回复
我今天用了atmega48pa的开发板,下载了那个官方的usb ASP程序进去,设置了熔丝位,一插上去,就能识别了,注意,这开发板可是用的12Mhz的晶振的哦,所以我移植到stm8s那里还是有很大希望的呢,我现在在把那atmega48 的源程序还原,到时就可以移植了,
firesbirds 2015-12-21
  • 打赏
  • 举报
回复
放弃吧,我尝试过。
图灵转世 2015-12-21
  • 打赏
  • 举报
回复
usb时钟频率48M,速度太快。
用户 昵称 2015-12-21
  • 打赏
  • 举报
回复
理论上估计也行不通,直接放弃吧,usb通讯中,phy不停的检测各种帧,单片机弄不了。
芯艺 2015-12-21
  • 打赏
  • 举报
回复
avr能做,stm8够呛
zhou_ru_nian 2015-12-21
  • 打赏
  • 举报
回复
我用16mhz的晶振的单片机都不可以吗?我搞了大半个月,到现在还是毫无进展,但我这里有国外的参考例程,只需要移植过来就可以了,但好像我的能力有限,有的不会移植,,所以很懊恼呢,,,,大神们帮帮忙一起搞起来呗,做成的话以后能做的事多了去,
加载更多回复(1)

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧