mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik XC167 CAN-Peripherie benutzen


Autor: Philipp K. (elmostown)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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 K. (elmostown)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Phillip,

hast du immer noch dein Problem? War leider in letzter Zeit sehr 
beschäftigt, Sorry! Melde dich doch kurz.

Microman

Autor: Philipp K. (elmostown)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: rk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

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.