打印
[STM8]

stm8s单片机模拟usb

[复制链接]
楼主: 周小年
手机看帖
扫描二维码
随时随地手机跟帖
21
周小年|  楼主 | 2016-1-7 10:12 | 只看该作者 回帖奖励 |倒序浏览
自己顶起

使用特权

评论回复
22
周小年|  楼主 | 2016-1-20 11:42 | 只看该作者
怎么都没人顶 下啊,这可是需要大家的智慧的呢

使用特权

评论回复
23
desertsailor| | 2016-1-20 23:56 | 只看该作者
STM8的指令执行时间的不确定性使得其不适合模拟需要严格时序的USB上。

使用特权

评论回复
24
周小年|  楼主 | 2016-1-21 14:13 | 只看该作者
是的,我又不会汇编,只能用C语言,但这个单片机我觉得功能挺多的,想来还是比较具有开发的价值,本人已经做好了avr的hid键盘,想研究的可以找我,

使用特权

评论回复
25
jcdzxh| | 2016-1-22 11:43 | 只看该作者
本帖最后由 jcdzxh 于 2016-1-22 12:04 编辑

STM8模拟USB,我关注了很久,也自己写过一些代码测试,难度很大,最难点在于指令的执行与其所在地址有很大关系
也做到些实验来实际了解指令执行需要的CK数,PM0044手册讲得不是很具体,举的例全是指令地址对齐的情况,具体分下面的情况,欢迎有兴趣的同学参与讨论
1。即使没有分支,当指令跨两个字时,时钟数有可能不同
2。如果分支指令执行时处于F1,下面分支到F2或F3,又要看F2/F3预取与否分别是啥情况?
3。分支指令不跳,并且下条指令处于同一F
另外手册5.4.5举例的预取插入一等待我始终无法理解,看了不下30遍。
我是用STVD COSMIC嵌汇编实验的,代码一变可能关键的地址变化,很麻烦,纯汇编又不太现实

我现在过一段时间会翻出来再实验一下,每次都会有点新的理解和进展


上面说得比较糊涂,再举个例好理解些:比如分支往前跳,就肯定没预取,然后如果这条指令跨地址(末位0/4/8/C),则要两次取指,肯定就要多一个CK
目前做的模拟收/发,发生这种情况的概率相当大,没有想到解决办法

使用特权

评论回复
26
奔牛滚滚| | 2016-1-22 12:31 | 只看该作者
本帖最后由 奔牛滚滚 于 2016-1-22 12:32 编辑
jcdzxh 发表于 2016-1-22 11:43
STM8模拟USB,我关注了很久,也自己写过一些代码测试,难度很大,最难点在于指令的执行与其所在地址有很大 ...

你这个是因为速度不够吧?如果16M甚至24M并保证在规定周期内应答,可以不用管指令的ck数了吧?
另外换iar编译汇编方便些.

使用特权

评论回复
27
lxyppc| | 2016-1-22 13:28 | 只看该作者
jcdzxh 发表于 2016-1-22 11:43
STM8模拟USB,我关注了很久,也自己写过一些代码测试,难度很大,最难点在于指令的执行与其所在地址有很大 ...


看来这位兄弟也对stm8颇有研究
是这样的,为了解决地址问题
我专门写了一个工具来保证汇编的跳转地址能够4字节对齐
因为有的指令可以分别用2字节,3字节,4字节实现
还要保证跳转范围
后开发现除了指令位置
指令中数据的寻址位置也会影响指令周期

使用特权

评论回复
28
周小年|  楼主 | 2016-1-22 14:58 | 只看该作者
你们说的都挺高层面的,小弟我刚出来社会呢,才起步,无法理解你们说的继续研究哈

使用特权

评论回复
29
jcdzxh| | 2016-1-25 15:39 | 只看该作者
lxyppc 发表于 2016-1-22 13:28
看来这位兄弟也对stm8颇有研究
是这样的,为了解决地址问题
我专门写了一个工具来保证汇编的跳转地址能够 ...

下午又做了个测试,同样的指令,改变顺序执行时间13T,12T,11T都有可能,应该是“如果当前指令需要上一条指令的运算结果,流水线插入一个等待”
13T
        nop                  
        ld (1,sp),a
        srl (1,sp)
        rrc (2,sp)
        ld a,(x)
        xor a,(1,sp)
        cpl (y)
        nop
        nop       
        nop       
        nop

12T
        nop
        ld (1,sp),a
        nop       
        srl (1,sp)
        rrc (2,sp)
        ld a,(x)
        nop
        xor a,(1,sp)
        cpl (y)
        nop       
        nop
11T
        nop
        ld (1,sp),a
        nop       
        srl (1,sp)
        nop
        rrc (2,sp)
        ld a,(x)
        nop
        xor a,(1,sp)
        cpl (y)
        nop       

使用特权

评论回复
30
林如幽兰| | 2016-3-3 11:29 | 只看该作者
楼主,能留个联系方式不,我现在也在搞这个,感觉挺有用的,或者麻烦您加我一下,谢谢了qq352043664

使用特权

评论回复
31
dogglove| | 2016-8-2 15:07 | 只看该作者
好啊,正好用上

使用特权

评论回复
32
djk0125| | 2016-11-9 23:54 | 只看该作者
为什么下载的文件长度都是5k左右!文件错误

使用特权

评论回复
33
qgmfly| | 2016-11-17 12:06 | 只看该作者
先收藏学习了,最近领导要求关注一下usb

使用特权

评论回复
34
gyh02133| | 2016-11-20 22:04 | 只看该作者
很难,

使用特权

评论回复
35
huxingkeji| | 2017-1-9 11:38 | 只看该作者
楼主还在搞么, 我最近也在研究VUSB, 目前的进展是16MHz的8051上实现了数据发送, 可以正常接收一包数据。 有兴趣的话,交流一下,一起搞。我建了一个USB交流群,  群号是:477698778, 加群备注VUSB。

使用特权

评论回复
36
huxingkeji| | 2017-2-21 17:15 | 只看该作者
huxingkeji 发表于 2017-1-9 11:38
楼主还在搞么, 我最近也在研究VUSB, 目前的进展是16MHz的8051上实现了数据发送, 可以正常接收一包数据。 ...

最新进度, 可以枚举出一个鼠标,光标可以移动。

使用特权

评论回复
37
powersea| | 2017-3-3 22:16 | 只看该作者
有没有朋友做出来的,求有偿指导,谢谢!

使用特权

评论回复
38
aydf369| | 2017-4-4 18:34 | 只看该作者
huxingkeji 发表于 2017-2-21 17:15
最新进度, 可以枚举出一个鼠标,光标可以移动。

用的什么型号的8051芯片?16m的时钟行吗?我用的stc12c5616的,24m时钟可以模拟usb通信。

使用特权

评论回复
39
aydf369| | 2017-4-4 20:31 | 只看该作者
我感觉时钟频率是1.5m的倍数最好

使用特权

评论回复
40
jkl21| | 2017-4-4 22:04 | 只看该作者
这个usb驱动有吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则