www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik XC167 CAN-Peripherie benutzen

Autor: Philipp Klein (elmostown)
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
Autor: Microman (Gast)
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
Autor: Philipp Klein (elmostown)
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
Autor: Microman (Gast)
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
Autor: Philipp Klein (elmostown)
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






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net