關於CAN BaudRate計算
|
||||
---|---|---|---|---|
新會員
|
您好:
我使用dsPIC30F5011,我看30F datasheet的計算公式好像有錯,所以我參考18系列的公式去求,但是代進去之後,寫入晶片量測到的卻不是這樣,希望你們可以幫忙一下!謝謝 以下是計算的過程: -------------------------------------------------------------------------- Fosc = 16Mhz 設定NTQ = 16,CAN BaudRate=125Kbps 利用C18 CAN公式代入求BRP,公式如下 BRP=( (Fosc/NTQ) / (2*B) ) -1 =( (16Mhz/16) / (2*125K) ) -1 = 4-1 = 3 依據規則 SEG2PH >= SJW PRSEG + SEG1PH >= SEG2PH 可以取得125K設定值 BRP=3,SJW=2,SEG1PH=7,SEG2PH=4,PropSEG=4 最後實際上去量測頻率,得到的卻是41.666K 後來我改用Fosc = 120MHz 我設定BRP=15,SJW=2,SEG1PH=3,SEG2PH=3,PropSEG=1 實際上去量測到的值,才是125K -------------------------------------------------------------------------- 剛剛有聯絡你們,這樣的方式有算錯嗎? 如果有錯誤,希望你們可以給予指正一下 謝謝~
發表於: 2008/4/16 16:09
|
|||
|
關於MCP2515的疑問
|
||||
---|---|---|---|---|
新會員
|
想請問一下Microchip出的這一款CAN Transceiver的必要性
我有去找他的Datasheet 而且看很多發展板包含Microchip的,都有加這一顆IC 或者是改用82C251這一顆 有聽一個朋友說做CAN可以不用接Transceiver 直接兩顆dsPIC C1RX C1TX對接就可以開始傳輸資料 不知道這個到底是不是可行的? 因為最近要去買Chip來接 希望有做過的朋友可以給我ㄧ些意見...謝謝!
發表於: 2008/3/14 16:02
|
|||
|
請問關於Delay
|
||||
---|---|---|---|---|
新會員
|
大家好
如果我要設計一個簡單的延時程式 用C寫的話,就是用一個for迴圈 例如:for(i=0;i<100;i++); 因為用C Compiler 可是我怎麼知道這樣一個for指令,到底用了多少cycle??? 因為我知道執行一個 Cycle的執行時間 = 1/(Fosc/4) 之後 for 迴圈執行一圈的Cycle X 迴圈次數 X 系統執行的Cycle時間 = 總延時時間 這樣子不知道有沒有錯?
發表於: 2008/3/13 15:15
|
|||
|
關於CAN Filter跟ID設定
|
||||
---|---|---|---|---|
新會員
|
看了CAN202講義以及範例介紹之後,有一些疑問
Filter主要是要濾掉不想要的Message 在我看了相關範例之後-Loopback跟On bus 其中-Ex1.Loopback #define OUTGOING_ID 0X210 #define INCOMING_ID 0X200 #define MESSAGE_ID1 0x200 #define RX_Filter0 0x1FF -Ex2.On Bus #define MESSAGE_ID1 0x88 #define RX_Filter0 0x200 若依範例設定 這樣Filter0跟Message_ID1不一樣,那麼不就永遠傳不過來了嗎? 那麼如果我依據講義上的說明來做設定的話 不是應該Mask設為1,然後Filter0設為欲接收端的Messige_ID 不知道這樣的觀念是否有錯 因為還是新手對這一方面有興趣想研究,希望各位前輩能不吝給予賜教 謝謝大家
發表於: 2008/3/11 13:51
|
|||
|