主題:EM3352的CAN接口 共有69968人關注過本帖 |
---|
SHENYANG |
1樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
EM3352的CAN接口 Post By:2016-3-24 17:05:00 [只看該作者]
EM3352板子上的CAN接口一開始正常,突然在串口上出現 c_can_platform 481cc000.d_can can0: setting BTR=1c4b BRPE=0000這個,在之前正常的時候沒有這個提示。這個提示到底是想表達什么?現在CAN不通了。搞得我還以為是我自己板子的CAN出問題了。
|
單帖管理 | 引用 | 回復 |
hzc |
2樓 信息 | 搜索 | 郵箱 |
加好友 發短信 員工 |
Post By:2016-3-24 17:16:00 [只看該作者]
你好,這個打印信息是驅動打印的,只是can控制器寄存器的一些信息,啟動can接口都會打印這條信息。
can接口不通訊的話,請把具體的情況告知我們,方便找到原因。
|
單帖管理 | 引用 | 回復 |
SHENYANG |
3樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2016-3-25 8:31:00 [只看該作者]
不是的,這個提示消息在以前都沒出現過。現在就是沒發送一次信息就出現一次,很不正常,而且沒法接受,發送到消息也不知道發出去沒
|
單帖管理 | 引用 | 回復 |
hzc |
4樓 信息 | 搜索 | 郵箱 |
加好友 發短信 員工 |
Post By:2016-3-25 10:07:00 [只看該作者]
你好,這條信息的確是在CAN啟動的時候,由驅動信息打印的,如果一直打印,很可能是CAN控制器一直在重啟。
這應該是由于在程序中的函數set_can_bittiming( )加了對CAN控制器異常處理的恢復,如下紅色的部分:
sprintf( str, "ip link set can0 type can tq %d prop-seg %d phase-seg1 %d phase-seg2 %d sjw %d restart-ms 100",
bt.tq, bt.prop_seg, bt.phase_seg1, bt.phase_seg2, bt.sjw );
system( str );
system( "ifconfig can0 up"); 這是在驅動程序內部對于異常處理的恢復機制,啟用之后,在CAN通訊中出現bus_off 、error_warning、error_passive
等錯誤,驅動程序會自動重新復位CAN控制器。 所以從打印信息來看,應該是板卡在通訊過程中檢測到錯誤,驅動一直在復位CAN控制器,建議檢查一下線路的連接是否存在問題,比如短路等情況。
[此貼子已經被作者于2016-3-25 10:09:49編輯過]
|
單帖管理 | 引用 | 回復 |
SHENYANG |
5樓 |
Post By:2016-3-25 11:52:00 [只看該作者]
剛才把核心板拔下來再重新插上發現CAN口正常了,正常工作的CAN口不會出現上面說的那個信息。我也沒動什么東西為什么CAN口會出毛病呢,而且還自動好了,在實際使用的時候會不會出現這樣的狀況啊
|
|
單帖管理 | 引用 | 回復 |
hzc |
6樓 信息 | 搜索 | 郵箱 |
加好友 發短信 員工 |
Post By:2016-3-25 14:47:00 [只看該作者]
你好,那條信息是啟動的時候打印的,正常情況啟動好之后一直運行就不會打印這條信息了。
加入CAN控制芯片的復位功能就是為了在實際的使用中,就算出現問題,也能自動恢復。 如果像之前的情況一直復位,很可能是硬件連接上存在問題,每次發送都檢測到錯誤,所以一直復位CAN驅動芯片。
|
單帖管理 | 引用 | 回復 |
SHENYANG |
7樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2016-4-9 8:49:00 [只看該作者]
今天在使用的時候又出現了這種情況,第一次開機運行都沒問題,然后我中斷了程序,之后can通訊就完全不行了。而且好像can通信出錯了之后還使另一個串口的發送失效了。然后我重啟,重新上電,重新插拔板子,問題都還存在。連接上沒有問題,因為一開始是好用,而出現問題時我沒有做任何電路上的改動,只是將運行的程序終止。
|
單帖管理 | 引用 | 回復 |
SHENYANG |
8樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2016-4-9 9:48:00 [只看該作者]
請看到后回復
|
單帖管理 | 引用 | 回復 |
SHENYANG |
9樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2016-4-9 9:54:00 [只看該作者]
莫名其妙的又好了,真是無語了。
|
單帖管理 | 引用 | 回復 |
SHENYANG |
10樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2016-4-9 16:16:00 [只看該作者]
問題又出現了,依然是突然之間沒有任何預兆的出現了,求版主速速現身解決問題。經過萬用表測試,H與L之間的電阻為60歐姆,并沒有短路,兩塊板子之間的H與H,L與L之間均正確連接,萬用表測量電阻為0,并且重啟之后問題依然存在,不知道應該怎么消除這一故障。
|
單帖管理 | 引用 | 回復 |
SHENYANG |
11樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2016-4-9 16:16:00 [只看該作者]
問題又出現了,依然是突然之間沒有任何預兆的出現了,求版主速速現身解決問題。經過萬用表測試,H與L之間的電阻為60歐姆,并沒有短路,兩塊板子之間的H與H,L與L之間均正確連接,萬用表測量電阻為0,并且重啟之后問題依然存在,不知道應該怎么消除這一故障。
|
單帖管理 | 引用 | 回復 |
hzc |
12樓 信息 | 搜索 | 郵箱 |
加好友 發短信 員工 |
Post By:2016-4-10 15:13:00 [只看該作者]
你好,出現這個情況,肯定是在通訊中驅動檢測到錯誤,才會對can控制器進行復位,這并不是驅動的BUG,只是為了在運行過程中就算遇到錯誤,也能夠自動回復正常。
造成這個問題的原因可能是硬件連接,也可能是總線上的干擾或是其他原因,比如連接線是否為雙絞線,連接的距離以及現場環境等,下次出現反復重啟can控制器的情況,可以將連接斷開,看看板子是否還是一直重啟,這樣就可以判定是板子這一邊的問題還是連接上或者其他問題。
|
單帖管理 | 引用 | 回復 |
SHENYANG |
13樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2016-4-11 7:55:00 [只看該作者]
斷開鏈接依然反復重啟,已經測試過了。這個板子都用了好久了,一直沒毛病,突然出現的問題是怎么回事
|
單帖管理 | 引用 | 回復 |
lgz |
14樓 信息 | 搜索 | 郵箱 |
加好友 發短信 員工 |
Post By:2016-4-11 10:16:00 [只看該作者]
你好,你是否使用的我們esmark通用底板, 經測試我們的通用底板can口兩端電阻是240歐姆,你測試的60歐姆如果是使用的我們的底板,則說明連接有問題,你剛剛斷開連接是把板子上的連接線拔掉了還是只是斷開了另外的設備上的連接線?你可以把開發版上的can口連線都斷開跑一下我們光盤里面提供的test_socketcan程序,看是否出現相同問題
|
單帖管理 | 引用 | 回復 |