搜索
bottom↓
回复: 28

用官方移植的VUSB-sample注意事项

[复制链接]

出0入0汤圆

发表于 2013-3-9 18:30:47 | 显示全部楼层 |阅读模式
本帖最后由 whimsyB 于 2013-3-9 20:09 编辑

Readme文件提示:
LGT8F08A        VUSB
----------------------
PB0        =>         DP
PB1        =>         DM
INT0        =>         DP
PA0        =>         LED

这个是针对SOP28封装的,如果用ssop24,要注意,PA0的引脚是跟Int0在一起的,所有要把LED脚安排到其他脚上做测试

usb模拟方案,下载官方的hex到芯片,插到电脑不能正常枚举设备,说明程序工作异常,测量xtal1,xtal2脚无波形,判断外部时钟没有震荡
后查询1.6.5数据手册PMCR寄存器说明,发现如下2行关键描述:

工程样品LGT8F08A-16C,  为0时,禁用外部晶振,默认为0
其他所有LGT8F0XA型号,为1时,禁用外部晶振,  默认为0

对应的寄存器位: OSCMEM

修改示例代码为:
        PMCR = (1 << RC16MEN) | (0 << OSCMEN) | (1 << EXTMSEL);
到此正常。

当然如果你要用内部的RC16MHz来替代外部晶振,那么就要想办法校准RC

出0入0汤圆

发表于 2013-3-9 19:46:38 | 显示全部楼层
DP其实只要一个脚就行的。PD2/PA1/INT0
DM随便找那个PORTD的脚。我目前用的是PD4.
感觉用3个脚的设计没必要。
除非是为了用PWM/ICP。

出0入0汤圆

 楼主| 发表于 2013-3-9 20:15:08 | 显示全部楼层
看示例的电路图,有的确实没接,到底接不接int0会有什么区别,我没仔细研究过,如果楼上的兄弟研究过,不妨跟我们说说

出0入0汤圆

发表于 2013-3-9 21:13:27 | 显示全部楼层
whimsyB 发表于 2013-3-9 20:15
看示例的电路图,有的确实没接,到底接不接int0会有什么区别,我没仔细研究过,如果楼上的兄弟研究过,不妨 ...

INT0脚是必须接的。因为V-USB靠INT0脚进入中断。INT0一定要接D+/D-。
其他的口就随便了。
我个人喜欢
PD2/INT0 =>D+
PD4 => D-

出0入0汤圆

发表于 2013-3-12 15:51:47 | 显示全部楼层
1,INT0必须接。2,d-和d+在一组接口里。3,别忘了切到外晶振

出0入0汤圆

 楼主| 发表于 2013-3-13 21:48:01 | 显示全部楼层
Yawgmoth 发表于 2013-3-12 15:51
1,INT0必须接。2,d-和d+在一组接口里。3,别忘了切到外晶振

准确的地说,应该接个外部中断引脚,你看下范例的那个tiny45-rc.png, 就是接到int1的, 我开始就是因为看到这个图,还以为没接int0,实际上还是需要中断脚

出0入0汤圆

发表于 2013-3-18 13:44:27 | 显示全部楼层
我用lgt移植的vusb需要插入些nop, 否则通讯时会有错误的数据内容. 可能我用的12m晶振太山寨了.

分析vusb可以用逻辑分析仪配合闲置的io来分析

还有个问题也不知道我修正的对不对在usbdrvasm12.inc中
  1. ;原始LGT 移植代码 此处可能会引起错误当开启USB_COUNT_SOF, USB_SOF_HOOK或者电平错误时将导致死循环或不执行代码
  2. ;通过增加新寄存器变量修正
  3. waitForJ:
  4.     inc     YL
  5.     in                x5,         USBIN
  6.     sbrs    x5,         USBMINUS
  7.     brne    waitForJ        ; just make sure we have ANY timeout
  8. waitForK:
  9. ;The following code results in a sampling window of 1/4 bit which meets the spec.
  10.     in                x5,         USBIN
  11.     sbrs    x5,         USBMINUS
  12.     rjmp    foundK
  13.     in                x5,         USBIN
  14.     sbrs    x5,         USBMINUS
  15.     rjmp    foundK
  16.     in                x5,         USBIN
  17.     sbrs    x5, USBMINUS
  18.     rjmp    foundK
  19.     in                x5,         USBIN
  20.     sbrs    x5,         USBMINUS
  21.     rjmp    foundK
  22.     in                x5,         USBIN
  23.     sbrs    x5,         USBMINUS
  24.     rjmp    foundK
  25. #if USB_COUNT_SOF
  26.     lds     YL, usbSofCount
  27.     inc     YL
  28.     sts     usbSofCount, YL
  29. #endif  /* USB_COUNT_SOF */
  30. #ifdef USB_SOF_HOOK
  31.     USB_SOF_HOOK
  32. #endif
  33.     rjmp    sofError
  34. foundK:
复制代码

出0入0汤圆

发表于 2013-3-18 15:06:41 | 显示全部楼层
我用官方的代码,换了5台笔记本试用,有一台不识别。

出0入0汤圆

 楼主| 发表于 2013-3-19 00:32:27 | 显示全部楼层
本帖最后由 whimsyB 于 2013-3-19 00:34 编辑
vows 发表于 2013-3-18 15:06
我用官方的代码,换了5台笔记本试用,有一台不识别。


估计你没有用3.3V的LDO吧,建议用LDO来产生3.3V,不要用2个二极管串接
用3.3VLDO后,D+,D-串接的电阻可以改小


具体的分析,印象中 马超老师写的一篇文章,比较具体的测试了不同的usbasp外围电路对稳定性的影响,你找找

出0入0汤圆

发表于 2013-3-20 09:32:59 | 显示全部楼层
whimsyB 发表于 2013-3-19 00:32
估计你没有用3.3V的LDO吧,建议用LDO来产生3.3V,不要用2个二极管串接
用3.3VLDO后,D+,D-串接的电阻可以 ...

用了,上面LDO,钽电容,ESD防护都有。Intel的电脑可以识别,连接Hub后也可以识别。那款不支持的电脑是AMD芯片组,应当是VUSB的时序还是有问题。

出0入0汤圆

 楼主| 发表于 2013-3-20 23:12:43 | 显示全部楼层
amd的芯片组确实不太好用,我之前也用这个模拟USB来做读卡器的,发现amd芯片组usb设备能枚举成功,但是经常读卡失败

出0入0汤圆

发表于 2013-3-21 18:43:35 | 显示全部楼层
本帖最后由 xwkm 于 2013-3-21 18:44 编辑
goodcode 发表于 2013-3-18 13:44
我用lgt移植的vusb需要插入些nop, 否则通讯时会有错误的数据内容. 可能我用的12m晶振太山寨了.

分析vusb可 ...


没错。YL寄存器最好别随便用。
另外就是不能直接 sbic,否则会死机。
CONT_SOF只能去把那个IN指令的寄存器改成别的没有用的。
不过记住在进中断前push寄存器。
另外新的LGT8F88A据称可以直接sbic.那么inc yl指令可以全部替换成NOP.

出0入0汤圆

发表于 2013-3-21 18:45:15 | 显示全部楼层
whimsyB 发表于 2013-3-20 23:12
amd的芯片组确实不太好用,我之前也用这个模拟USB来做读卡器的,发现amd芯片组usb设备能枚举成功,但是经常 ...

为啥我的AMD系统没有任何问题呢?

出0入0汤圆

发表于 2013-3-21 21:05:31 | 显示全部楼层
我这4块785板子没啥问题

出0入0汤圆

发表于 2013-3-23 22:49:22 | 显示全部楼层
goodcode 发表于 2013-3-21 21:05
我这4块785板子没啥问题

中断开始的时候要push x5。否则用户数据会乱掉。

出0入0汤圆

 楼主| 发表于 2013-3-30 23:13:54 | 显示全部楼层
xwkm 发表于 2013-3-23 22:49
中断开始的时候要push x5。否则用户数据会乱掉。


看楼上的这位老兄对模拟的usb很有研究,我想改个能用13.56M晶振的,不知道如何下手,能否讲解下不同的晶振,对应的inc文件要怎么改的原理

avr的汇编没好好的看过,所以看inc文件,感觉茫然

出0入0汤圆

发表于 2013-3-30 23:23:11 | 显示全部楼层
whimsyB 发表于 2013-3-30 23:13
看楼上的这位老兄对模拟的usb很有研究,我想改个能用13.56M晶振的,不知道如何下手,能否讲解下不同的晶 ...

首先你要算出来相对与1.5M的周期。16M的移植是靠时差来进行的。用一次长一次短来避免滑动。
至于13.56M的你要看看偏差有多大,如果在允许的范围内还是可以的。
13.56/1.5=9.04,那么基本上每发3B都要稍微错开点,避免滑动,具体看16M/20M里面的注释,

出0入0汤圆

 楼主| 发表于 2013-4-2 00:25:56 | 显示全部楼层
本帖最后由 whimsyB 于 2013-4-2 00:53 编辑
xwkm 发表于 2013-3-30 23:23
首先你要算出来相对与1.5M的周期。16M的移植是靠时差来进行的。用一次长一次短来避免滑动。
至于13.56M的 ...



按照13.5M来算,刚好是1.5M的9倍,13.56M都在13.5M的1%误差内,应该还是可以的

虽然暂时不理解你说的滑动,还有3B又是怎么算的,,但是还是非常感谢你的回复

出0入0汤圆

发表于 2013-4-2 12:24:38 | 显示全部楼层
楼主可以看看 usbtiny http://dicks.home.xs4all.nl/avr/usbtiny/ 感觉比vusb易读

出0入0汤圆

发表于 2013-4-2 13:06:40 | 显示全部楼层
goodcode 发表于 2013-4-2 12:24
楼主可以看看 usbtiny http://dicks.home.xs4all.nl/avr/usbtiny/ 感觉比vusb易读

USBtiny接口没有VUSB方便。所以我更喜欢用VUSB。

出0入0汤圆

发表于 2013-4-2 13:28:28 | 显示全部楼层
精简了一些东西当然体积也就精简了
例如把USBasp转到usbtiny还是很容易的

出0入0汤圆

 楼主| 发表于 2013-4-6 23:51:44 | 显示全部楼层
看来楼上的二位都是高手,膜拜一下,

usbdrvasm12.inc, 能否通过插入nop指令,配合示波器来调整实现13.56M晶振的工作?

出0入0汤圆

发表于 2013-4-7 13:46:28 | 显示全部楼层
我觉得从usbdrvasm16.inc移植到13.56更容易些

出0入0汤圆

 楼主| 发表于 2013-5-26 13:18:57 | 显示全部楼层
goodcode 发表于 2013-4-7 13:46
我觉得从usbdrvasm16.inc移植到13.56更容易些

兄弟,能否进一步做个修改原理指导啊

出0入0汤圆

发表于 2013-5-27 17:01:16 | 显示全部楼层


里面比较好的文档
USB in a Nutshell.pdf
图解USB协议.pdf
NRZI编码.pdf

其实理解了NRZI编码 avr部分就是在凑指令数 指导实在伤不起

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-6-1 11:24:45 | 显示全部楼层
goodcode 发表于 2013-5-27 17:01
里面比较好的文档
USB in a Nutshell.pdf
图解USB协议.pdf

收到,谢谢

出0入0汤圆

发表于 2015-2-15 23:54:12 | 显示全部楼层
whimsy大哥,能给个邮箱跟你探讨一下用mega8内部比较器做125K读卡器吗?我也搭了一个电路,但是距离很近,没有3~5cm,不知道哪里出问题了。

出0入0汤圆

 楼主| 发表于 2015-3-2 19:30:36 | 显示全部楼层
iamdais 发表于 2015-2-15 23:54
whimsy大哥,能给个邮箱跟你探讨一下用mega8内部比较器做125K读卡器吗?我也搭了一个电路,但是距离很近, ...

有什么问题,可以在这里提出,一起讨论下

你现在的距离大概有多少? 你用什么卡,线圈的外观长宽是多少的呀,卸载匹配是否对了?

出0入0汤圆

发表于 2015-4-21 17:25:21 | 显示全部楼层
whimsyB 发表于 2015-3-2 19:30
有什么问题,可以在这里提出,一起讨论下

你现在的距离大概有多少? 你用什么卡,线圈的外观长宽是多少 ...

加了个低通滤波可以了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 03:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表