Hallo zusammen, ich mache ein Projekt mit dem XC167 und dem CAN-Bus. Mein Problem: Ich kann nicht in die CAN-Register (z.B. ACR oder BCR) schreiben. Wenn ich was reinschreibe und das Register wieder auslese, steht der Defaultwert drin. Ich habe gelesen, dass die CAN-Peripherie über CS7 ausgewählt wird. In meiner Startup-Datei habe ich die Adressen (ADDRSEL, ...) entsprechend angepasst, leider ohne Erfolg. Kann mir jemand helfen? Vielen Dank schonmal, Philipp
Hallo Phillip, ein paar mehr Infos sind schon notwendig, wenn man Dir schnell helfen soll. Zum Beispiel ist es sehr hilfreich wenn Du deinen Sourcecode postest, damit man nachvollziehen kann was Du alles gemacht hast. Was steht in deiner Startup-Datei? Welche Settings hast Du gemacht? Was, wo und wie schreibst/liest Du aus den ACR oder BCR Registern? Gruß Microman
Hallo, ich schreibe z.B. CAN_ACR = 0x41; (Programmierung in C) und dann zum Lesen z.B. printf("ACR: %x", CAN_ACR); Die Registernamen sind durch die xc16x.h festgelegt. Zum Programmieren benutze ich Keil µVision 3. Hier ein Auszug aus der Startup-Routine: ; <h>Definitions for Address Select register ADDRSEL7 ; =================================================== ; <o> CS7 Start Address <0x0-0xFFFFFF:0x1000> _ADDR7 EQU 0x200000 ; Set CS7# Start Address (default 100000H) ; <o> CS7 Size in KB _SIZE7 EQU 1024*KB ; Set CS7# Size (default 1024*KB = 1*MB) ;</h> ; ; <h>Definitions for Function Configuration Register FCONCS7 ; ======================================================= ; ; <q> ENCS7: Enable Chip Select (FCONCS7.0) _ENCS7 EQU 1 ; 0 = Chip Select 0 disabled ; 1 = Chip Select 0 enabled ; ; <q> RDYEN7: Ready Enable (FCONCS7.1) _RDYEN7 EQU 1 ; 0 = Access time controlled by TCONCS7.PHE1 ; 1 = Access time cont. by TCONCS7.PHE1 and READY signal ; ; <o> RDYMOD7: Ready Mode (FCONCS7.2) ; <0=> Asynchronous <1=> Synchronous _RDYMOD7 EQU 1 ; 0 = Asynchronous READY ; 1 = Synchronous READY ; ; <o> BTYP7: Bus Type Selection (FCONCS7.4 .. FCONCS7.5) ; <0=> 8-bit Demultiplexed Bus <1=> 8-bit Multiplexed Bus ; <2=> 16-bit Demultiplexed Bus <3=> 16-bit Multiplexed Bus _BTYP7 EQU 2 ; 0 = 8 bit Demultiplexed bus ; 1 = 8 bit Multiplexed bus ; 2 = 16 bit Demultiplexed bus ; 3 = 16 bit Multiplexed bus ;</h> ; ; <h>TCONCS7: Definitions for the Timing Configuration register ; ========================================================== ; ; <o>PHA7: Phase A clock cycle (TCONCS7.0 .. TCONCS7.1) <0-3> _PHA7 EQU 0 ; 0 = 0 clock cycles ; : = : ; 3 = 3 clock cycles ; ; <o>PHB7: Phase B clock cycle (TCONCS7.2) <1-2> <#-1> _PHB7 EQU 0 ; 0 = 1 clock cycle ; 1 = 2 clock cycles ; ; <o>PHC7: Phase C clock cycle (TCONCS7.3 .. TCONCS7.4) <0-3> _PHC7 EQU 0 ; 0 = 0 clock cycles ; : = : ; 3 = 3 clock cycles ; ; <o>PHD27 Phase D clock cycle (TCONCS2.5) <0-1> _PHD7 EQU 0 ; 0 = 0 clock cycles ; 1 = 1 clock cycle ; ; <o> PHE7: Phase E clock cycle (TCONCS7.6 .. TCONCS7.10) <1-32> <#-1> _PHE7 EQU 8 ; 0 = 1 clock cycle ; : = : ; 31 = 32 clock cycles ; ; <o>RDPHF7: Phase F read clock cycle (TCONCS7.11 .. TCONCS7.12) <0-3> _RDPHF7 EQU 0 ; 0 = 0 clock cycles ; : = : ; 3 = 3 clock cycles ; ; <o>WRPHF7: Phase F write clock cycle (TCONCS7.13 .. TCONCS7.14) <0-3> _WRPHF7 EQU 3 ; 0 = 0 clock cycles ; : = : ; 3 = 3 clock cycles ;</h> </e> Vielen Dank für die Antwort, Philipp
Hallo Phillip, hast du immer noch dein Problem? War leider in letzter Zeit sehr beschäftigt, Sorry! Melde dich doch kurz. Microman
Hallo Microman, danke, wir haben das Problem mittlerweile gelöst. Es war ein Fehler in den Einstellungen für die CS-Leitungen. Danke für die Antworten, Philipp
Hallo, dieser thread ist zwar schon etwas älter, allerdings hoffe ich trotzdem, dass hier nochmal jmd reinschaut. "Es war ein Fehler in den Einstellungen für die CS-Leitungen"... was für ein Fehler? Ich versuche verzweifelt, das TwinCAN Modul in Betrieb zu nehmen, aber irgendwetwas scheint mit der start_v2.a66 Datei nicht zu stimmen... Ich habe darin bereits das TwinCAN Modul aktiviert (candis=0), ebenso den LXBus. Ich habe auch im xc167 errata nachgelesen. Alle Tipps haben nicht funktioniert... Vielleicht hat ja jemand eine funktionierende startup Datei (start_v2.a66)? Danke! rk
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.