Merkwürdige Inkompatibilität bei Microwire-EEPROMs

Hallo zusammen,

hat jemand schon einmal folgendes gehabt?

Problembeschreibung: Eine ganze Charge Chipkarten mit seriellem EEPROM (93xxx) funktioniert in genau einem Gerätetyp einer ganzen Gerätefamilie nicht, in allen anderen anderen jedoch problemlos. Es werden EEPROM verschiedener Hersteller eingesetzt, die "problematische" Charge ist mit AT93C46 (Atmel) bestückt.

Eine eingehende Untersuchung ergibt, dass das EEPROM in diesem Fall auf einen READ-Befehl anscheinend "irgendwas" ausgibt, jedoch nicht die (nachprüfbar) abgelegten Daten. Pegel und Timing (Pulsbreiten) sind weit im "grünen Bereich" (mit schnellem Mehrkanal-Scope geprüft), die logische Ansteuerung erfolgt über die gleichen Codesequenzen wie bei den "funktionierenden" Geräten, nur auf einem etwas "schnelleren" Prozessor (8032 @12MHz ggü. 8032 @4,1MHz).

Die Sequenz am Beginn eines Befehls ist bei allen Geräten so:

  1. DI = 0; CS 0->1
  2. Clockpuls (SK 0->1->0)
  3. DI = 1
  4. Clockpuls (Startbit)
  5. DI = 1. Befehlsbit
  6. Clockpuls etc.

Das ist in dieser Form seit 1988 mit verschiedenen EEPROM-Typen, angefangen mit 9306 über 93C06, 93C46 etc. im Einsatz. Der Grund für die Verwendung des vor dem Startbit eingefügten '0'-Bits ist nicht mehr nachvollziehbar. Es existieren insgesamt 8 Gerätefamilien, die die Chipkarte verwenden, der Code zur Ansteuerung der EEPROM wurde bei allen "recycled".

Was ich beim eingehenden Vergleich der Datenblätter gefunden habe ist, dass die Start-Bedingungen nicht ganz identisch zu sein scheinen. Bei Microchip z.B. ist Start erst dann gegeben, wenn CS und DI beide H sind und dann der erste positive Puls auf SK kommt. Atmel schreibt jedoch, der erste Puls von SK nach der steigenden Flanke von CS sei die Startbedingung, das Device würde dann ein '1'-Bit erwarten. Das hätte die Fehlfunktion erklären können, wenn nicht die Atmel-EEPROM in den anderen Gerätetypen mit der gleichen logischen Sequenz funktionieren würden. Kurz, im Moment sehe ich den entscheidenden "kleinen Unterschied" noch nicht.

Hat ein Mitleser eine Idee, was noch Einfluss haben könnte?

Gruß

Stefan

--
http://www.svb-wagner.de
Reply to
Stefan Wagner
Loading thread data ...

Hatte auch mal so ein Problem mit Atmel 90er Eeproms. Bei mir war es der Clock-Puls. Atmel hat die Teile jetzt schneller gemacht (steht auch im Datenblatt) , und die eigentlich recht gut aussehende Flanke des Clock-Pulses war dem Teil nicht steil genug.=20

Vielleicht kannst Du da ja noch mal genau hingucken, und dann evtl. einen Schmitt-Trigger dazwischenbasteln...

Gru=DF Tobias

Reply to
Tobias Kahre

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.