完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
XC16(v1.26)我已经在PIC18F和PIC24FJ微控制器上使用了CAN总线,但是我被dsPIC33EP256MU806实现难住了。我使用来自家庭参考CAN文档(DS70353)的代码作为起点,但是它根本不给我带来任何乐趣。我不确定是否有一个主启用位在一个SFR,我错过了。我的Tx管脚是RF4(RP100),Rx是RG7(RPI119),但是考虑到帧从不离开发送缓冲区,我不认为问题在I/O管脚配置中。我对设置罐缓冲区地址的高低字的行感到困惑。在文档中使用以下行:DMA1STAL=(unsigned int)&can_buffers;DMA1STAH=(unsigned int)&can_buffers;这对我来说似乎是错误的,但是即使我使用另一个实现,也不会得到任何要发送的帧。我正在设置发送请求位,并等待请求位清除,但它从不这样做。没有任何错误指示,根本没有中断。DMA1STAL=((unsigned int)(&can_buffers)&0xffff;DMA1STAH=((unsigned int)(&can_buffers)>>16)&0xff;以上两行是我试图使用的,但是没有区别。编译器抱怨>>16行,但是它确实编译了。我会附上我的代码,但是它或多或少是直接从CAN家族文档来的。如果有人在DSPIC33 EP上使用CAN的经验,我想看看我在文档中读到的是什么。
|
|
相关推荐
8个回答
|
|
|
我试图进一步诊断这个问题,根据DMA,使用DSADR地址来查看DMA控制器最后做了什么,但是它的000个,所以从来没有提出过DMA请求。我再次读取CAN信息,并且设置发送请求位应该发起DMA请求。我会继续寻找,我会错过一个地方。
|
|
|
|
|
|
在阅读DMA系列数据表时,我选择了一行:u eds_unsigned int can_buffer s[NUM_CAN_BUFFERS][8]_.((eds,space(dma));这意味着将缓冲区放在DPSRAM中,但它将缓冲区放在地址0x7e00。根据DSPIC33 EP256MU806的数据表,该数据表不在DPSRAM地址空间中?
|
|
|
|
|
|
我在这里抓着稻草,据我所见,从Microchip项目中使用了Demo代码,DMA& LT;-& G.;ECAN外设接口不起作用。有人在DSPIC33上使用了很多可以让它工作。我已经就这个问题打开了一个支持请求,但到目前为止还没有解决方案。
|
|
|
|
|
|
我不知道这是否会有帮助,但是我确信微型计算机上的ECAN模块是相似的吗?我做了一些关于dsPic33FJ微操作系统的Ecan Lib的工作。它仍然在进行中,但是90%还在那里。我有一个使用Explorer 16板和使用该库的dsPic33FJ256GP710 PIM的工作项目。附件是包含文件和源代码文件目录。该项目太大,不能作为附件添加。但是如果您为dsPic33FJ256GP710微创建了一个项目,并且包括了所有文件,那么它应该编译并运行正常。也许您可以使用一些代码。我没有使用任何MCP库代码,因为最终该代码必须是MISRA兼容的。zip文件,删除.txt
|
|
|
|
|
|
不要忘记检查硅错误和数据表澄清的微。我使用的芯片有5个不同的问题,与Ecan模块没有正常工作!
|
|
|
|
|
|
我不知道你们的硬件。(能驱动IC吗?),RX连接到TX?只要CAN总线被认为是“忙碌”的,没有帧会离开发射机。对于您的设备引脚RG7也是C1IN1-,这是模拟输入。我错过了将这个引脚设置为代码中的数字输入。(因此,RX总是被读取为“0”)。
|
|
|
|
|
|
硬件是带有DSPIC33 FJ256GP710 PIM的Explorer 16板。CAN接口是ECAN/LIN PICTHOP PLUS子板。它正在与PCAN_USB PEAK系统狗通信。按一个按钮发送带有标准ID的Can消息,按第二个按钮发送带有扩展ID的Can消息。发送的消息显示在LCD上。每条消息中的第一个字节在每次传输中递增。接收的消息显示在液晶显示器上。当我们说话时,它就在我前面工作。我只能假设配置Ecan模块配置I/O。Ecanb Lib中剩下要做的是配置中断例程来处理所有错误状态。Ecan模块和DMA Errata阻止FIFO按照数据表中的描述工作。例如,FIFO不能作为循环缓冲区正常工作。由于迫在眉睫的最后期限,Pic被丢弃,为产品选择的IC是ST32F205。一旦Ecan模块和DMA被排序,Ecan库被搁置以重新访问。哎哟,在发布此消息之后,我意识到您可能会添加问题是什么?
|
|
|
|
|
|
我已经发布了一些我的DSPIC33 E DMA例程:
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:25 , Processed in 0.911985 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1940