Merkwürdige Inkompatibilität bei Microwire-EEPROMs

S

Stefan Wagner

Guest
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
 
On Mon, 13 Mar 2006 17:34:18 +0000 (UTC)
Stefan Wagner <stefan-usenet@dl6dx.westfalen.de> wrote:

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.
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.

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

Gruß
Tobias
 

Welcome to EDABoard.com

Sponsor

Back
Top