www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18F ECAN compile time options


Autor: Martin Leonhardt (martin_l60)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich bin gerade dabei mir einen 18F2580 für CAN zu konfigurieren. Ich 
benutze den 18C Compiler und die ECAN 'C' Routines laut application Note 
AN878.

Der Bus arbeitet mit 11-bit Nachrichten bei 128kB.

so nun muss ja die ECAN.def angepasst werden. Ich finde folgende 
Definitions.

// SJW value - Value must be between 1-4 inclusive.
#define ECAN_SJW_VAL 2
//
// BRP value - Value must be between 1-64 inclusive.
#define ECAN_BRP_VAL 4
//
// PHSEG1 value - Value must be between 1-8 inclusive.
#define ECAN_PHSEG1_VAL 8
//
// PHSEG2 value - Value must be between 1-8 inclusive.
#define ECAN_PHSEG2_VAL 8
//
// PROPSEG value - Value must be between 1-8 inclusive.
#define ECAN_PROPSEG_VAL 8

irgendwie hier muss ich die Taktfrequenz einstellen. Das ist ja schön 
und gut - leider geht aus dem AN leider nicht hervor wie genau sich die 
Werte ergeben.

Der PIC läuft mit einem 4Mhz Kristal.

Hab ich was übersehen - überlesen?

Gruß Martin

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin,

schau mal ins Datenblatt vom PIC18F2580. Im Kapitel 23.0 ECAN Module 
findest du die Brechnungsgrundlagen für die von dir angegebenen Defines.
Du musst allerding vorerst die reale Takfrequenz von deinem PIC 
bestimmen. Das findest du unter 2.0 im Datenblatt. Anschließend kannst 
du den BRP (Baud Rate Prescaler) entsprechend konfigurieren.

Gruß René

Autor: Martin Leonhardt (martin_l60)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

Also ich muss sagen ganz klar ist mir nicht was Tq und Tbit wirklich 
sind. Insbesondere der Zusammenhang zwischen Noominal Bit Time und X mal 
Tq ist mir noch schleierhaft.

Aber soweit hab ich mal folgende Rechnung auf Seite 335 nachvollzogen. 
Einfach von hinten sozusagen.

Nun ich hab ein 4MHz Crystal und arbeiteim HSPLL Mode -> Fosc = 16MHz
Baudrate ist 125KBd

Daraus folgt:

Nominal Bit Rate = 125Kb/s
Tbit = 1/125Kb/s = 8µs

Mit NBT = 8 Tq ergibt sich dann:

Tq = 8µs / 8 = 1 µs

Tq = (2 * (BRP+1))/Fosc
BRP+1 = (Tq * Fosc)/2 = (1µ * 16)/2 = 8

---> BRP muss ich auf 8 einstellen.

Richtig?

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

also wenn man sich nicht unbedingt in die CAN Theorie einarbeiten möchte 
gibt es ein einfache Möglichkeit.

http://intrepidcs.com/support/mbtime.htm

Mit diesen kleinen Tool kannst du dir für die 125Kb/s die Werte für die 
jeweiligen Segmente erzeugen lassen. Diese Einstellungen sind notwendig 
um die Physik der CAN-Kommunikation zu gewährleisten.
Wie der BRP für deine Anwendung zu wählen ist, wird dir dort auch 
vorgegeben.
In meinem aktuellen System haben wir für unseren Controller bereits 
einen fertig vorkonfigurierten CAN-Stack erhalten, so dass ich mich bis 
jetzt zum Glück auch noch nicht in alle Tiefen reindenken musste. Ich 
hoffe du kommst damit etwas weiter.

Gruß René

Autor: Martin Leonhardt (martin_l60)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Tip - vielen Dank.

Werde ich gleich probieren.

Martin

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.