www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP A/D-Wandlung per Software beim TMS320F2812 DSP


Autor: Markus Rehn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Ich möchte mit meinem TMS320F2812 DSP-Board einen Analogwert einlesen,
diesen in Matlab-Simulink A/D-wandeln und dann auf 14 Pins wieder
ausgeben.
Kann mir jemand dabei behilflich sein, denn mir fehlen dazu noch einige
Grundkenntnisse.
Herzlichen Dank für jede Hilfe!

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei TI gibt es die Beispielprogramme für den 2812. DAs ist eigentlich ne
gute Grundlage.

Gruß Thomas

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

>mit meinem TMS320F2812 DSP-Board einen Analogwert einlesen,
>diesen in Matlab-Simulink A/D-wandeln

Der A/D-Wandler im DSP wandelt bereits von Analog nach Digital (sonst
würde er ja nicht so heißen). Was willst Du da mit Matlab noch
wandeln?

Gruß Andreas

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ROTFL - das wollte ich auch gerade sagen!  Die Vorstellung ist aber sehr
verbreitet: Ich hatte während meiner Zeit an der Uni einen Studenten,
der auch der Ansicht war, daß man mit Software AD-Wandeln kann,
schließlich kann man mit Software ja auch Filtern. Hier gibt es mehr
Infos zu Softwarefiltern:

http://www.software.org/tools/math/filter/coffee/a...

Autor: Markus Rehn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

du hast natürlich recht, dass das DSP-Board bereits eigenen A/D-Wandler
besitzt.
Es besitzt aber keine D/A-Wandler und genau das ist mein Problem.

Um in meiner Aufgabe einen Servocontroller anzusteuern, brauche ich
einen möglichst genauen Analogwert. Dabei möchte ich den eingelesenen
A/D-Wert in Simulink durch eine Reglerschaltung schicken (z.B. PID) und
anschließend auf einem externen D/A-Wandler wieder analogisieren, bevor
er auf den Steuereingang des Servocontrollers gegeben wird.

Um den externen D/A-Wandler zu testen will ich momentan erstmal einen
Binärwert ausgeben. Dabei kam der Gedanke den Wert mit mehreren
Schiebeoperationen zu schieben, so dass die jeweiligen Bits auf
verschiedene Ausgängen gegeben werden können.

Möglicherweise würde das auch funktionieren, aber leider weis ich
nicht, wie ich den Dezimalwert der Konstante in einen Binärwert wandeln
kann, um ihn dann zu schieben, Bsp:

Analogwert --> Binärwert
11d        --> 1011b

Gruß, Markus

Autor: WiWil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich das richtig, dass du einen 14bit Wert (entnehme ich deinen
14 Pins) auf eben 14Pins des Controllers ausgeben willst?

Dann schicke doch einfach den Analogwert des AD-Wandlerregisters auf
das Portregister des TMS. Oder zum Testen halt auch einen beliebigen
Konstantwert. Wenn deine Pins in richtiger Reihenfolge zum gleichen
Port gehören, funktioniert das automatisch.

Oder meinst du das anders?

Gruß
Andreas

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

>> Analogwert --> Binärwert
>> 11d        --> 1011b

da brauchst du nichts umzuwandeln, dass sind nur Darstellungsformen
(Hexadezimal, Dezimal oder binär)
Leg einfach deinen Wert von 11d auf dein Datenregister (z.B. GPIO Port
A):

GpioDataRegs.GPADAT.bit.all == 11;

genauso Hexadezimal:
GpioDataRegs.GPADAT.bit.all == 0xB;

binär wüsste ichs spontan nicht aber diese beiden Zeilen haben dieselbe
Wirkung!
Ich hoffe das bringt dich weiter, ansonsten verstehe ich deine Probleme
nicht!

Gruß
Patrick

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
!Anmerkung!

Ich meine natürlich:
GpioDataRegs.GPADAT.bit.all = 11;

und:
GpioDataRegs.GPADAT.bit.all = 0xB;

das oben wäre ein Vergleich und KEINE Zuweisung!

Gruß Patrick

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kommst du eigentlich mit den Daten zu Simulink rein bzw. raus ?

Gruß Thomas

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.