完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,几个月来,我正在努力理解如何使用我的PIC18F2455的USB模块。我想了解寄存器是如何工作的,并能够使用PIC与我的计算机通过USB通信。我已经使我的客户端,没有问题(在主机)。我的第一个目标是能够把一些字节从我的计算机转移到我的微控制器上,反之亦然(基本的HID)。问题是我无法编写任何程序!我已经让我的库使用I2C来管理寄存器等等。我一直在想,这将是同样的工作,也许更大一些,但仍然是相同的代码风格。有太多的寄存器要管理,文档很好,但是不够明确,不能理解我到底应该处理什么,尤其是哪个寄存器在其他寄存器之前使用(例如USTAT、UIR、端点……)。我不知道什么是自动的(由模块管理)和什么不是。我甚至不能在计算机中附加或检测PIC。我试图使用Micro.(GitHub)的MLA,但是需要的文件似乎并不全部存在。我搜索了很多,但是找不到任何可以帮助我的东西。你能带我到一个网站(或PDF)上的真实文章,可以帮助我吗?或者一个能帮助我的密码?或者任何能让我走得更远的东西,因为我现在完全被卡住了…谢谢。
|
|
相关推荐
16个回答
|
|
|
在过去的十年里,我一直在使用MLA的一个代码,用于一个带有PIC18F2455或PIC18F2550的USB CDC项目。我还得到它作为一个通用的“定制”的USB设备,与我自己的驱动程序。驱动程序从XP变为Vista,使用Win8和Win10变得更加困难。你应该把USB开发模块中的一个作为起点,或者复制你自己的主板的大部分硬件。我并不假装理解USB堆栈中所发生的一切,但是添加自己的代码和额外的硬件并不困难。
|
|
|
|
|
|
从工作USB示例开始,将代码移植到这个示例中,比向工作项目添加USB功能要容易得多。
|
|
|
|
|
|
问题是,在我看来,微芯片没有提供关于如何使用(具体地)微控制器的USB模块的良好文档。我无法用我的代码(只是试图让主机检测到它)通过‘lsu***’命令(GNU/Linux主机)检测设备。当从UCON寄存器设置位USBEN时,设备和主机是否自己进行枚举,或者在设置之后我必须管理一些位?我还使用调试器看看会发生什么…嗯,这对我没有帮助。我对枚举过程很感兴趣。请问您有什么建议吗?
|
|
|
|
|
|
USB是一个庞大的复杂协议,PIC必须做大量的工作来支持它。只有最低级的硬件支持。如果没有运行一个巨大的代码块来正确地支持协议,那么主机将无法检测到您的设备。
|
|
|
|
|
|
我假设我的计算机(主机)上的内核应该做它的工作,不是吗?我错过了什么?我想知道我是否必须在枚举(设备侧)管理寄存器。我现在的目标是检测它(VID,PID和那些东西),而不是传输数据。
|
|
|
|
|
|
我提到的“代码”是PIC,不是PC。对不起“it”的用法含糊不清……就USB而言,获取VID、PID等数据与其他任何数据传输一样。在PIC中必须有代码来提供它。
|
|
|
|
|
|
好吧,没关系。QHB,如果我向您展示启动/枚举过程的代码,您能帮助我吗?
|
|
|
|
|
|
没有。我自己也没从头开始做。除非你深入研究了整个USB协议,否则你无法让它从头开始工作。
|
|
|
|
|
|
我不认为这个问题现在就是议定书。我认为这是关于微控制器寄存器的使用。但没关系,谢谢
|
|
|
|
|
|
嗨,PIC18F2455属于PIC18F4550家族,它可能是微芯片上最知名的USB设备。在互联网上有数千个使用PIC18F4550的例子。如果你要开始,我建议从PIC18F4550和MLA开箱即用USB设备的例子和微芯片演示开始。类似于PopDEM FS的例子。我从至少8年开始使用它们(HID、CDC、MSD、.…)。然后,一旦您对XC8和USB栈有了经验,您会发现很容易将项目迁移到其他派生工具,比如PIC18F2455。你的应用程序,并确保你不会阻塞主循环…因为USB帧来了,每个毫秒你的主循环必须执行比1毫秒最坏的情况。
|
|
|
|
|
|
“旧的”MLA代码一直对我工作得很好,特别是在这个(旧的)PIC上。
|
|
|
|
|
|
不是,你觉得只写几个寄存器就能把它连接起来,事实并非如此。正如大家所说,从工作示例开始,然后根据需要修改它。
|
|
|
|
|
|
您注意到没有VID/PID寄存器吗?
|
|
|
|
|
|
是的,还有那些说我应该尝试一个例子代码和/或使用来自微芯片的HAL的家伙。知道我在你建议的那天再次尝试使用MLA(不回答愚蠢的事情)。我不能编译任何项目中包含的必要文件。我使用XC8,我有一个错误,它没有告诉我它遇到了什么地方(未定义的符号没有引用)。我尝试了PIC18编译器,情况更糟。我还试图找到另一个我可以使用的源代码,但什么也没找到(与以前一样)。我不是傻瓜,我已经试过你的建议,谢谢你,但我还是坚持下去。我所说的HAL是这个:https://github.com/MicrochipTech/mla_u***告诉我是否有其他更好的链接。
|
|
|
|
|
|
我在这里说:http://www. McCys.com /论坛/ M422691.ASPX(我用了2.6长)。不确定GITHUB的事情…
|
|
|
|
|
|
如果你有一个没有建立的XC8项目,把它附加在这里。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:50 , Processed in 0.975557 second(s), Total 104, Slave 87 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2208