完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
各位先進大家好:
我來自台灣,我用AM335x的IDK及ICE V2開發版做工業控制應用, 遇到了幾個難題未解在dcantxrx這個starterware的project中, 首先starterware裡面有profile=EVMProfileGet();這個程序,無論ICE V2或是IDK都會在這程序內做無窮迴圈, 請問這邊是否是需要修正程序為profile=1; 其次startware監看UART串口部分的定義跟CAN使用的UART口都是UART0,所以我有修改了UART console相關程序, 並指定為UART3此程序在ICE V2下,UART監看口正常,但是在IDK以此程序運行,則會再設置baudrate程序下又是陷入死迴圈?? 請問這是怎麼回事? 最終UART0設置成DCAN1不改任何設定,UART3是監看的UART串口,但是CAN口ICE V2(J9)無訊號輸出 打印出At least one of the errors.........**DCAN is in Bus-off state 請問有使用過starterware裡dcan 的先進們,知道這個問題在哪嗎? 本人在ti E2E社群有反映這個問題,但因為回覆狀況不理想,請求這邊的先進協助。 |
|
相关推荐
7个回答
|
|
你好!建议你看一下Starterware的release notes,里面有device support的,一般来说这个DCAN的driver是支持AM335X GPEVM板的,如果你要在ICEV2或者IDK上面实现,是需要自已做移植的。
|
|
|
|
hwjj940056201 发表于 2018-5-15 00:40 Hi! Steven兄: 明白,但俺已經移植兩個禮拜了,卡住了幾個關卡不明白,但是也有自行衝破幾處大穴,所以開文裡講的直白, 首先明顯的dcan用的是UART0硬件串口,其中的pinmux我看來是沒啥問題的, 但是裡面的打印監看串口UART也設置成UART0是故開文裡,俺有註明自己衝開的大穴是platform.lib 其中uartConsole.c需修正 #define UART_CONSOLE_BASE (SOC_UART_3_REGS) //原先是UART_0 但是以上修改ICE V2能使,IDK EVM板不能使,根據之前俺移植EtherCAT使用RTOS經驗,理應UART監看口都是UART3才是, 為何同樣的源碼運行到IDK就是死機?? 另外主要大穴未沖開,因為UART0所有設置完後,俺有用watch設置讓其能運行單一封包或是多封包收發, 但是都出現bus off的錯誤訊息,這狀況只能在ICE V2跑出,而IDK用原源代碼則是啥都沒有。 附上幾個俺糾錯出現的截圖來示意一下此狀況 來此求助情非得已,因為已在米國TI E2E論壇求救許久,且往下糾錯亦無進展,想詢問高手之經驗解惑。 |
|
|
|
vitamin维他命 发表于 2018-5-15 00:46 你好,我先确认几点: 在你的设计中,你是想使用了UART3作为调试串口,实现信息的输出;同时想把UART0的两个管脚配成CAN接口实现CAN通信。 UART3的调试串口实现已经在ICE板上调通了,但是IDK调不通;CAN通信的话两个板子都没有成功。 是这样的情况吗? 首先,在硬件设置上,我想知道你的UART3的调试串口,和CAN通信接口的transceiver都是通过外加一个板子来实现的吗?在配置的时候有没有把UART0的pinmux配成CAN0的模式呢? 其次,你大可以不必费劲儿把调试串口从UART0改到UART3上,CAN0的通信接口有3种复用的模式,你可以选择另外的两种来实现,不会干扰到你的UART0调试唇口的使用,设置一下pinmux就好了。 |
|
|
|
hwjj940056201 发表于 2018-5-15 01:04 Hi!Steven: 感謝您提示的調試方向,但我有個愚蠢的問題,我之前看過版上跟台灣FAE都有您截圖上的pinmux配置工具的視窗, 請問這是怎麼使用的?工具是在CCS下嗎?還是需要加裝插件? 在ICE V2上以前跑過UART監控串口是在USB(VCP)的接口 ,而IDK使用的則是J10的位置(使用RTOS Uart driver毫無問題,問題是在Uartcolsole.c不改情況下,無輸出,所以才將UART_0_BASE改成UART_3_BASE). 您提及UART0可以復用,但是問題是UART0目前已經給UART轉CAN的硬件用去了,想必把UART直截當打印串口,還是得用掉一個硬件口才是, 所以原始的starterware範例,完全不改,其實是CAN口跟UART打印口都用到UART0,這不怎麼合邏輯的,但我理解mode可能不同。 我在這論壇裡有先做過功課,曾經搜尋到有先人提及dcantxrx或是dcanloopback的範例,其can口實是can1使用的是UART0, 比對TI wiki上電路原理圖(IDK及ICE V2),也是這樣沒錯,但除了uart位址對應I/O口對應到UART0外,以原本的dcantxrx源代碼dcan.c(platform.lib) 裡面又有啥是需要怎樣的修改調適,實在是無頭緒。 感謝您在這的提示,我得到在TI E2E美國那邊不同的調適偵錯方向,以上怎麼使用pinmux Tool及是否能提示uart0使用dcan1的設置欠缺甚麼, 若有心神協助,我在此非常感激。 Henry Chou |
|
|
|
vitamin维他命 发表于 2018-5-15 01:18 了解。 Pinmux是个独立的工具,下载地址:http://processors.wiki.ti.com/index.php/Pin_Mux_Utility_for_ARM_MPU_Processors 对于AM335x,不要用Pinmux v3,就是你说的那个CCS下的工具,目前支持不完善。用上面连接中的工具就好了。 |
|
|
|
hwjj940056201 发表于 2018-5-15 01:33 感謝您的連結及耐心的回覆,實在得褒獎一下中國TI社群的技術支持,稍後我會用這個工具來輔助我調試糾錯, 目前我總結一下我的問題,也就是一個DCAN1的移植調試問題,因為未找到前人完整調試出來的發文,但隱約中看出是用UART0轉成CAN1去做CAN控制, 我搜尋過論壇裡其他做CAN口控制的例子,可惜得大家都是直截用EZSDK6.0然後用linux開發的例子,然後I/O口是外接到BBB或是ICE V2板的外擴接口,沒用現成的J9接口的經歷。 另外的小問題是只用Starterware裡面的UartConsole驅動UART監看口,發覺ICE V2能使,但IDK 卻是死機在UART_3 baudrate設置中. 然而用過RTOS裡面的Uartecho範例的經驗.函式引數uartInstance=3無誤.這個IDK,ICE V2通用.只有ICE舊版為1. 另外分享移植調試的修改部份getprofile()需要屏敝掉.並把profile引數指定為1.也就是prfile=1;不然會有 cpld內一些硬體無窮迴圈在read I2C硬件無法脫離. Henry Chou |
|
|
|
hwjj940056201 发表于 2018-5-15 01:33 感謝TI Steven Liu兄的指導: 我已經在ICE V2下調試can成功了,但是IDK板還是有問題,但我認為應該是pinmux跟其他硬體衝突,為了先做項目,IDK的移植先擺後, 這裡我將目前怎麼移植的作法說一次,讓以後想用ICE V2現成硬件做CAN應用的人,可以不必再走辛苦路調適一次,或是為了屈就starterware 軟件設置,結果得用擴充口外接介面硬件. 我的移植步驟是這樣的. 很明顯的因為ICE V2原理圖指出,現在用的can是can0且對應的是UART0_RXD及UART0_TXD口, 所以先要改DCANPinMuxSetup() 其中CONTROL_CONF_UART_CTSN(0)請改成CONTROL_CONF_UART_RXD(0) CONTROL_CONF_UART_RTSN(0)請改成CONTROL_CONF_UART_TXD(0) 因為原硬件很顯然的是用UART0_CTSN ,RTSN 當CAN1口 而ICE V2及IDK是用UART0_TXD RXD當CAN0口。 其次,把所有DCANTXRX.c裡跟SOC_DCAN_1相關的變數,全改成SOC_DCAN_0 最後,把有衝突的Uartpinmux(0)調用改成3,因為這裡又故意把Uart0 txd,rxd修成Uart口用。 其調適成功後的截圖就如下 CAN trace tool 下 |
|
|
|
只有小组成员才能发言,加入小组>>
315 浏览 1 评论
518 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
758 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
643 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1115 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
9浏览 28评论
18浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
232浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
191浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
51浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 19:55 , Processed in 0.583111 second(s), Total 58, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号