Forum: Mikrocontroller und Digitale Elektronik AD 9833 Raspberry Pi


von Ke V. (steroido) Flattr this


Angehängte Dateien:

Lesenswert?

Hallo Leute

ich arbeite momentan fleißig daran den AD9833 mit dem Raspberry Pi zum 
laufen zu bekommen jedoch gestaltet sich dies leider nicht so wie 
erhofft. Da es keine passende SPI Schnittstelle gibt habe ich versucht 
den AD mittels Bitbanging über die GPIO Ports des Raspberrys zu 
programmieren.

Mein Code im Anhang sollte dafür sorgen dass ein Frequenz von 50 Hz 
ausgegeben wird, beim einem Masterclock von 10 MHz, jedoch passiert 
leider nichts und ich weiß nicht warum.

Die Datenwörter sollten soweit richtig sein da sie auch so im 
offiziellen Datenblatt stehen.

Der Code wird folgendermaßen aufgerufen
sudo pyhton NamedesCodes.py

Wäre Super wenn ihr mir weiterhelfen könntet.

von ... (Gast)


Lesenswert?

Em natürlich hat der pi spi?!

von Tobias B. (sessl3r)


Lesenswert?

Also falls dir nur das SPI-Device im Linux fehlt schau mal in die 
Blacklist und kommentier da SPI & I2C aus, so das die beiden Treiber 
geladen werden

/etc/modprobe.d/raspi-blacklist.conf

von Ke V. (steroido) Flattr this


Lesenswert?

... schrieb:
> Em natürlich hat der pi spi?!

Ja aber leider ist das nicht mit dem "SPI" des Raspberrys kompatibel. 
Der AD muss über die Leitungen FSYNC SDATA und SCLK programmiert werden 
und zwar so wie es das Datenblatt vorschreibt.

Das mit dem SPIdev vom Raspberry bin ich schon durchgegangen und musste 
leider feststellen das es in der vorliegenden form nicht zum AD9833 
passt.

>Also falls dir nur das SPI-Device im Linux fehlt schau mal in die
>Blacklist und kommentier da SPI & I2C aus, so das die beiden Treiber
>geladen werden
>
>/etc/modprobe.d/raspi-blacklist.conf

Das werde ich morgen mal versuchen

: Bearbeitet durch User
von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Was passt denn beim SPI nicht?
Der SPI Mode?
Oder nur Angst weil das FSYNC und nicht CS heißt ;)?

von Ke V. (steroido) Flattr this


Lesenswert?

Martin Wende schrieb:
> Was passt denn beim SPI nicht?
> Der SPI Mode?
> Oder nur Angst weil das FSYNC und nicht CS heißt ;)?

Deswegen nicht es geht halt darum dass immer 16 Bit eingelesen werden 
müssen und zwar so wie es das Datenblatt vorschreibt. Aber was ich 
momentan nicht verstehe warum der Code nicht funktioniert.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Das ist doch kein Problem ;)

Durch FSYNC auf LOW ziehen sagste dem AD9833, dass die Daten für ihn 
sind.
Da kannste CLK/MOSI mit 1Hz Takten wenn du Spaß hast oder eben mit Fmax.
Damit will ich sagen: Dem AD9833 ist das völlig Wurst ob er 2x8bit 
bekommt oder 1x16.

Also:
FSYNC LOW
8bit senden
8bit senden
FSYNC HIGH

Warum dein Code ned funzt weis ich nicht, hab lange nix mehr mit Python 
gemacht.
Aber häng doch mal nen Logicanalyzer oder Oszi an den SPI.
Bzw haste auch den richtigen SPI Mode nachprogrammiert?

Ansonsten hier meine Lib für den AD9833, ist zwar in C und fürn AVR, hat 
aber auch nen Soft SPI Mpde zum abgucken.
http://www.fritzler-avr.de/HP/Librarys/AD9833_his.php

von Ke V. (steroido) Flattr this


Lesenswert?

So die Hardware SPI Schnittstelle hab ich zum laufen bekommen. Leider 
kann der Raspberry nur 8 oder 9 Bit per SPI senden danach zieht er CS 
immer wieder auf High was echt ärgerlich ist.

: Bearbeitet durch User
von Ke V. (steroido) Flattr this


Angehängte Dateien:

Lesenswert?

So ich hab das SPI nun zum Laufen bekommen der AD9833 reagiert leider 
nicht auch die Eingabe. Das Senden des Wortes 0xFF00 sieht wie auf dem 
Bild aus.

von Konrad S. (maybee)


Lesenswert?

"The SCLK can be continuous, or it can idle high or low between write 
operations. In either case, it must be high when FSYNC goes low (t11)."

von Ke V. (steroido) Flattr this


Lesenswert?

Ja ich werde mal versuchen das so zu realisieren ich hätte aber nicht 
gedacht das der Chip was das SPI angeht so penible ist.

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.