Datum: 08.05.2008 19:18
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
Datum: 08.05.2008 20:06
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
Datum: 08.05.2008 20:15
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
Datum: 25.05.2008 11:21
Hallo Phillip, hast du immer noch dein Problem? War leider in letzter Zeit sehr beschäftigt, Sorry! Melde dich doch kurz. Microman
Datum: 28.05.2008 17:19
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
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel