Hallo,
ich habe mein CAN mit einem dsPIC30F6011A auf 250kHz eingestellt (habe
ich zumindestens gedacht). Aber er läuft unter 83,3kHz (was ich nicht
haben möchte).
Ich habe den Pic mit einem externen 6MHz Quarz beschaltet. die
Configurations-bits des Pics sind
1 | _FOSC(CSW_FSCM_OFF & ECIO_PLL8); //Run this project using an external crystal routed via the PLL in 8x multiplier mode
|
2 | _FWDT(WDT_OFF); //Turn off the Watch-Dog Timer.
|
3 | _FBORPOR(MCLR_EN & PWRT_OFF); //Enable MCLR reset pin and turn off the power-up timers.
|
4 | _FGS(CODE_PROT_OFF); //Disable Code Protection
|
Dann setze ich noch folgende Bits
1 | C1CTRLbits.CANCKS = 1;
|
2 | C1CFG1bits.SJW = 0x00; // 1TQ
|
3 | C1CFG1bits.BRP = 0x01; // TQ=2*(BRP+1)/FCAN=133,33ns
|
4 | C1CFG2bits.SEG1PH = 0x03; // 4TQ
|
5 | C1CFG2bits.SEG2PH = 0x03; // 4TQ
|
6 | C1CFG2bits.PRSEG = 0x02; // 3TQ
|
mit 1/250kHz dauer ein bit 4us. mit BRP=1, dauert ein TQ 133,33ns. Also
habe ich 12 TQ in einem Bit. diese habe ich mit berücksichtigung der
Einstellregeln auch so gesetzt.
Jetzt frag ich mich und weiss keine Antwort, wiso der CAN mit 83,3kHz
läuft und nicht mit 250kHz.
Bin die Einstellungen immer wieder durchgegangen, aber meiner Meinung
nach müssten die Richtig sein. muss ich sonst noch etwas einstellen?