Liebe Forumgemeinde, Versuche mit einem MSP430 (8Mhz) ein Sender für ein DSSS-System zu realisieren. Dazu sollte dieser eine Binäre (PRN) Codesequenz bei 2.047Mhz, der Länge 2047*1000 ausgeben. Wenn möglich externer Clock. Da bei DSSS nur zwei "Muster" der Länge 2047 existieren, bieten sich die DMA-Kanäle an. Meine Idee war, dass ich pro Muster der Länge 2047 einen DMA Kanal nutze. Anschliessend kann "nur" noch zwischen den Kanälen gewechselt werden. Problem(e): Single-Modus: Maximale Geschwindigkeit bei 1.25Mhz, oder gehts schneller? Block Transfer: CPU Auslastung 100%! (wesshalb eigentlich?), dadurch kann nicht nahtlos zwischen den Kanälen gewechselt werden. Burst-Block Modus: Unbrauchbar, da nach jedem 4te Byte ein Unterbruch entsteht. Hat jemand eventuell eine Idee, Vermutung oder ein Lösungsansatz? ...oder gleich ein FPGA?
Wie gibst Du denn die Sequenz hardwaretechnisch aus? Durch einfaches Wackeln an einem Pin? Oder nutzt Du die SPI-Schnittstelle?
Wackeln an einem Pin, wie du so schön sagst :-) Würde sich evt. SPI dazu eignen?
Naja, SPI böte den Vorteil, daß eben nur alle 8 Bits lang ein Byte per DMA übertragen werden muss. Der DMA-Controller müsste dann so programmiert werden, daß er vom SPI-Sende-Register gesteuert das nächste Byte heranholt; die Taktsteuerung wird somit vom SPI übernommen. Habe das selber noch nicht gemacht, würde es aber in etwa so ablaufen lassen: DMA im Single-Transfer-Modus, als Trigger wird 0100 in DMAxTSELx verwendet. Möglicherweise ist es sinnvoll, den SPI im Slavemode laufen zu lassen, denn dann kannst Du einen externen Bittakt nutzen. Die DMA/SPI-Ablaufsteuerung sollte dann trotzdem so funktionieren. Einziger Nachteil, den ich sehe: SPI-Transfers sind immer 8 Bit lang, daher wird es problematisch, 2047 Bits zu übertragen.
Vielen Dank für deine Inspiration und die ausführliche Anleitung! Das mit den 8 Bits scheint ein Problem zu sein :/ Falls es keine andere Möglichkeit gibt, passe ich entweder mein System auf 2048 Bits an oder ich wähle einen anderen Controller. Bei 2048 könnte ich dann keine m-Sequenz wählen :/ ...im Hinblick auf CDMA (bei mehreren Sendern), ist es schade diesen Standard zu verwerfen. Mal schauen, jedenfalls vielen herzlichen Dank für deinen Input!
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.