www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik msp430: Binärsequenz ausgeben @ 2Mhz


Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gibst Du denn die Sequenz hardwaretechnisch aus? Durch einfaches 
Wackeln an einem Pin? Oder nutzt Du die SPI-Schnittstelle?

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wackeln an einem Pin, wie du so schön sagst :-) Würde sich evt. SPI dazu 
eignen?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.