完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,所有,我正在与PIC18F45 50,并通过USB与LIUSB总线与一些供应商定义的命令。特别是一个命令导致设备出现与主机断开的间歇性错误。在正常情况下,命令会成功,但是这个错误大约每千次尝试一次,并且需要很多特殊的处理来检测它的发生和修复。我主要是一个软件开发人员,没有为这个设备编写固件,但我的理解是我们是J。UT使用Microchip USB实例代码与设备进行通信。我主要想弄清楚这是不是我能修复软件方面的问题,或者我们必须开始通过设备固件来修复它。通过Beagle 480查看它,我可以显示出正在发生的事情。一个成功的控制转移显示为一个控制转移,如在UBStruts中所示。PNGA失败的转移如UBFultUR.PNG所示。而不是捆绑在一起作为一个单一的控制转移,比格解释它作为两个独立的,不相关的数据包(一个设置TXN和OUT TXN),并检测后续数据包作为孤立的数据包,Beagle的文件描述为:“孤儿交易是交易WH。BICLE分析器只看到一部分,因为目标设备在USB树的另一个分支上。由于主机上的所有消息都在整个总线上广播,Bigle分析器只会看到一半的对话。“但是,我的设备是唯一插入到这个特定的集线器中的,并且看起来正在发生的是控制转移被分成单独的PAR。TS和孤儿包看起来只是意想不到的。关于如何修复这个问题有什么想法吗?
以上来自于百度翻译 以下为原文 Hi all, I'm working with a PIC18F4550, and communicating it over USB using libu*** with some vendor-defined commands. One command in particular is causing an intermittent error where the device will appear disconnected from the host. Under normal circumstances the command will succeed, but this error happens about once every thousand tries, and requires a lot of special handling to detect that it happened and fix it. I'm primarily a software developer and didn't write the firmware for this device, but my understanding is we're just using microchip u*** example code for communication with the device. I'm mostly trying to figure out if this is something I can fix software-side, or if we have to start digging through the device firmware to fix it. Looking at it over a Beagle 480, I can show what's happening. A successful control transfer shows up as a control transfer as shown in u***success.png A failed transfer shows up as shown in u***failure.png. Instead of being bundled together as a single control transfer, the Beagle is interpreting it as two separate, unrelated packets (a SETUP txn and OUT txn), and detecting the follow-up packets as Orphaned packets, which the Beagle documentation describes as: "Orphaned transactions are transactions which the Beagle analyzer only sees a portion of because the target device is on a different branch of the USB tree. Since all messages from the host are broadcast throughout the entire bus, the Beagle analyzer will only see one half of the conversation." But, my device is the only one plugged into this particular hub, and it looks like what's happening is the control transfer is being split up into individual parts, and the orphaned packet only appears to be unexpected. Any ideas about how to fix this? Attached Image(s) |
|
相关推荐
1个回答
|
|
你是使用一个单独的USB集线器,像一个坞站或者连接到你的Beagle和PIC设备的东西吗?也许这个链接应该有帮助:HTTPS://www-ToalPosix.com /Byg/2015/03/ADSE-SPLIT-OPHANE-CONTET-BEGALISUB-480-PrtoLoop-CaltusRES-DATSITS/IT称这些孤立的数据包是由于码头/外部集线器和主机/ PC之间的通信引起的,因为Beagle是通过码头连接的。/Hub,它看到这些广播消息,并将它们理解为不同的USB树分支上的消息。
以上来自于百度翻译 以下为原文 Are you using a separate USB hub like a docking station or something which connects to your beagle and the PIC device? Maybe this link should help: https://www.totalphase.com/blog/2015/03/causes-split-orphaned-packets-beagle-u***-480-protocol-analyzer-captures-detects/ It says that these orphaned packets are due to the communication between the dock/external hub and the host/PC. Since beagle is connected via the dock/hub, it sees these broadcast messages and comprehends them as ones on a different USB tree branch. |
|
|
|
只有小组成员才能发言,加入小组>>
5250 浏览 9 评论
2037 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2266 浏览 5 评论
788浏览 1评论
680浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
609浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 14:36 , Processed in 1.257394 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号