完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我正在使用PIC32MZ2048EFM124与MPLAB v3.10、HARMony 1.06和编译器XC32 v1.40一起开发一个项目。我已经在中断模式下启用了USB堆栈,并调用了USB_HOST_BusEnable(0),即使我给USB总线上的全速设备加电,也没有得到任何中断。查看PLIB_USBHS_Inter.EnableSet的调用,其中一般中断设置为USBHS_GENINT_DEVCONN和USBHS_GENINT_DEVDISCONN。这最终导致对USBHS_Inter.EnableSet_Default的调用,该调用可能写入USBCSR1和USBCSR2 SFR寄存器中的字段。未设置。这样做的结果是,由于没有产生中断,所以通过向上拉动D+管脚来明确表示其作为全速设备出现的设备没有被检测到。我仔细查看了u***hs_Inter.s_Default.h,发现正在访问SFR寄存器。以8位的方式在U***ssBuffTyababeleTy缺省函数中。这几乎不可能是所有其他驱动程序软件都使用的是在FrutelalSUn.Cuff.h中的SFR访问宏,看起来似乎只能用32位的方式直接访问SFR寄存器。OrthyY-Me调器是一个系统属性定义,当我修改我的项目中的和声库时,我使用的是:{ IFIFF OrthyIX中介器〉,定义了uSbPrimeStudioType,VRGE&AUBCSR1,定义了uSbPrimeStudio Type掩码0x00 FFUFWON定义了1μs的传输中断。6μl定义了UsByReaveEx中断vsReg和AbbcSr2定义了uSbSuffelySuffyStase0x000 000 FF*定义了UsByReleVixEngultSuffsPoS 0。定义了U***Cyrg&AbsCsR2定义了μs泛型中断。中断TabEnEclipse默认(UBHSS1模块ID索引,USBHSGEN中断通用中断,UBSSHEPTXXRX中断传输中断,UBSSHEPTXXRX中断接收中断){/*此功能将更新一般中断使能*端点中断启用寄存器*/yiFIFF和谐媒体SFR_FIELD_WRITE(_USB_TRANSMIT_TRANSMIT_TRANSMIT_INTERRUPTS_VREG,_USB_trans_TRANSMIT_TRANSMI_INTERRUP_INTERRUPTS_INTERRUPTSVRE_VREFR_SFR_SFR_SFR_SFR_FIFIFIELD_WRITE(_USB_SFR_SFR_SFR_FIFR_FIFIFIFIFIELD_写入_写入(_SFR_SFR_SFR_SFR_SFR_SFR_FIFIEL_FIFIFIFIFIFIFIELD_FIFIFIRERERERERERERERERERERERERERERE_SFR_FIELD_WRITE(_USB_GENERAL_INTERRUPT)7_VREG,_USB_GENERAL_INTERRUPUPTS_MASK,_USB_GENENERAL_INTEREUPTS_POS,一般中断),_USB_GENENENENENENENENENENENENENERAL_INTERRUPUPUPUPTS_MASK_MASK_USB_USB_GEGEGEGEGENERAL_INTEREUPUPUPUPUPTSMASK_USB_GEGEGEGEGEGEGEGEGEGEGENERAL_INTEREUPUPUPUPUP_INTECLCLCLCLCLCL_POS_POS_通用中断));\\\\\\b1BaseAddress+0x8)=receiveInter.s;/*更新通用中断*/*(u***1BaseAddress+0xB)=generalInter.s;#endif}不幸的是,这对两个寄存器中的通用中断DISCONIE和CONNIE位(以及接收和发送中断位)没有影响。它们仍然保持不变。有人建议为什么对两个寄存器的32位写入似乎没有任何效果?
|
|
相关推荐
12个回答
|
|
|
MPLAB对你撒谎?至少尝试V3.15。我可以告诉你,V1.06 USB主机在MSD和CDC上都有工作。你的勤奋是什么?你把你的代码和例子比较了吗?你使用的是什么版本的MHC?最新版本可能不适用于旧版本的和声。如果你在项目中很早,你可能想搬到Huffnyy 1.07.01。
|
|
|
|
|
|
感谢您的快速回复。我使用专有硬件与PIC32 MZ2048 EFM124安装。MPLAB和声是v1.06。我安装了PIC32MZ2048EFM124启动器套件,我将用cdc_basic演示应用程序测试它是否有任何区别。但我的观点是:即使我看不到任何中断(我在两个USB中断函数中都有断点)。他D+信号在我的设备上被放大。而且,在通过USBHS_Inter.EnableSet_Default函数运行之后,查看MPLAB中的外围设备视图,USBCSR1和USBCSR2中的字段都没有更新。nd看到所有正确的值都被写入正确的地址,即:发送中断值0x01到0xBF8E3006(USBCSR1.16-23=0x01)、接收中断值0x00到0xBF8E3008(USBCSR2.0-7=0x00)和一般中断值0x30到0xBF8E300B(USBCSR2.24-31=0x30)。USBCSR1和USBCSR2的外围视图有任何变化。您曾经尝试过用PIC32MZ2048EFM124运行cdc_basic演示吗?
|
|
|
|
|
|
我现在已经测试了一个PIC32 MZ2048 EFM144安装在初学者工具包上的CDCYBASIC演示。我已经安装了MPLAX-IDE V3.26和MHC 1.07.01.结果是相同的。即使我确实通过位于drv_u***hs_host.c中第2335行的USBHS_Inter.EnableSet_Default内联汇编代码观察到8位写到期望的地址白化,两个寄存器USBCSR1和USBCSR2都不会更新。连接器,cdc_basic演示程序永远保持在状态APP_STATE_WAIT_._DEVICE_ATTACH——这应该不会令人惊讶,因为在USBCSR2中,CONNIE中断标志仍然是0。所以,再说一遍,有谁真的看到这个cdc_basic演示程序在PIC32MZ2048EFM上工作过?我应该提到,EFM需要在寄存器USBCRCON中启用USBIE的全局通用中断,驱动程序在初始化期间试图早些时候设置该USBCRCON。这个8位写入操作也失败了。
|
|
|
|
|
|
那么你的设备是CDC的奴隶?不是主人?那个样板应用程序在EVE板上工作吗?如果没有,尝试使用V1.07.01版本的和声。
|
|
|
|
|
|
正在启动工具包上运行CDCYBASIC演示的设备被配置为CDC主机。MHC是1.07.01版。正如我所说,即使我连接了另一个USB设备(一个微博客LISA U130模块),cdc主机也不会受到任何中断,它是一个全速cdc设备,并且已经与基于PIC32MX和MLA的USB cdc主机完美地工作了几年。主机没有得到任何中断的原因在于,在cdc主机上,即使代码看起来在USBHS_Inter.EnableSet_Default中也未设置USBCSR2寄存器中的CONNIE标志。32 MZ2048 EFM144,因为你说你有演示运行,我认为问题在于这个芯片。
|
|
|
|
|
|
你的目标锁定在那个寄存器上。您是否依赖MPLABX显示值?我不信任V3.15以下的任何版本。在程序中读回它,以确定一个易失性变量。并将其设置为非零值以确保其正常工作。我可以在PIC32MZ2048ECH144板上告诉您Harmony V1.06和V1.07msd_basic应用程序的工作。尝试验证您的硬件。我可以在PIC32MZ2048EFH144板上告诉您Harmony V1.06和V1.07作为MSD和CDC主机工作。我发现至于疾病预防控制中心,我唯一能做的就是MC2200。大多数其他USB到串行不使用CDC驱动器,它们是定制的。
|
|
|
|
|
|
嗯,我使用MPLAB V3.26的外设视图来查看UBCSR2寄存器。我可以尝试在cdc_basic演示应用程序中编写一些代码,以便在启用主机总线并编写CONNIE标志之后将寄存器值保存在内存中。我怀疑结果会有什么不同,因为事实上当我插入可信任的cdc从设备时,我没有收到任何中断(我将断点放在两个ISR的前面,这两个ISR都没有达到)。M芯片,一个非常基本的,所以当然值得一试,但是我开始担心线芯片的顶端,EFM。
|
|
|
|
|
|
|
|
|
|
|
|
现在,我已经运行了一个新的测试,并在内存中捕获了USBCSR2的值,存储的值是0x30000000,这与代码应该做的完全对应。现在我知道,MPLAB中的外围设备视图不可信,所以丢失中断的原因一定在别处。范围清楚地告诉我,当我插入可信cdc从设备时,D+信号变高了,所以我应该得到中断?我们的USB总线的主振荡器确实有一些问题,它不可能是晶体,已经被外部振荡器代替了。我对此有点犹豫,因为硬件不是我的专长,所以我得等我们的硬件人员回到办公室。谢谢你的帮助。
|
|
|
|
|
|
我会移动到至少MPLAB V3.15。V3.00到3.10在显示0而不是正确的值方面有一些非常坏的问题。V3.30的工作,但急于铲除的特点造成了问题,我希望V3.35是更好的。
|
|
|
|
|
|
我使用MPLAB V3.26进行CDCL基本演示,所以外围设备视图显然仍是个问题。我之所以没有直接进入v3.30,是因为我的一个同事在编译那个版本时遇到了麻烦。我认为来自外部振荡器的信号可能值得研究——硬件人员可能会工作得很出色……
|
|
|
|
|
|
你可以把这个帖子贴到MPLAX论坛上。或者在那里写一个新的帖子,或者放一张支持票来提醒他们这个问题。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
454 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3529 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1094浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
460浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 16:40 , Processed in 1.199252 second(s), Total 97, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1181