Forum: Mikrocontroller und Digitale Elektronik ADF4351: offenes Interface mit AVR zum PC über Serial/USB


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von ADF Tester (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mein Implementierungs-Vorschlag eines Protokolls zur Steuerung
eines ADF4351 oder anderer Synthesizer-Bausteine.

Ein Windows-Programm zum Steuern des Bausteins aufbauend auf diesem
Protokoll folgt in Kürze.

Sinn des Ganzen ist es ein spezielles Interface für den ADF4351 usw.
zu vermeiden und gängige Controller für den Selbstbau verwenden zu
können. Prinzipiell lässt sich aufgrund der schlanken und
übersichtlichen Implementierung jeder kleine AVR Controller mit ein
paar Kilobytes an Flash verwenden. Auch der RAM Verbrauch ist
gering. Die Steuerung erfolgt ganz einfach über eine serielle
Schnittstelle (native oder Virtual Com Port über USB) die ja bei den
meisten AVR Controllern vorhanden ist.

Das Protokoll ist für viele Synthesizer-Bausteine von Analog Devices
(auch Hittite) geeignet, die erforderliche Registerbreite ist für
einen Baustein immer konstant und leicht an andere Gegebenheiten
anpassbar.

Ich habe die beiliegenden Sourcen als AVR Studio Projekt angelegt
und für die beiden naheliegenden Arduino-Controller ATMega328 und
ATMega2560 vorbereitet. Ein Arduino Micro oder Nano ist natürlich
auch verwendbar. Die Anpassungen an andere Controller wie ATMega88,
ATMega168 oder ATMega644 usw. sind leicht durchführbar, es müssen
nur Defines bzw. Macros für die Port-Bits angepasst werden. Die
Pinbelegung ist aus der Source <spi_soft.c> zu entnehmen. Der
Einfachheit halber habe ich alle fünf erforderlichen Bits auf einen
einzigen Port gelegt. Das lässt sich durch geringfügige Definitions-
Erweiterungen auch auf mehrere Ports ändern.

Die Kompaktheit der Implementierung auf dem Controller bedingt
natürlich Intelligenz auf der anderen Seite der seriellen Leitung.
Alle Operationen zum Setzen eines Synthesizer- Registers müssen
berechnet oder anderweitig (Register- Datensatz) zur Verfügung
gestellt werden. Dafür besteht für den User die Freiheit sein (für
seine Bedürfnisse passendes) eigenes Steuerprogramm zu verwenden
bzw. zu schreiben. Man muss nur auf einen seriellen Port schreiben
und davon lesen können. Die Baudrate die vereinbart sein muss habe
ich mal auf moderate 57600 Baus festgelegt, bei höheren Baudraten
schien die Kommunikation aufgrund von zu grossen Toleranzen der
Keramik-Resonatoren nicht mehr zuverlässig zu funktionieren.

Erläuterung zum Protokoll:

Ein 32 Bit-Steuerwort für den ADF4351 wird in 4 Bytes aufgeteilt und
in acht Daten-Nibbles inklusive Start- und Stop- Byte (Frame-
Delimiter) über die serielle Leitung geschickt.

--------------------------------------------------------------
Datenübertragung eines ADF4351 Registerwortes (32 Bit)
über serielle Leitung (MSByte first)

           Beispiel ADF Steuerwort: 0x12345678
------------------------------------------------------------
          0x12        0x34        0x56        0x78
           /  \        /  \        /  \        /  \
0xFE   0xA1 0xA2   0xA3 0xA4   0xA5 0xA6   0xA7 0xA8  0xFD

Start  Byte Byte   Byte Byte   Byte Byte   Byte Byte  End
Byte   high low    high low    high low    high low   Byte
--------------------------------------------------------------
Auf diese Weise haben Nutzbytes und Frame Delimiter immer
unterschiedliche Werte und sind damit eindeutig zu erkennen.

Zur Schnittstelle zum ADF4351 bliebe noch zu sagen dass es für
5Volt-AVR-Controller Pegelwandler braucht damit der Baustein nicht
überfahren wird. Wenn man von Haus aus einen AVR Controller mit 3.3V
betreibt entfällt der Aufwand dafür.

von ADF Tester (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hier ein Programm zur Steuerung des ADF4351 über oben
beschriebenes Interface

Beitrag "ADF4351 Windows Applikation"

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]
  • [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.

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