Hallo C-Kollegen und Elektroniker, ich habe ein nicht unlösbares Problem. Bin eigentlich ein fortgeschrittener Anfänger was C angeht. Habe einen at90128can auf einem Experimentierboard. Auf dem selben Board ist ein DA-Wandler DAC8512 den ich ansteuern muss. Hier ist das Datenblatt: ***************************************************** http://www.datasheetcatalog.org/datasheet/analogdevices/42749849DAC8512_a.pdf ***************************************************** mein Frage: Hat schon jemand Erfahrungen mit dem 8512. Ich denke das Ding wird über I2C angesteuert, habe aber damit wenig Erfahrung. Ich denke mal als 1. muss man den Chip-Select CS aktivieren. Dem Timing-Diagramm (Figure1) zufolge muss man einen Wert über SDI schreiben und das dann Laden mit Load LD, oder. Danach löschen mit Clear CLR VOUT. Was spielt der Clk für eine Rolle, muss der immer syncron mitlaufen, und was ist der Clk-Pin?? so genau weis ich das auch nicht und jetzt bin ich eigentlich am ende..... vielleicht kann mir einer ein paar nützliche Tipps geben...??!!! Danke für jede Hilfe!!!!!!!!!!!!!!!!!!
Hallo, Martin 567 schrieb: > Auf dem selben Board ist ein DA-Wandler DAC8512 den ich ansteuern muss. > mein Frage: > Hat schon jemand Erfahrungen mit dem 8512. Nö, hane bisher nur den DAC7512 genutzt. > Ich denke das Ding wird über I2C angesteuert, habe aber damit wenig > Erfahrung. Schau doch ins Datenblatt... Ist ein normales SPI, mit I2C ist da nichts. > Ich denke mal als 1. muss man den Chip-Select CS aktivieren. Ja, sonst fühlt er sich nicht angesprochen. > Dem Timing-Diagramm (Figure1) zufolge muss man einen Wert über SDI > schreiben und das dann Laden mit Load LD, oder. Richtig. Die 12 Bit reinschieben, der Chip übernimmt mit der stegenden Flanke von SCK. Load übernimmt dann die Daten aus dem Shiftregister in das DAC-Register und setzt damit die Ausgangsspannung. > Danach löschen mit Clear CLR VOUT. Naja, wenn die Ausgangsspannung 0 sein soll... Das macht schlißlich CLR, es setzt das DAC-Register und damit die Ausgangsspannung auf 0... > Was spielt der Clk für eine Rolle, muss der immer syncron mitlaufen, und > was ist der Clk-Pin?? Das habe Schiebrigszer so an sich, woher sollte sonsz der DAC wissen, Du das nächste Bit an SDI anliegen hast? > > so genau weis ich das auch nicht und jetzt bin ich eigentlich am > ende..... Naja, wohl eher am Anfang. ;-)) Gruß aus Berlin Michael
Servus, hab aber noch ne andere Frage: was muss ich eigentlich an den CLK-Pin ranhängen 1. den Quarz (10 MHz) 2. einen selbsterzeugten impuls mithilfe eines timers wie sende ich überhaupt einen wert über SDI??? @Michael: könntest du mir mal so eine kleine erklärung zum 7512 geben (evtl. codebeispiel...) ich denke mal der SYNC ist so ähnlich wie mein LOAD und der DIN so ählich wie mein SDI ***** noch ne andere allgemeine Frage: diese SPI-Schnittstelle kann man die mit 4 ganz normalen Pins realisieren oder braucht man da spezielle pins des Prozessors? ***** wäre nett bin dankbar für jede antwort und Hilfe danke und merci Martin!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hallo Martin, also im datasheet gibts das Kapitel "Serial Peripheral Interface – SPI" - sehr empfehlenswert (wie üblich mit brauchbaren Codebeispielen). Der Controller nimmt Dir eigentlich alles ab, auch die clk-Generation, Du musst ihm nur sagen wie groß der Teiler zum Takt sein soll... Gruß, Flori
Servus ich habe jetzt schon einiges geschnallt aber noch nicht alles: ***wichtig: -Ist es egal welche pins ich als SPI schnittstellen-pins auswähle??? *** -Wie sende ich daten auf den SDI-Pin des DA-Wandlers? aus Datenblatt: 12bits (SDI packed byte 1 “0,0,0,0;MSB,DB10,DB9,DB8” SDI packed byte 2 “DB7,DB6,DB5,DB4;DB3,DB2,DB1,DB0”) -muss ich quasi an dem CLK pin nur einen prescaler (vorteiler) einstellen? -noch dazu muss ich sagen das das codebeispiel im Datenblatt mir eigentlich nicht viel bringt, da ich ja in C programmiere und ich dieses Assembler oder was auch immer nicht verstehe das wars erstmal danke martin!!!!
> -Ist es egal welche pins ich als SPI schnittstellen-pins auswähle??? Wenn du Software-SPI macht, kannst du die Steuersignale und Daten ausgeben, wo du willst. Bei einer Hardware-SPI sind feste Pins vordefiniert. SPI braucht 4 Pins: MasterOutSlaveIn MOSI, MasterInSlaveOut MISO, SpiClock SCLK und den SlaveSelect SS. > -muss ich quasi an dem CLK pin nur einen prescaler (vorteiler) > einstellen? Nein, grob gesagt gibst du mit dem SS einem Slave zu erkennen, dass es losgeht. Dann gibst du am MOSI ein Bit aus und zappelst anschliessend mit dem SCLK herum. Damit wird das Bit übergeben. Zum Schluss deaktivierst du den SS und beendest damit die Übertragung. Du solltest dich mal vom DA-Wandler lösen und das Thema SPI grundlegend ansehen. Wenn du das verstanden hast, ist die Kommunikation mit dem DAC einfach. http://www.mikrocontroller.net/articles/Serial_Peripheral_Interface http://www.lothar-miller.de/s9y/categories/17-SPI
hallo also ich hab mir das jetzt schon ein bisschen durchgelesen aber ich würde wenn schon den software-spi benötigen da ich den AD-wandler nicht mehr umpositionieren kann, (der ist auf einer geätzten platine drauf) würde es gehen wenn ich den ad-wandler manuell zum laufen bringe. (ohne spi) also wenn ich diese 12 Bits manuell rein schreibe erstes Bit an SDI und einen Clock-Durchgang (High & Low) per pin schalten zweites Bit an SDI anlegen und ....... ... und so weiter könnte doch gehen dann brauch ich kein spi?? danke für die vielen antworten
Servus also an alle die "Lösung" die ich als letztes gepostet habe. funktioniert!!!!!!!! wenn ich z.B. 3V in Binär umwandle und dann so eingebe wie oben beschrieben. hab ich genau 3,005 V am Ausgang bin sehr zufrieden danke an alle die mir auf irgendeine weise helfen wollten! merci martin!!!!!!!!!
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.