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.
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
... 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
Was passt denn beim SPI nicht? Der SPI Mode? Oder nur Angst weil das FSYNC und nicht CS heißt ;)?
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.
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
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
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.
"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)."
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.