Hallo, also ich muss für ein Schulprojekt mit einem uController (Crumb644 v1.1 mit Atmega644p) einen PCF8591P so ansteuern, dass ich am Ende einen Sinus erzeugen kann. Ich habe einen dementsprechenden Schaltplan entworfen und die Platine nach einer Überprüfung eines Lehrers auch gebaut. So, es ist mir möglich den AD/DAC anzusteuern jedoch macht er nicht das,was ich will. Aus dem Datenblatt habe ich die Information, dass ich zuerst ein Adressbyte schicken muss (bei mir 0x90, da der fest vorgesehene Teil (1001) und mein Adressteil (0000) sind). Nach diesem wird ein Kontrollbyte geschickt mit meiner Info, dass ich analoge Spannungen ausgeben will also 0x40 (da Datenblatt sagt 0100 0000) und dann der Wert zB 128. Wenn ich den Chip jedoch ansteuere schießt er entweder auf Vcc (+5V) oder auf AGND (bei meinen Jumpern jetzt GND). Ich benutze die I2C-Library von Peter Fleury, eine UART-Lib meines Lehrers, welche aber sicher funktioniert und habe im Anhang den Programmcode meiner Main gepostet. Kann mir bitte jemand helfen ich bin nämlich schon seit einem Monat am verzweifeln. Danke schon im Voraus LG Michael
Hat denn wirklich niemand eine Ahnung was das Problem sein könnte?
>Hat denn wirklich niemand eine Ahnung was das Problem sein könnte?
AGND? Wenn du das an -5V angeschlossen hast ist der Chip im Arsch.
Ok, Danke für die Antworten. Ich werde mir in der Schule mal nen neuen IC besorgen und es nochmal testen. Aber die Schaltung müsste/sollte doch eigentlich ohne Probleme funktionieren, wenn ich den AGND-Jumper auf GND hänge, oder?
Michael R. schrieb: > Aber die Schaltung müsste/sollte doch eigentlich ohne Probleme > funktionieren, wenn ich den AGND-Jumper auf GND hänge, oder? Du solltest alle Jumper um Deinen DAC/ADC auf Masse setzen. Den AGND-Jumper, die Adressjumper und alle unbenutzten Eingänge. Dann sollte bei korrekten Daten auf dem I²C-Bus alles laufen. Also: 1. START senden 2. 90h senden (Adresse + Write) 3. ACK bekommen? Ja, dann weiter, sonst Fehlerbehandlung 4. 40h senden 5. ACK bekommen? Ja, dann weiter, sonst Fehlerbehandlung 6. Datenbyte senden 7. ACK bekommen? Ja, dann weiter, sonst Fehlerbehandlung 8. Weitere Daten vorhanden? Ja, dann zu 6, sonst weiter 9. STOP senden Gruß Jobst
Hallo, Ich habe mich lange nicht gemeldet, da es mir schon langsam zu anstrengend wurde, jedoch habe ich es jetzt geschafft alles zum Laufen zu bekommen. Der Fehler lag in der Bibliothek von Peter Fleury, welche eindeutig nicht funktionierte. Das bemerkte ich als ich einmal mit dem Oszilloskop zum Messen kam. Dabei sah ich, dass auf der SCL-Leitung ein unglaublich verzerrter Takt gelegen ist. Nun habe ich eine andere gefunden und es endlich geschafft meinen Sinus auszugeben, auch wenn er gerade mal 4Hz schafft. Im Anhang schmeiß ich mal mein Programm, ein Oszi-Bild und ein AtmelStudio6 Template für alle die nach mir auch so ein Projekt machen wollen oder müssen. :D
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.