Can Bus

Gast #169010
Lesenswert?

Hallo,
meine Can-Bus Kommunikation hat zwischen dem TMS320F2812 uhatte
funktioniert. Nun musste ich noch einen Busteinehmer hinzufügen, der
nur mit Standard Protokoll (11-Bit Identifier) arbeitet. Ich habe dann
alle Bus-Teinehmer auf Standard Protokoll umgestellt. Trotzdem kann der
TMS320F2812 nun keine Daten mehr empfangen. (Baud-Rate und ID sind
natürlich auch richtig eingestellt)
Muss ich noch was umstellen oder was könnte der Grund für dieses
Fehlverhalten sein?
danke
Gruss
Samuel
Gast #169012
Lesenswert?

ok...hier ist die initialisierung meines Can busses zum empfangen von
daten:
danke Samuel


/*--------------------------------------------------------------*/
/*initialize Can-Bus*/
/*--------------------------------------------------------------*/

void InitECan(void)
{
EALLOW;
GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6 = 1;
GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7 = 1;
ECanaRegs.CANTIOC.bit.TXFUNC = 1;
ECanaRegs.CANRIOC.bit.RXFUNC = 1;
ECanaRegs.CANMC.bit.SCB = 1;
ECanaRegs.CANMC.bit.CCR = 1;
while(ECanaRegs.CANES.bit.CCE !=1){}
ECanaRegs.CANBTC.bit.BRPREG = 19;
ECanaRegs.CANBTC.bit.TSEG1REG = 10;
ECanaRegs.CANBTC.bit.TSEG2REG = 2;
EALLOW;
ECanaRegs.CANMC.bit.CCR = 0;
while(ECanaRegs.CANES.bit.CCE !=0){}
ECanaRegs.CANME.all = 0x0;

EDIS;
}

/*--------------------------------------------------------------*/
/*prepare for receive*/
/*--------------------------------------------------------------*/

ECanaMboxes.MBOX16.MSGID.all = 0x20540000;

ECanaMboxes.MBOX16.MSGID.bit.STDMSGID = 1;
ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;
ECanaShadow.CANMD.bit.MD16 = 1;
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;

ECanaShadow.CANME.all = ECanaRegs.CANME.all;
ECanaShadow.CANME.bit.ME16 = 1;
ECanaRegs.CANME.all = ECanaShadow.CANME.all;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren