Forum: Mikrocontroller und Digitale Elektronik Infineon XC22xx Starter Kit mit unbekannten Register im Beispiel


von asterix (Gast)


Lesenswert?

Hallo,

ich habe das oben beschriebene Starter Kit von Infineon. Nun wollte ich 
(mit Tasking VX) ein paar Beispiele ausprobieren, um der Thematik näher 
zu kommen. Nach einigem rumprobieren hat auch schon so manches geklappt. 
Nun habe ich ein Problem:
Im SCU Treiber (der eigtl nicht verändert werden soll ausser manche 
defines zum Clock etc.) wird ein "CCU60_MCFG" Register z.B. in der 
Scu_InitTimer Funktion angesprochen, welches mein Compiler nicht kennt. 
Ich habe im Datenblatt danach gesucht und es ebenfalls nicht gefunden. 
Es handelt sich offenbar um ein Modul Config Reg, was mich aber nur noch 
stutziger macht.

Manchen Beispielen liegt ein Reg.h bei, in diesem steht dieses Register 
aber auch nicht. Kann doch nicht sein, dass ich der erste bin dem das 
auffällt?

Kann mir an der Stelle bitte jemand weiter helfen? Die Dame beim Support 
konnte leider auch nur weiteleiten (wo niemand war) :-(

Danke und Grüße

von asterix (Gast)


Lesenswert?

huch Fehler: Starter Kit XC2000

von Jan S. (jevermeister)


Lesenswert?

Bist du dir sicher, dass du alles korrekt aufgesetzt hast?

Aus der CX22xxLREGS.h oder XE16xREGS.h die bei den Examples mitgeliefert 
wurde:

// Module Configuration Register
#define CCU60_MCFG             (*((uword volatile *) 0xEA0C))

von asterix (Gast)


Lesenswert?

die habe ich auch schon gefunden, jedoch im Datenblatt findet man 
trotzdem kein MCFG Reg. Also was ist das? Was macht das?

Und kopieren dieses Headers löst bei mir beim compilieren ein Hagel an 
Warnings aus :-( Da müsst ich erstmal schauen wie das nun sauber 
vonstatten geht

von Jan S. (jevermeister)


Lesenswert?

Das ist das COMCFG Bitfield vom CCU60_KSCFG Register.

0xEA00 liegt das CCU60_KSCFG Register, Offset von 0xC ist das 12. Bit.
Für weitere Details musst du im User Manual schauen...

von asterix (Gast)


Lesenswert?

habe vom installierten Tasking das mitgelieferte Beispiel 
"CCU61_XC2267_Plus" ausprobiert und genau bei dem ist dieser Header mit 
den Registern nicht dabei. Ich habe im Tasking Include mal nachgeschaut 
dort gibt es dieses define auch nicht. wunderbar :-)

ich finde aber nicht, wo die Includes zum Tasking führen, kann man die 
abschalten, sodass ich das externe Header File nutzen kann?

danke für deine Antwort. Das COMCFG hatte ich auch schon gefunden, 
erschien mir aber nicht plausibel als MCFG... zumal es im selben 
Register auch noch die Felder SUMCFG und NOMCFG gibt? hab ich gerade 
wohl ein "Brett vorm Kopf"

von Jan S. (jevermeister)


Lesenswert?

Die Beispiele die ich angeschaut habe wurden mit DAVE generiert und 
hatten das Registerfile jeweils direkt dabei.

Wie die Demos von Tasking aussehen weiß ich nicht. Kann ich mangels Zeit 
aber auch nicht testen, sorry. Frag sonst bitte nochmal direkt beim 
Support nach.

von asterix (Gast)


Lesenswert?

Ok schade...

ich glaube deine Angabe war auch nicht ganz richtig, ich habe im SCU 
Treiber folgende Codezeilen in der TimerInit mir angesehen
1
CCU60_MCFG |=
2
   (0U << 0U) |  // T12 Available
3
   (1U << 1U) |  // T13 Available
4
   (0U << 2U);   // MCM Multi-Channel Mode Available
Das lässt zumindest auf ein 3 Bit Register schließen.. Das besagte 
COMCFG ist nur ein 2 Bit Feld im KSCFG Register, die anderen CFG 
Register sind auch nur 2 Bit groß.. langsam bin ich sehr verwirrt, danke 
trotzdem schon

von Jan S. (jevermeister)


Lesenswert?

Das 14. Bit ist reserved und muss mit 0 geschrieben werden. Warum sie 
das nicht einfach weglassen oder aber alle reserved bits mit 0 
überschreiben weiß ich nicht. Habe selbst mit dem XC2200 noch nicht 
gearbeitet. Wie gesagt, frag bitte direkt bei Infineon nach.

von asterix (Gast)


Lesenswert?

Jan S. schrieb:
> Das 14. Bit ist reserved und muss mit 0 geschrieben werden. Warum
> sie
> das nicht einfach weglassen oder aber alle reserved bits mit 0
> überschreiben weiß ich nicht. Habe selbst mit dem XC2200 noch nicht
> gearbeitet. Wie gesagt, frag bitte direkt bei Infineon nach.

Die konnten mir vorerst leider nicht weiterhelfen, deswegen habe ich 
hier mein Glück versucht.
Habe nochmal genau geschaut... und die DAVE Beispiele verwenden diesen 
Header aber dort wird auch gar nicht der besagte SCU Treiber verwendet 
oder initialisiert. Scheint so, als wenn der doch gar nicht sooo wichtig 
ist, obwohl alleine die oben gezeigte Codezeile die Timer13/14 scheinbar 
verfügbar macht...

von Jan S. (jevermeister)


Lesenswert?

Klar. Es lässt sich mit dem DAVE-Code schon viel machen, dafür braucht 
man nicht zwangsläufig die Treiber. Meist reicht schon das UM, aber DAVE 
vereinfacht das :-)

von asterix (Gast)


Lesenswert?

Ich kam leider mit Dave nicht soooo zu recht und ich baue lieber selbst 
meinen code zusammen ;-)

Aber interessant ist: bei Dave heißt es statt SCU -> SCS... und die 
Codezeilen mit dem MCFG fehlen beim Dave code komplett! witzig... ich 
werde meinen Code mal auf die Dave Variante anpassen

danke trotzdem schonmal

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.