Hallo zusammen, ich brauche mal dringend Hilfe. Ich möchte einen Signalgenerator mit de AD 5932 und einem Atmega88 realisieren. Jetzt hapert es aber bei mir schon an der SPI-Kommunikation. Hat jemand vielleicht für so einen Baustein eine funktionierende Kommunikation? Ich programmiere in C. Mein Schaltplan hänge ich mal an. Vielleicht ist auch ein Fehler in der Hardware zwischen dem Atmega 88 und dem AD5932 (DDS). Martin
Hallo, wozu sollen die Pullups nötig sein? Und wo ist SDA? Martin
Martin, vergiss das mit dem SCL und SDA - Otto meint, Du benutztest den TWI-Bus. Es geht Dir aber um SPI; das schreibst Du ja deutlich und am Schaltplan sieht man's auch. Funktion und Einstellmöglichkeiten des SPI-Busses sind sehr gut und ausführlich im Datenblatt des ATmega88 erklärt. Das Datenblatt findest Du hier http://www.atmel.com/dyn/resources/prod_documents/8271.pdf Kapitel 18 beschäftigt sich mit dem SPI, auf Seite 170 und 171 findest Du auch Programmbeispiele. Damit kannst Du alles Notwendige erledigen. Ciao, mare_crisium
Hallo, es scheint nun was zu kommunizieren, aber ich bekomme nichts sinnwolles raus. Ich wollte zunächst mal nur einen Sinus oder Dreieck erahlten was z.B. 50Hz hat. Ich habe folgenden Code geschrieben! Kann da jemand einen Schnitzer entdecken warum ich zwar was raus bekomme aber nicht was ich wünsche. Von Sinus auf Dreieck lässt sich auch nicht umstellen. Martin
Kann mir jemand sagen wie für die Ansteuerung des AD5932 über die SPI des ATmega88 eine funktionierende funktionierende SPI-Routine aussieht mit der eine richtige Kommunikation statt finden kann? Ich habe es wie im Datenblatt vom Atmega versucht und auch versucht damit die ganzen Bits im Controllregisster usw. zu setzen. Der Baustein spuckt zwar auch was aus aber nicht definiertes. Einen meiner Versuche habe ich mal angehängt. Die Idee hinter der Routine meines Versuches ist eine Version von Herrn Skibowski aus Stuttgart! Wäre toll, wenn mir jemand helfen könnte. Ich probiere schon längere Zeit rum und verstehe nicht das Problem. Martin
Hir noch ein neuer SPI Screenshot D0 = FSYNC D1 = SCLK D2 = SDATA (SPI)
Hi, jetzt scheint die SPI richtig zu kommunizieren. Ich kann auch über das Bit D9 im Controlregister von Sinus auf Dreieck umschalten. Woran kann es nun liegen, dass ich mehrmals programmieren muss bis ein sauberes Signal raus kommt? Nach mehrmaligem programmieren ist am MSBout ein Rechteck und am Vout ein Dreieck oder Sinus am Oszi zu beobachten, aber was ich hierbei auch nicht verstehe warum es nicht die von mir übermittelte Frequenz z.B. von 50 Hz hat. Wie kann ich am besten feststellen ob das Frequenzwort richtig übertragen wird? Ich teile es auf ad Register Fstart_low und Fstart_high und setze dann den Pin CTRL von Null auf high und ändere ihn nicht mehr. Laut Datenblatt soll so die in Fstart stehende Frequenz am Vout und MSBout ausgegeben werden. Woran könnte es liegen, dass die Frequenz nie der von mir gewünschten Frequenz stimmt? Vielen Dank schon für die Hilfe! Mar
Du musst die SPI ansteuerung etwas ändern: Setze im SPCR Register CPOL auf 1 und CPHA auf 0.
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.