-
-
Neuer Benutzer
Öfters hier
Probleme mit PCF8574AP am ATMega32
Hi
habe da ein Problem mit dem lieben PCF8574AP Baustein. Folgendes Verhalten
Schreiben:
Start OK
Slave Adresse OK
Data Byte ->Status 30=DataByte transmitted NOT ACK has been received
Lesen:
Start OK
Slave Adresse-> Status 48 = SLAe+R transmitted NOT ACK has been received
Hat da jemand Erfahrungen mit? Mache zum ersten Mal mit I2C rum. Weis hier aber nicht mehr weiter. Wäre für jede Hilfe dankbar.
Gruß
Peter
-
Erfahrener Benutzer
Roboter Genie
Hi
Komich. Nachdem bei mir die addy gestimmt hat, hat auch alles weitere gestimmt.
Welchen Status haben deine AINs?
Aber die Slaveaddy ist ok.
Bist du sicher, dass dein 8574 noch ganz ist?
Wie hoch sind deine Pullups?
Beschreib mal dein System genauer, bitte.
Ganz liebe Grüße,
Tobi
-
Hallo Tobi
AINs kann ich mir jetzt leider nichts drunter vorstellen.
Die PullUps haben 10k. ATMega32 mit 16MHz. TWBR=72=100KHz, TWAR=0xFE,TWCR=0x45. Adresse des 8574=0x7E.
Ich habe mal einen neuen 8574 eingebaut. Gleiches Ergebnis.
Reicht die Beschreibung oder fehlt noch was wichtiges?
Vielen Dank für die schnelle Antwort.
Liebe Grüße
Peter
-
Erfahrener Benutzer
Roboter Genie
Hi Peter!
Mit dem HD-TWI kennt sich der Florian besser aus (liebe Grüße! ); aber das dürfte soweit OK sein.
Die AINs... Die heißen beim 8574 A0, A1 und A2.
Wie sind die bei dir? LOW oder HIGH?
Und was hast du mit dem DAW-Ausgang gemacht?
Kurz... (ich weis...) ...wie hast du den 8574 beschaltet?
Ganz liebe Grüße,
Tobi
-
Neuer Benutzer
Öfters hier
Hi Tobi
also A0,A1,A2 liegen auf +5V. Daher die Adresse 0x7E. Pin 8 = GND, Pin 16 auf +5V. Die Ausgänge gehen zum Roboternetztwerk standart Steckerport (Wannenstecker), also 1-8 P0-P7, Pin 9 = GND, Pin 10= +5V. Der Stecker ist leer. Ich wollte erst mal sehen, dass das Teil überhaupt richtig antwortet.
Liebe Grüße
Peter
-
Neuer Benutzer
Öfters hier
Hi
ich habe in der Zwischenzeit mal in einer Schleife von 0-254 alle Adressen als Slave Adresse gesendet. Ich bekomme bei jeder Adresse ein TWSR=18 = OK.
Kann das denn richtig sein???
Liebe Grüße
Peter
-
Erfahrener Benutzer
Roboter Genie
Hi Peter!
Nein!! Da stimmt was nicht.
Ich würde die I/Os des 74 mit 4,7K nach VCC "UpPullen".
Irgendwo steckt ein Fehler.
Und der liegt recht sicher nicht am 8574.
Sind das nciht die letzten 3 bit vor dem RW, die man mit den As verändern kann? Mein 8574 hat mit den 3As auf Masse die Adresse 0x40.
Da ist irgendwas faul. In welcher Sprache programmierst du?
Ganz liebe Grüße,
Tobi
-
Hi Tobi
Es gibt den 8574P mit Adresse 0x40 und den AP Typ mit Adresse 0x70. Ich habe den AP Typ. Die I/Os des 8574 sind übrigens alle High. Ich habe auch mal einen 24C65 (I2C EEPROM) eingesetzt und angesprochen. Absolut gleiches Verhalten. Mit einer Leuchtdiode am SCL/SDA sehe ich, das der ATMega arbeitet. Nur das Ergebnis ist nicht OK. Ich bin mittlerweile ziemlich sicher, das meine Softwareansteuerung nicht funzt. Probehalber habe ich den Hardware I2C auch mal deaktiviert und es mit der Ansteuerung der eingebauten I2C Routinen des CAVR C-Compilers probiert. Funzt auch nicht. Ich werde das nachher mal hochladen. Ich habe auch mal die Foren durchstöbert und einige Routinen für den GCC Compiler gefunden. Ich werde jetzt mal mit allen gängigen Compilern BASCOM, ICC AVR und GCC versuchen, das Ding zum laufen zu bringen. Leider sagt einem I2C nicht, was nicht stimmt. Es gint lediglich ein NACK. Messen kann man auch nichts. Sicher habe ich da irgendwo einen Fehler, aber welchen?. Erst mal vielen Dank für die Hilfestellung. Ich werde mich nach meinen Versuchen mit den diversen Compilern noch mal melden.
Liebe Grüße
Peter
-
Erfahrener Benutzer
Roboter Genie
Hi Peter!
Hm. Gestern Abend ist mir was eingefallen:
-> Sendest du eine Start- und eine Stopbedingung?
Dumme Frage ich weis; aber daran könnt's liegen....
Wenn nämlich die Adresse 0 gesendet wird, antworten alle Slaves am Bus. Und sowas wird's sein...
Ich denke auch, dass es am Code liegt.
Oooppss... AP hab ich übersehen. Sorry!
Hast du ein Oszi zur Verfügung? Dann check' mal, ob ein Signal genau SO
aussieht:
Bild hier
Du brauchst nicht alle Compiler durchprobieren... das muss auch mit dem funzen.
Die Emulation von Bascom bekomme ich auch nur schleppend zum Laufen...
Ich werde das demnächst auch mal auf mich nehmen, mit dem HD-TWI...
Allerdings unter BASCOM...
Viel Glück!
Tobi
-
Neuer Benutzer
Öfters hier
Hi Tobi
nein, einen Osci habe ich leider nicht. Aber die Led flackert. Deshab gehe ich mal davon aus, dass es wohl so etwa aussehen wird. Aber mir ist da noch was eingefallen. Die PullUps habe ich direkt an dem Prozessor liegen. In den diversen Bildern sehe ich sie als Terminatoren. Kann dass einen Einfluß auf die Funktion haben?
Gruß
Peter
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen