Forum: Mikrocontroller und Digitale Elektronik Mit MSP430F2013 parallele Datenübertragung programmieren


von Christoph B. (beyarea)


Angehängte Dateien:

Lesenswert?

Hallo ich plane die Programmierung zur parallelen Datenübertragung von 
14 bit IQ Paaren an einen digitalen Upconverter. Dieser ist ein Slave 
und wird über den MSP430F2013 programmiert. Vom Slave wird der Takt von 
1MHz zur datenübertragung gesendet, es sollen entweder nur 14 Bit IWere 
oder 28 Bit IQ Paare übertragen werden. Die Daten müssen anliegen, wenn 
ich einen Controlpin des Slaves high setze taktet dieser die Bits mit 
der rising edge des 1 MHz Taktes.
Ich weiss nur nicht wie ich das Timing jetzt genau programmieren soll, 
bis ich den Controlpin wieder auf low setze, um die Übertragung zu 
beenden. Es müssen ja 14 oder 28 Takte vergehen. Meine Ideen sind 
einfach 14 oder 28 Zeitzyklen zu warten oder über den Portinput die 
Rising edges des taktes vom Slave zu zählen und bei Erreichen der Anzahl 
den Controlpin auf 0 zu setzen. Ich weiss aber nicht, ob ich das mit dem 
Systemtakt des MSP genau synchronisiert bekomme.
Da ich den MSP auch zur seriellen Programmierung über SPI benutze läuft 
der DCO auf 1 MHZ und ich teile ihn  auf 32 kHz für den SPI-Takt.
Ich müsste ja den Systemtakt möglichst hoch konfigurieren, ich kenn aber 
auch nur die Einstellung des DCOs die ich nicht ändern möchte. Wie stell 
ich das jetzt am besten ein oder programmiere am elegantesten?
Denke mal, dass hier Fachleute sind, die mich hier unterstützen können, 
im Anhang ist mal das Datenblatt des Slaves.
Danke schon mal

von Christian R. (supachris)


Lesenswert?

Schau dir mal im User Guide die Möglichkeiten der Timer-Blöcke mit den 
Capture/Compare Einheiten in Verbindung mit den Output Units an. Du 
kannst den Takt vom Slave, also die 1MHz zu dem deine Daten synchron 
sein müssen, als Timer-Takt extern anlegen. Wenn du dann die CCR 
geschickt einstellst, und die Uutpu-Units samt Interrupts benutzt, 
kannst du mit minimalem CPU-Zutun das Übernahmesignal generieren und 
durch den Interrupt deine Daten bereitstellen. Ist auf den ersten Blick 
bissl kompliziert, aber im User Guide sind viele Grafiken und 
Timing-Diagramme drin, das macht es verständlich.
Die CPU würd ich dann mit dem höchstmöglichen Takt laufen lassen.

Aber so ganz hab ich den Chip und dei Posting noch nicht verstanden. SPI 
Mode Programmierung ist klar, wie jede andere SPI auch, geht auch schön 
fix. Aber MUSS man den Parallel-Mode auch nehmen? Und wieso taktet der 
Slave dann mit 1MHZ irgendwas aus? Der Takt kommt eigentlich immer vom 
Master....und wo willst du die 14 Bits eigentlich bereitstellen? Hat 
denn der 2013 so viele Pins? Das ist doch so nen ganz kleiner....

von Uhu U. (uhu)


Lesenswert?

Der 2013 hat genau 14 Pins - das OP ist leider etwas mysteriös...

von Christoph B. (beyarea)


Lesenswert?

Sorry ist verwirrend von mir beschrieben, die 14 Bit werden später nicht 
über den MSP übertragen, sondern extern, es geht mir nur um die 
Kontrollprogrammierung

von Uhu U. (uhu)


Lesenswert?

Na jetzt sind auch noch die letzten Klarheiten beseitigt...

von Christian R. (supachris)


Lesenswert?

Also du willst mit dem MSP den Chip einstellen (per SPI) und auch das 
Steuersignal für die (woher auch immer) kommenden parallelen Daten 
bereitstellen? Hmm..naja, ob das sinnvoll ist? Ich würd das Steuersignal 
lieber vom Sender der 14 Bit generieren lassen. Sonst wird´s schwierig 
das zu synchronisieren.

Eine kleine Skizze über den gewollten Aufbau wäre hilfreich.

von Christoph B. (beyarea)


Lesenswert?

Naja das ist genau die Problematik, die gesamte Programmierung(Kontrolle
und Datengenerierung) soll am Ende über einen DSP geschehen. Dieser wird 
aber von einem anderen Kollegen designt. Um meinen Chip zu testen habe 
ich halt die MSP Variante gewählt. Der letzte Schritt wäre jetzt die 
Datenübertragung zu testen, d. h. der DSP ist soweit 14 Bit Daten zu 
genrieren, die über einen Wannenstecker zu meinem Chip gelangen. Ich 
wollte halt die kontrolle jetzt noch mit dem MSP realisieren(also 
TXenable Pin high setzen, 14 Bit vom DSP übernehmen und TXenable wieder 
auf low)
Am Ende ist das sicher blöd, da ich mein Programm auf den DSP 
umportieren muss, aber das ging halt erstmal nicht anders. Die Variante 
direkt alles mit dem DSP zu steuern ist sicher unkomplizierter.

von Uhu U. (uhu)


Lesenswert?

Mir ist immer noch nicht klar, wie du mit dem MSP430F2013 14 bit 
parallel generieren willst, wo der ganze Chip doch nur 14 Beine hat. 
Hast du da ein Schiebregister als Serien-Parallelwandler dran?

von Christian R. (supachris)


Lesenswert?

Lass das mal lieber den DSP machen, schließlich müssen die Daten ja zu 
den Steuersignalen passen. Du kannst nicht einfach den DSP seine Daten 
unkontrolliert rausblasen lassen, und mit einem völlig anderem (sowieso 
viel zu langsamen) Controller die Steuersignale dazu erzeugen.

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.