會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



(1) 2 »


關於dsPIC33EV256GM106 with CAN baud
初級會員
註冊日期:
2012/05/07 14:39
所屬群組:
註冊會員
文章: 21
等級: 3; EXP: 31
HP : 0 / 57
MP : 7 / 1282
離線
Hi 版大:
您好,
目前改採用dsPIC33EV256GM106,
它的CAN Baud rate有所不同~
Demo code中的設定如下:
/* Set up the CAN module for 250kbps speed with 10 Tq per bit. */

//C1CFG1 = 0x47; // BRP = 8 SJW = 2 Tq
//C1CFG2 = 0x2D2;

目前想改成500k或是1000kbps CAN bit rate,
但一直弄不請楚:Propagation time segment bits改如何取設?
8-bit好像沒有這個項目~

附加檔案:



gif  PRSEG.gif (18.10 KB)
9233_5cf8d240a299f.gif 3680X3264 px

6月06日 16:48:22
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
就如圖一的說明,CAN 速度的決定是由最基本的時間計算單元 TQ (Time Quanta) 來決定的。TQ 是第一個要設定的條件,可以用公式計算出來 2 * (BRP+1) * Tosc 。(參考 Data Sheet 裡的說明)

基本上算出TQ 後再依據所需要一個 Bit 的時間組合來計算出 Baud 的。
一個 Bit 是由 Sync + Prop. Seg + Phase Seg1 + Prog Seg2 所組成的。如圖一的說明三個 Seg 所需的 TQ 可以設定 1TQ ~ 8TQ 不等。

所以 CAN Baud 就看你在一個 Bit 的傳輸設定裡總共使用了多少TQ。一般速率上的改變是不會去動 Bit 的 Segment 的,主要還是直接修改 TQ 的 BRP 暫存器數值作變更的。

CAN 有一些教材可以下載來看看。
1. 在教育訓練光碟下的 特殊領域技術相關課程 --> CAN202A CAN202B CAN202C Ver.B CAN Bus Workshop

http://www.microchip.com.tw/Data_CD/

2. 在教育訓練光碟二: 有 CAN 的 MP4 講解影片可以參考看看。

http://www.microchip.com.tw/Data_CD/eLearning/index.htm

圖二是使用 MCC 時當選用 CAN MCU 時可以子動計算所需的 Bps.

附加檔案:



jpg  擷取.JPG (68.67 KB)
16_5cfddb8dd13fe.jpg 745X517 px

jpg  擷取1.jpg (20.27 KB)
16_5cfddb9ed9681.jpg 539X151 px

6月10日 12:25:06
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
初級會員
註冊日期:
2012/05/07 14:39
所屬群組:
註冊會員
文章: 21
等級: 3; EXP: 31
HP : 0 / 57
MP : 7 / 1282
離線
Hi版大:
非常感激您的撥空解說~
目前嘗試使用MCC來協助設定,
但好像目前只支援到800Kbps~無支援到1Mbps CAN speed.

附加檔案:



jpg  MCC.jpg (470.35 KB)
9233_5cff0b7340793.jpg 3680X3264 px

6月11日 10:05:41
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
如果是選 1+3+3+3 總共 10 TQ 的話,若 TQ = 1uS , 則 CAN 的速率為 100Kbps。

以此推算應該是你的 Fcan 的頻率不夠高,或是 BRP 的預除器的設定數值過高。所以請依公式去做 Fcan 及 BRP 的設定。


參考一下 CAN202B 的 CAN Baud Rate 的設定 (dsPIC33EP 系列):

#define FCAN 60000000L
#define BITRATE 125000   // 125Kbps 的速度
#define NTQ 20 // Bit Time 使用 20TQ (1+5+8+6=20)
#define BRP_VAL ( (FCAN / (2 * NTQ * BITRATE)) - 1 )
/* FCAN is selected to be FCY , FCAN = FCY = 60MHz

Bit Time = (Sync Segment + Propagation Delay + Phase Segment 1 + Phase Segment 2)=20*TQ = N
Phase Segment 1 = 8TQ
Phase Segment 2 = 6Tq
Propagation Delay = 5Tq
Sync Segment = 1TQ


BRP_VAL = ( (FCAN / (2 * NTQ * BITRATE)) - 1 )

*/

6月11日 15:01:40
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
初級會員
註冊日期:
2012/05/07 14:39
所屬群組:
註冊會員
文章: 21
等級: 3; EXP: 31
HP : 0 / 57
MP : 7 / 1282
離線
Hi 版大您好~
非常感激您的指導,
目前有商借到dsPIC33EV 5V CAN-LIN Starter Kit,
使用其Demo code~
500Kbps可以設定成功給其他CAN裝置溝通無異常:
void InitCAN(void)
{
// drive the CAN STANDBY driver pin low
_TRISG9 = 0;
_LATG9 = 0;
_TRISF1 = 0;
_TRISF0 = 1;

// remap the CAN module to the proper pins on the board

RPINR26 = 0x60; // connect CAN RX to RPI96
RPOR9 = 0x000E; // connect CAN TX to RP97

C1CTRL1bits.REQOP = 4;

while (C1CTRL1bits.OPMODE != 4);
C1CTRL1bits.WIN = 0;

/* Set up the CAN module for 250kbps speed with 10 Tq per bit. */

//C1CFG1 = 0x47; // BRP = 8 SJW = 2 Tq
//C1CFG2 = 0x2D2;//SEG2PH=2 TQ;SEG1PH 17 TQ;(PRSEG=010 TQ)

/* Set up the CAN module for 500kbps speed with Tq per bit. */

C1CFG1 = 0x07; // BRP = 8 SJW = 1 Tq
C1CFG2 = 0x0C8; //SEG2PH=1 TQ;SEG1PH 7 TQ;(PRSEG=1 TQ)

機板上X1僅8Mhz,但應該可以設定到CAN bit rate:1Mbps~
但目前嘗試多組設定仍無法達成1Mbps bit rate設定.

6月11日 15:52:50
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
按照 CAN 雙絞線的傳輸距離:
1Mbps == 40米
125Kbpa == 500 米
所以你要那麼高的速度,CAN Transceiver 也要超過 1Msps 的元件。
CAN 標準的最高速度是訂在 1Mbps, CAN-FD 標準速度才有到 2Mbps或 8Msps 的點對點傳輸。

你說板子上的 Crystal是 8Mhz, 但這並不表示 Fcan 就是 8MHz。
dsPIC33EV上的震盪迴路有 PLL 電路,它可以倍頻道很高的頻率。所以看到是 8MHz Crystal 元件不見得是只有 8MHz 的主頻。

dsPIC33EV 這顆最高速度可以到 70MIPS, Fosc 最高 (85度C) 是 170MHz。且 Data Sheet 指出 CAN 最高設定速率可達 25Mbps.

附圖是該元件的 PLL 倍頻方塊及計算方式。

附加檔案:



jpg  擷取.JPG (58.21 KB)
16_5cff6f27b0f27.jpg 817X581 px

6月11日 16:58:07
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
初級會員
註冊日期:
2012/05/07 14:39
所屬群組:
註冊會員
文章: 21
等級: 3; EXP: 31
HP : 0 / 57
MP : 7 / 1282
離線
Hi 版大:
非常感謝您的說明與指教,
有確認dsPIC33EV 5V CAN-LIN Starter Kit有支援到1M bps CAN Speed.
目前啟用MCC tool協助設定如附圖,
Fcan=60000000
c1cfg與c2cfg按照MCC給的設定值,
來設定1M bps,
確認線長不會超過40M,大約1M線長~
終端電阻也有正確用上(250K與500K bps是可以通訊的),
但還是無法正常與其他CAN裝置使用1M bps溝通,
是否還有其他Register需要加以設定呢?

附加檔案:



gif  MCC-3.gif (298.06 KB)
9233_5d02113092aae.gif 3680X3264 px

gif  MCC-2.gif (318.45 KB)
9233_5d02113a3be24.gif 3680X3264 px

gif  MCC-1.gif (314.52 KB)
9233_5d0211adc14a7.gif 3680X3264 px

6月13日 17:04:59
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
1Mbps 無法通訊?

CAN node 兩端是否都有接 22o ohm 終端電阻。
一般在連線除了使用對絞線 (CAN+ & CAN-) 最好還要將雙方的地線一起連接起來。
建議找個 CAN Bus Analyzer 來監測一下雙方的資料。
https://www.microchipdirect.com/product/search/all/can%20analyzer

6月14日 13:34:12
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
初級會員
註冊日期:
2012/05/07 14:39
所屬群組:
註冊會員
文章: 21
等級: 3; EXP: 31
HP : 0 / 57
MP : 7 / 1282
離線
Hi 版大:
您好~
感謝您的提示,
如前所提過250K/500K bps CAN speed可以正常運作,
dsPIC33EV 5V CAN-LIN Starter Kit可以自行送出CAN data,
也是使用PEAK CAN Analyzer來接收CAN data來做確認~
可以收到正確資料,且就已經有建構好終端電阻;接地;與適當的連接線長度(約1M),
但目前就是1 M bps的傳輸率是一直有問題的~
CAN Analyzer端都是收到Error,
才會懷疑是dsPIC33EV 5V CAN-LIN Starter Kit中,
dsPIC33EV256GM106關於CxCFG1與CxCFG2暫存器數值及搭配Fcan數值問題,使用MCC tool估算與設定CxCFG1與CxCFG2暫存器數值;
Fcan數值也有嘗試過60000000;
但目前仍無改善~

6月17日 12:12:24
轉換PDF檔 列印


Re: 關於dsPIC33EV256GM106 with CAN baud
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
有沒有很確定 CAN 的速率在 60MHz Fcan 下確實是 1Mbps 的速率?

CAN Error 有很多種,你可以指出到底是哪一種 Error 狀態 (CRC Error, ACK Error, Form Error, Stuff Error, Bit Error)?

還有你的 SJW, SyncSeg, PropSeg, PHSeg1, PHSeg2 個是設多少個 TQ?

TQ 目前所設定的時間為何?

6月17日 14:41:08
轉換PDF檔 列印



(1) 2 »



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project