Externes EEPROM über ein PIC Microcontroller über IC2 auslesen

OP #7032918
Lesenswert?
• ▲
▼
Guten Tag,

ich versuche ein externes EEPROM über den IC2 Bus über ein PIC 
Microcontroller(PIC16F1828) von Microchip auszulesen(In C).
Taktfrequenz 4 Mhz
Baudrate des IC2 100 Khz

Die Adresse des Slaves(24C04WP) im Write Modus lautet 0xA0 und im Read 
Modus 0xA1

Im Anhang ist zu sehen, dass der Master (µC) die richtigen Daten zum 
Auslesen für das EEPROM sendet. Erst den Write Befehl für die Adresse 
0002 auf dem EEPROM und dann den Read Befehl -> Daten FF. Jedoch wird 
vermutlich kein Acknowledge gesendet wie aus der Ereignistabelle zu 
entnehmen ist. (fehlende Bestätigung).Ich habe schon vieles versucht der 
Master sendet die richtigen Daten in der richtigen Reihenfolge jedoch 
kriege ich keine Antwort vom Slave.
Weiß eventuell jemand eine Lösung was ich falsch gemacht haben könnte.
Ich wäre für jede Hilfe Dankbar. Danke im Voraus.

Mfg
Mark
#7032983
Lesenswert?
• ▲
▼
Falsche Slave-Adresse? Versuch erstmal, das ACK beim Lesen zu bekommen. 
Schreiben steht ganz am Schluß.

Ich würde mal die roten Klammern [!] als NACK interpretieren, sprich, 
deinn EEPROM reagiert nicht. Hast du dessen Adresspins ALLE auf LOW 
gelegt? Die dürfen NICHT in der Luft hängen!
Gast #7032992
Lesenswert?
• ▲
▼
Christian M. schrieb:
> Mark J. schrieb:
>> Die Adresse des Slaves(24C04WP) im Write Modus lautet 0xA0 und im Read
>> Modus 0xA1
>
> Nein, die Adresse ist die selbe, nur wird wird Bit 0 gesetzt! Aber ja,
> je nach Interpretation, steht das im DB so oder in der Beispielsoftware?
>
> Gruss Chregu

Das ist mal wieder die 7/8 Bit Darstellung der I2C Adresse.
Eeprom für I2C haben meist die 7 Bit Adresse 0x50. Stellt man das in 8 
Bit mit WR-Flag dar, dann wird (nach oben geschoben) 0xA0/0xa1 draus.
Gast #7033010
Lesenswert?
• ▲
▼
Der Master darf nicht einfach weiter machen, wenn das ACK ausbleibt. Er 
muss die Transaktion abbrechen, ansonsten werden die folgenden Daten von 
diesem oder auch anderen Busteilnehmern möglicherweise als Adresse 
interpretiert und dann können in Folge alle denkbaren und undenkbaren 
Fehlfunktionen auftreten.
#7033013
Lesenswert?
• ▲
▼
Die Loesung ist ganz einfach : Das Datenblatt genaustens(!) lesen. Jedes 
Bit muss stimmen. Das Timing jeden Bittes muss stimmen. Wurden die Setup 
und Hold Zeiten eingehalten ? Sowohl hin und zurueck. Jedes Bit welches 
falsch zurueck kommt hat seine Vorgeschichte.
Variationen : Allenfalls mal langsamer laufen lassen, allenfalls mit der 
analogen Sonde des Oszilloskopes zuschauen.
Gast #7033052
Lesenswert?
• ▲
▼
Stefan ⛄ F. schrieb:
> Im ersten Oszilloskop Bild sehe ich in gelb 1010000.
> Das stimmt soweit mit dem Datenblatt überein, falls die Pins E1 und E2
> auf LOW liegen.

Komisch, jetzt ist die Reihenfolge der Bilder anders, oder bin ich doof?

Ich minte das Bild ..._6_.jpeg

Nachtrag: ja ich bin doof. Gelb ist ja der Takt, die Daten sind blau.
#7033078
Lesenswert?
• ▲
▼
Mark J. schrieb:

> Im Anhang ist zu sehen, dass der Master (µC) die richtigen Daten zum
> Auslesen für das EEPROM sendet. Erst den Write Befehl für die Adresse
> 0002 auf dem EEPROM und dann den Read Befehl -> Daten FF.

Der 24C04 hat nur ein Byte für die Adresse, Bit 8 der Adresse ist in Bit 
1 des Adressbytes untergebracht. Die 8-Bit Adresse A0/A1 gilt also nur 
für die ersten 256 Bytes, für die zweiten 256 Bytes ist es A2/A3.

Siehe hier

https://www.st.com/resource/en/datasheet/m24c04-w.pdf

auf Seite 13/40. Auf Seite 18/40 steht, wie ein Lesezyklus auszusehen 
hat.

fchk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.