mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C167CR & CAN Initialisierung


Autor: Michael H. (mischka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe einen C167CR µC und wollte das CAN Modul darauf initialisieren.
Hat das schon mal einer gemacht?
Welche Register muss ich da wie beschreiben?

Die "Application Notes" haben mir auch nich wirklich weiter geholfen.

Meine Zielvorstellungen ist es erstmal ledigleicht das CAN Modul zu 
animieren  ganz einfach ein gepulstes Signal auf den Bus zu legen. So 
als "Lebenszeichen" damit man erstmal weiß, aha es geht.

Leider krieg ich nicht die Initilaisierung nicht hin :-(

Vielleicht hat einer das ja schonmal gemacht und kann mir da weiter 
helfen.
Achso - diese generierten Sources haben auch nicht geklappt.

Dankschön!

Micha

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

lade Dir von Infineon einfach mal "Dave" mit einem c167-Modul herunter. 
Hier wird Dir dann ein einfacher aber funktionierender CAN-Treiber 
generiert.

Bye

Autor: Michael H. (mischka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorsten wrote:
> Hallo,
>
> lade Dir von Infineon einfach mal "Dave" mit einem c167-Modul herunter.
> Hier wird Dir dann ein einfacher aber funktionierender CAN-Treiber
> generiert.
>
> Bye

das geht ja leider nicht.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das der CAN-Bus aber etwas anderes ist wie normale Portpins ist dir 
schon klar, oder?

Hier kannst du nicht einfach den Bus "toggeln" und mit dem Oszi 
nachschauen.
Wenn der 167er richtig konf. ist erwartet der C167 mind. ein Gegenüber,
da auf eine gesendete Nachricht ein ACK kommen muss, sonst erhälst du 
eine Fehlermeldung.

Grüße,

Michael

Autor: Michael H. (mischka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael wrote:
> Hi,
>
> das der CAN-Bus aber etwas anderes ist wie normale Portpins ist dir
> schon klar, oder?

Definitiv, ja. P4.5 & P4.6 sind das bei den C167 Derivaten...

> Hier kannst du nicht einfach den Bus "toggeln" und mit dem Oszi
> nachschauen.

Dazu gibt es ja eine Art Controllmessage.
Ich hab zum Beispiel mit dem SYS TEC USB Canmodul so eine MSG auf den 
Bus geworfen, sodass du zu einer TxMSG immer die RxMSG bekommen hast.
Und mit nem I/O Modul kannste dann bspw. auch mit einem Oszi gucken, was 
so passiert.

> Wenn der 167er richtig konf. ist erwartet der C167 mind. ein Gegenüber,
> da auf eine gesendete Nachricht ein ACK kommen muss, sonst erhälst du
> eine Fehlermeldung.

Tja, ja schon klar, darum frage ich ja ob schon mal einer solch 
Konfiguration ohne "Dave" oä. zu Fuß gemacht hat.

Ich steck da nämlich in ner Sackgasse.

MfG

Micha

Autor: Michael H. (mischka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt mal was zusammengezimmert, fällt einem was auf was noch 
fehlen könnte?


/* Define CAN module control registers */

#define   CSR  *(unsigned char*) 0xef00   // Control Status Register
#define   IR  *(unsigned char*) 0xef02   // Interrupt Register
#define   BTR  *(unsigned int *) 0xef04   // Bit Timing Register
#define   GMS  *(unsigned int *) 0xef06   // Global Mask Short
#define    SYSCON *(unsigned int *) 0xFF12   //System Configuration Register

/* Define CAN module control register values */

//CSR
CSR = 0x0021;
/*
INIT    1 - Initialization
IE    0 - Interupt Enable
SIE     0 - Status Change Interrupt
EIE    0 - Error Interrupt Enable
CPS    0 - Clock Prescaler Control Bit
CCE    1 - Configuration Change Enable
TM    0 - Test Mode (must be 0!)
LEC    0 - Last Error Code
TXOK  0 - Transmitted Message Successfully
RXOK    0 - Received Message Successfully
EWRN  0 - Error Warning Status
BOFF    0 - Bus off Status
*/

//IR
IR = 0x0000;
/*
INITD  0 - Interrupt Identifier
*/

//BTR
BTR = (BRP) | (SJW << 6) | (TSEG1 << 8) | (TSEG2 << 12);

//GMS
//11Bit MSGs
GMS = 0xE0FF;

//SYSCON
/*
XPER-SHARE  x - XBUS Peripheral Share Mode Control
VISIBLE     x - Visible Mode Control
XPEN      1 - XBUS Peripheral Enable Bit - !!!CAN!!!
BDRSTEN    x - Bidirectional Reset Enable Bit
OWDDIS    x - Oscillator Watchdog Disable Bit
CSCFG    x - Chip Select Configuration Control
WRCFG    x - Write Configuration Control
CLKEN    x - System Clock Output Enable
BYTDIS    x - Disable/Enable Control for Pin BHE (BHE = Byte High Enable)
ROMEN    x - Internal ROM Enable
SGTDIS    x - Segmentation Disable/Enable Control
ROMS1    x - Internal ROM Mapping
STKSZ    x - System Stack Size
*/
SYSCON = 0xE024;

//Direction Port DP4
//RxD
_putbit(1,DP4,5);
//TxD
_putbit(0,DP4,6);

Micha

Autor: MAGGi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

weiß jemand, wie man nach erfolgreicher Initialisierung des CANs, diesen 
wieder deaktivieren kann, sodass man den CAN_TXD-Pin als regulären 
Gerneral Purpose I/O verwenden kann?

Konkret möchte ich für einen einfach Systemtest des externen 
CAN-Transceivers den TXD-Pin toggeln...

Leider hat dies nicht mit einfachem setzen des DP4.6 auf output und 
toggeln des P4.6 nicht funktioniert ;o(

Bitte um Hilfe !!

MAGGi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.