Hallo Leute, ich möchte gerne einen Quad Filter-Baustein ( AMC1210 ) von TI über den EBC des µC XC167 von Infineon ansteuern. Folgendes Problem: Man muss den AMC 1210 folgender Maßen beschreiben. Man legt als erstes die Adresse an den Port0 des XC167. Nachdem ALE low ist, wird die Adresse in den ACM 1210 gelatcht. Daraufhin wird als erstes das MSB des 16_Bit_Datenwortes ( 16_Bit_Datenwort um die Register des ACM1210 zu beschreiben, allerdings hat der ACM1210 nur einen 8_Bit_Adress-und Datenbus) angelegt, das wiederrum vom AMC1210 gelatcht wird. Als letztes wird dann noch das LSB an den AMC1210 angelegt und gelatcht,sodass ein 16_Bit_Datenwort eingelesen wurde. Nun hätte man einen Schreib-Vorgang beendet. Meine Frage nun: Kann man diese Vorgehensweise mit dem EBC realisieren? Die EBC legt doch eigentlich nur eine Adresse an den Bus und liest bzw. schreibt ein 8-bzw.16_Bit_Datenwort. Gruß Daniel
Hallo Daniel, Der XC167 kann doch denn 8-bit multiplexed bus, für einen CSx diese bus variante nehmen, dann musste alles von XC167 gemacht werden. Grüße Mark,
Hallo Mark, das ist soweit richtig, aber der EBC (8-Bit multiplexed) legt doch jediglich ein 8_Bit_ Datenwort an. Danach würde eine neue Routine anfangen, indem er eine neue Adresse anlegt und dann ein neues 8_Bit_Datenwort anlegt. Allerdings muss der AMC1210 bei einer angelegten Adresse z.B 0x01 , erst das MSB angelegt bekommen und danach das LSB. Alles bei einem Zugriff. Die nächste Adresse wäre dann beim AMC1210 0x02 ( hier verweise ich auf die Registermap des AMC1210 http://pdf1.alldatasheet.com/datasheet-pdf/view/161269/BURR-BROWN/AMC1210.html). Registermap Beispiel: Adresse Interrupt Register Value 0x00 0x0000 (16Bit) Adresse Filter1 Control Register Value 0x01 0x0000 Das würde ja bedeuten, dass die EBC nur das MSB eines Registers beschreibt, wenn überhaupt. Gruß Daniel
Hallo Daniel, Ich habe doch mal das datenblatt vom AMC1210 gelesen, und Du hast recht. So ein komische addressierung kannte ich noch nicht. Dann bleibt nur noch pin togglen oder SPI übrich. Grüße Mark,
Hi, Es gibt trotzdem zwei Möglichkeiten den Filter direkt zu betreiben. 1: SPI-Mode: Sollte mit der SSC realisierbar sein (habe ich selber noch nicht probiert) 2: Per Hardware Zugriff: Das Verfahren ist dahin aus gelegt das man die Adresse nur übergibt wenn diese sich ändert. Dazu muss man das Protokoll halt selber realisieren. Man Übergibt einmal eine Adresse und fragt, wenn man will zB per 2x CS den Zustand ab. Das sind 4 Zeilen Assamblercode die prima per (Software)Interrupt verarbeitet werden können. und wenn die Adresse noch geändert werden soll, sind das 4 weiter Zeilen (wenn ich mich nicht (im Kopf) verzählt habe).
Könntest Du vielleicht den unter Punkt 2 beschriebenen Hardware-Zugriff noch mal etwas genauer erklären ? Wäre Dir wirklich dankbar. Gruß Daniel
Sorry das die Antwwort einwenig gedauert hat. Ich habe das Datenblatt des Filters nur überflogen, also korrigiere mich falls ich etwas falsch verstanden habe. Prinzipiel handelt es sich bei dem Zugriff auf den Filter um ein parallelen BUS. Der Bus besteht aus den 8 Datenleitungen und den 4 Steuerleitungen. Leider musst du eine Möglichkeit schaffen diese 12 Pins zur Verfügung zu stellen (ein Vorschlag dazu später). Es macht Sinn die Belegung so zu wählen dass die Datenleitungen auf ein 8bit-Port liegt, zb P1H (aber der XC167 hat ja genug ;). Den Vorgang welchen ich als Hardware Zugriff bezeichnet habe, ist folgender: 1. die Pins des "DatenBusses" werden als Eingang für lesen und als Ausgang für schreiben (zb. Konfiguration) konfiguriert. 2. Es werden die entsprechenden Pegel auf die Steuerleitung gegeben (sie Datenblatt) 3(lesen). Es werden die Pegel des Daten in eine beliebige Variable geschrieben. man hat nun das erste Byte. 3(schreiben). die Daten müssen halt analog auf den Ausgang gelegt werden. 4=1. der Vorgang wird wiederholt um das zweite Byte zu lesen bzw. zu schreiben. -> wenn man den Vorgang noch öfters wiederholt wird nach jedem zweiten Byte die Adresse incrementiert. Da es keine maximal Zeiten zwischen den einzelnen Schritten gibt ist eine handhabung im in Software kein Problem. Diese Schritte lassen sich in C per Funktion kapseln. Der µC stellt aber für ASM eine schöne Funktion zur Verfügung, welche die Handhabung genauso komfortabel gestaltet. Wird im UM als Software Traps bezeichnet. Hier werden der die Routine genauso geschrieben wie eine ISR. Der Aufruf wird durch auslösen eines Interruptes gehändelt. Vorschlag zum Vergößern der Verfügbarkeit: Wenn du den Bus zusammen mit anderen Senken nutzen möchtes schalte parallel zu den Filter ein Latch an den Datenbus. und nutze ein zusätzlichen Pin als Select für den Latch=Weitere Ausgänge. Sollte aber bei einem XC167 nicht nötig sein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.