Enhanced Memory ME-1 für Kawai K5000

Kawai K5000W
Die Realisierung
5.2.2007
ME-1 Nachbau im Layouteditor:
2.3.2007
Fast alle Verbindungen sind so gut wie fertig geroutet. Was Kawai da auf dem ME-1 macht, grenzt schon fast an Feinstleitertechnik. Damit ich das Layout überhaupt routen kann, muß ich an die Grenze dessen gehen, was der Leiterplatten-Poolservice hergibt: 0,3 mm Bohrdurchmesser und 0,15 mm Leiterbahnbreite.
Als nächstes werden die Leiterbahnen noch etwas schöner verlegt und einige Umwege beseitigt. Dann kann schon bald der Prototyp bestellt werden (zusammen mit einem Testadapter, den ich auch noch entwerfen muß. Damit kann ich das ME-1 auf meinem USB-Programmer testen)
Auszug aus dem Board Status Report
--------------------------------------------------------------------------------
All Min Max Total
Number of pads 6 148 154
--------------------------------------------------------------------------------
Layer pair codes Number of vias
(Through Hole) 80
Total 80
--------------------------------------------------------------------------------
Nets Mixed width nets Connections
Total number 51 79
--------------------------------------------------------------------------------
Percentage of routed connections to total connections 98
--------------------------------------------------------------------------------
|
16.3.2007
Das Layout fast fertig. Ein paar Leiterbahnen müssen noch sauber verlegt werden, und auf der Rückseite fehlen noch die Masseflächen. Der Testadapter ist auch fast fertig. Nächste Woche werde ich die Prototypen-Leiterplatten bestellen. Danach bin ich erst mal eine Woche weg.
5.4.2007
Heute habe ich den Prototypen von Hand aufgebaut. Vielen Dank an die Firma Q-Print für die schnelle und korrekte Lieferung der Prototypenleiterplatte.

Das ME-1 Original...

...und der Nachbau (Prototyp)
Ich habe die Platine gleich einem ersten funktionalen Test unterzogen. Die Umschaltung auf Batterieversorgung durch das MAX691A sowie die Low-Bat Detektion funktionieren einwandfrei. Die Stromaufnahme der 5V-Versorgung liegt bei ca. 1 mA. Die Stromaufnahme aus der 3V-Batterie liegt bei fehlender 5V-Versorgung in einem Bereich, den ich kaum noch messen kann, obwohl ich ein Fluke 45 DVM mit 5 1/2-stelliger Anzeige habe. Die Anzeige lag jedenfalls bei 0,0002 mA, also ca. 200 nA. Bei vorhandener 5V-Versorgung steigt der Batterieverbrauch um den berechneten Querstrom des Batteriespannungsteilers von 1 µA an, den ich auch zur Lebensdauerberechnung der Batterie herangezogen habe.
Ich habe es so eingerichtet, daß der Fußpunkt des Batteriespannungsteilers (für die Low-Battery-Erkennung) mit dem Reset-Ausgang des MAX691A verbunden ist. Dies ist ein Open-Drain-Ausgang, der den Spannungsteiler nur bei vorhandener 5V-Versorgung auf Masse legt. Nur dann wird er auch gebraucht. Der Querstrom beträgt dann 1µA. Bei ausgeschaltetem K5000 fließt nur der äußerst geringe Leckstrom des PFI-Eingangs sowie der Leckstrom des Reset-Ausgangs, der im Datenblatt nicht einmal spezifiziert ist.
Auf dem nächsten Foto ist der Programmier- und Testadapter zu sehen, mit dem ich das ME-1 mit meinem USB-Programmer verbinden kann. Oben ist der AMP-Stecksockel, zur Aufnahme des ME-1, unten zwei mal 22-polige Stiftleisten, zum Aufstecken auf den DIP-44 Sockel des Programmers. Über das Osterwochenende will ich damit Speichertests vornehmen und bei Erfolg den Prototypen in meinem K5000W testen.

Programmier- und Testadapter
1.5.2007
Nachdem mich mein USB-Programmer, das ME-1 Original und der Nachbau nun tagelang genarrt haben, hier ein kurzer Statusbericht.
Als die Algorithmen für das Auslesen und Programmieren des ME-1 fertig waren, sah es zunächst so aus, daß ich beim Auslesen ständig Lesefehler hatte, sowohl beim Original als auch beim Nachbau. D.h. bei jedem Auslesen ein anderes Ergebnis.
Problem 1
Der Reset-Zyklus des MAX691A dauert ca. 200 ms. Nach dem Anlegen der Versorgungsspannung ist die CE-Leitung für diese Zeitspanne weiterhin blockiert. Da ich sofort mit dem Auslesen beginne, fehlt jedesmal ein gewisser Teil der Daten am Anfang des RAMs. Ein kleines Detail, daß ich im Datenblatt des MAX691A leider überlesen habe. Ich werde versuchen herauszufinden, wann das K5000 nach dem Einschalten erstmals auf das ME-1 zugreift. Sollte diese Zeit kürzer als 200 ms sein, kann ich noch einmal von vorne anfangen, zumindest was die Auswahl des Battery-Backup IC angeht. Auf dem Original liegt die Resetzeit bei ca. 640 µs.
Problem 2
Nach Einbau einer Pause in das Ausleseprogramm werden die Daten im Nachbau noch immer nicht korrekt ausgelesen. Ich habe einen Kurzschluß zwischen zwei Adressleitungen festgestellt. Leider habe ich kein SMD-Lötwerkzeug zu Hause, ich kann den Fehler erst nach dem Feiertag beheben.
Problem 3
Mein USB-Programmer ist zwar für das Auslesen von 16-Bit-Speichern konstruiert, aber nicht für das Beschreiben. Die bidirektionalen Datenleitungstreiber hängen am gleichen 8-Bit Bus, so daß Highbyte und Lowbyte stets gleich sind. Für den Test der Nachbauten habe ich das Problem geregelt, indem ich die UB und LB-Leitung (Upper und Lower Byte Selektion) des RAMs separat herausgeführt habe und mit freien Adressleitungen bedienen kann.
Beim Original ist das nicht möglich; deshalb habe ich meine Software zunächst so geändert, daß nur die 256 kByte Lowbytes geschrieben und gelesen werden. Für das Auslesen hatte ich allerdings noch einen Fehler in einer Zeigeroperation in meinem Programm, so daß das Verify jedesmal fehlschlug, allerdings dann nicht, wenn der Speicherinhalt komplett 0x00 oder 0xFF war. Es kostete mich Stunden, diesen Fehler zu finden.
Ich verwende jetzt ein Textfile ausreichender Größe, welches ich nun fehlerfrei in das ME-1 Original programmieren und auch wieder auslesen kann.


