Forum: Mikrocontroller und Digitale Elektronik XC167 TwinCAN Modul


von rk (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich stehe vor folgendem Problem. Obwohl ich beim Phytec XC167 das 
startup file entsprechend für das integrierte TwinCAN Modul abgeändert 
habe, tut sich nichts.

Folgende Änderungen habe ich durchgeführt:

CANDIS=0 -> TwinCAN enabled
$(CONFIG_CS7=1) -> LxBus enabled
-> Adressraum abgepasst

Auch Hinweise aus dem errata sheet habe ich beachtet.


Was ändert sich denn überhaupt nennenswertes über das TCONCS Timing 
Register?

Wäre für Hilfe wirklich dankbar!

rk

Hier der wichtigste Auszug aus dem startup file. Das komplette File 
findet ihr im Anhang.



; ========== CONFIGURE EXTERNAL BUS BEHAVIOUR FOR CS7 AREA ===========
;
; --- Set CONFIG_CS7 = 1 to initialize the ADDRSEL7/FCONCS7/TCONCS7 
registers
; --- Note: The CS7# chip default at reset allows to access the on-chip 
Twin-CAN
$SET (CONFIG_CS7 = 1)
;
; Definitions for Address Select register ADDRSEL7
; ================================================
;
_ADDR7      EQU 0x200000     ; Set CS7# Start Address (default 200000H)
;
_SIZE7      EQU 4*KB         ; Set CS7# Size (default 1024*KB = 1*MB)
                             ; possible values for _SIZE7 are:
                             ;    4*KB            (gives RGSZ1 = 0)
                             ;    8*KB            (gives RGSZ1 = 1)
                             ;   16*KB            (gives RGSZ1 = 2)
                             ;   32*KB            (gives RGSZ1 = 3)
                             ;   64*KB            (gives RGSZ1 = 4)
                             ;  128*KB            (gives RGSZ1 = 5)
                             ;  256*KB            (gives RGSZ1 = 6)
                             ;  512*KB            (gives RGSZ1 = 7)
                             ; 1024*KB  or  1*MB  (gives RGSZ1 = 8)
                             ; 2048*KB  or  2*MB  (gives RGSZ1 = 9)
                             ; 4096*KB  or  4*MB  (gives RGSZ1 = 10)
                             ; 8192*KB  or  8*MB  (gives RGSZ1 = 11)
                             ;                    (RGSZ1 = 12 .. 15 
reserved)
;
; Definitions for Function Configuration Register FCONCS7
; =======================================================
;
; ENCS7: Enable Chip Select (FCONCS7.0)
_ENCS7     EQU    1     ; 0 = Chip Select 0 disabled
                        ; 1 = Chip Select 0 enabled
;
; RDYEN7: Ready Enable (FCONCS7.1)
_RDYEN7    EQU    1     ; 0 = Access time controlled by TCONCS7.PHE7
                        ; 1 = Access time cont. by TCONCS7.PHE7 and 
READY signal
;
; RDYMOD7: Ready Mode (FCONCS7.2)
_RDYMOD7   EQU    1     ; 0 = Asynchronous READY
                        ; 1 = Synchronous READY
;
; BTYP7: Bus Type Selection (FCONCS7.4 .. FCONCS7.5)
_BTYP7     EQU    2     ; 0 = 8 bit Demultiplexed bus
                        ; 1 = 8 bit Multiplexed bus
                        ; 2 = 16 bit Demultiplexed bus
                        ; 3 = 16 bit Multiplexed bus
;
;
; TCONCS7: Definitions for the Timing Configuration register
; ==========================================================
;
; PHA7: Phase A clock cycle (TCONCS7.0 .. TCONCS7.1)
_PHA7       EQU    0    ; 0 = 0 clock cycles
                        ; : = :
                        ; 3 = 3 clock cycles
;
; PHB7: Phase B clock cycle (TCONCS7.2)
_PHB7       EQU    0    ; 0 = 1 clock cycle
                        ; 1 = 2 clock cycles
;
; PHC7: Phase C clock cycle (TCONCS7.3 .. TCONCS7.4)
_PHC7       EQU    0    ; 0 = 0 clock cycles
                        ; : = :
                        ; 3 = 3 clock cycles
;
; PHD7: Phase D clock cycle (TCONCS7.5)
_PHD7       EQU    0    ; 0 = 0 clock cycles
                        ; 1 = 1 clock cycle
;
; PHE7: Phase E clock cycle (TCONCS7.6 .. TCONCS7.10)
_PHE7       EQU    0    ; 0 = 1 clock cycle
                        ; : = :
                        ; 31 = 32 clock cycles
;
; RDPHF7: Phase F read clock cycle (TCONCS7.11 .. TCONCS7.12)
_RDPHF7     EQU    0    ; 0 = 0 clock cycles
                        ; : = :
                        ; 3 = 3 clock cycles
;
; WRPHF7: Phase F write clock cycle (TCONCS7.13 .. TCONCS7.14)
_WRPHF7     EQU    0    ; 0 = 0 clock cycles
                        ; : = :
                        ; 3 = 3 clock cycles
;
;----------------------------------------------------------------------- 
-------

von rk (Gast)


Lesenswert?

So,

hab alles selbst hinbekommen.

Hat sich also erledigt!

von TManiac (Gast)


Lesenswert?

Wäre schön, wenn du noch ein kurzes "und so habe ich das Problem gelöst" 
schreibst.

Auch wenn mein XC16x zur Zeit einstaubt (weil der XC22xx einfach 
bequemer ist), würden andere bestimmt auch gerne teilhaben.

Danke
TManiac

von rk (Gast)


Lesenswert?

Hallo,

ok, hier eine kleine Zusammenfassung:

Datei start_v2.66:

CANDIS = 0  -> TwinCAN enabled

Die Einstellungen für den LxBus wie oben gepostet verwenden.
Wichtig: Startadresse muss auf 0x200000 zeigen und CONFIG_CS7 = 1.
FCONS7 und TCONS7 wie oben übernehmen.

Wichtig: Bei Verwendung des Phycore-XC167 sind die Aus-/ und Eingänge 
des TwinCAN Moduls standardmäßig auf Port 4. Diese müssen softwareseitig 
auf Port 9 gelegt werden (über Register DP9, die beiden Port 9 
ALTSEL-Register und CAN_PISEL).

Dann sollte es klappen!


Grüße
Robin

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
Noch kein Account? Hier anmelden.