Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 M-Unit , primären Speicher "Off-Board" legen Kategorie: Hardware (von das |_ Team - 4.09.2014 2:27)
das |_ Team nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.1, CC1-Station V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini M-Unit, Open-Mini Station
Programme in einen extern angeschlossenen I2C-Speicher laden und ausfĂŒhren (Hardwarelösung)


Dieser Beitrag beschreibt wie der primÀre On-Board Speicher auf der Platine eines M-Unit Steckmoduls deaktiviert und dessen Funktion durch einen von aussen via Pfostenleiste angeschlossenen "Off-Board" I2C Speicher ersetzt wird.

Sinnvoll ist die Deaktivierung des 24LC65 On-Board Speichers hauptsÀchlich wenn dieser keine neuen Programme mehr annimmt - z.B. nachdem die permanente Schreibschutzfunktion des 24LC65 versehentlich ausgelöst wurde.

An sich wĂ€re dann der komplette Neutausch des schreibgeschĂŒtzten 24LC65 EEPROM vorzuziehen. Dies ist aber aufwĂ€ndig denn die notwendigen Lötarbeiten erfordern Sub-Millimeter PrĂ€zision und  entsprechendes Werkzeug.

Daher kann die nachfolgend beschriebene Methode von Vorteil sein. Sie ist auch anwendbar wenn als Ersatzteil nur ein EEPROM im PDIP-8 GehĂ€use vorhanden ist, fĂŒr das auf dem M-Unit Steckmodul nicht genĂŒgend freie FlĂ€che bleibt. Zur Montage des neuen primĂ€ren "Off-Board" Speicher sollte eine Steckfassung vorgesehen werden. Dadurch können zukĂŒnftige Erweiterungen, die ĂŒber den I2C  Steckplatz erfolgen, unkompliziert nachgerĂŒstet werden.



Bild 1: Beispiel eines primÀren "Off-Board" Programmspeicher mit M-Unit I 1.1



Es werden 4 Leitungen benötigt um den primÀren "Off-Board" Speicher mit den Pfostensteckern des M-Unit Steckmoduls zu verbinden. Die Leitungen sollten möglichst kurz sein um Ein- bzw. Auskopplung von Störsignalen zu vermeiden.

Bild 2: primÀrer "Off-Board" Programmspeicher - Ansicht 2

 


Folgende Spannungen und Signale werden benötigt:



  +5V = Leitung zur (+) Seite der Versorgungsspannung = 5,0 Volt
  GND = Leitung zur (-) Seite der Versorgungsspannung =   0 Volt
  SCL = Taktleitung fĂŒr Synchronisation der Busteilnehmer
  SDA = Datenleitung fĂŒr Übertragung von und zu den Busteilnehmern.

Der Anschluss des neuen primÀren Speicher-IC ist simpel:

Pin 8 wird mit der +5V Versorgungsspannung verbunden
Pin 7 kann frei bleiben
Pin 6 wird mit SCL verbunden
Pin 5 wird mit SDA verbunden
Pin 4 wird mit (-) Seite (GND) der Versorungsspannung verbunden
'
Pin 3 ist ein Adresspin und mit GND verbunden  \
Pin 2 ist ein Adresspin und mit GND verbunden   -> ergibt benötigte
Pin 1 ist ein Adresspin und mit GND verbunden  /   PrimĂ€radresse 160





   +---------------------------------- zur Pfostenleiste M-Unit (GND) ---->
   |
   |
   |   Dies ist der neue "Off-Board" Speicher, z.B. ein 24C512 mit 64 KiB
   |     _____    _____
   |    |     \__/     |
   +--1[  A0       Vcc  ]8 --+------- zur Pfostenleiste M-Unit (5,0 Volt) -->
   |    |    24C512    |     /<-|
   +--2[  A1        WP  ]7 --+  VCC=Schreibschutz-EIN, GND(oder NC)=AUS
   |    |    64 KiB    |
   +--3[  A2       SCL  ]6 -------- zur Pfostenleiste M-Unit (SCL) -->
   |    |              |
   +--4[  Vss      SDA  ]5 -------- zur Pfostenleiste M-Unit (SDA) -->
        |______________|





Bild 3: primÀrer "Off-Board" Programmspeicher - Ansicht 3

 


Bild 4: primÀrer "Off-Board" Programmspeicher - Ansicht 4

 
 
 


Können andere EEPROM Typen als der 24LC65 verwendet werden?



Folgende EEPROM-Typen hat  das |_ Team  bisher erfolgreich getestet:

 Bezeichnung   SpeicherkapazitĂ€t
 ===============================

      24C64     8 KiB (auf einer Teilmenge serienmĂ€ĂŸiger C-Control bestĂŒckt)
      24C128   16 KiB
      24C256   32 KiB (mit Aufdruck ATML U950, oder auch als Chipkarte)
      24C512   64 KiB (oder auch als Chipkarte)
ATMEL 24C1024 128 KiB (64 KiB fĂŒr Programme und Daten + 64 KiB nur fĂŒr Daten)




Leider nicht erfolgreich waren unsere Tests mit je einem Exemplar des 24LC1025 sowie 24AA1025 (je 128 KiB, im PDIP-8 GehĂ€use, vom Hersteller Microchip).  Diese Typen und vermutlich auch deren AusfĂŒhrungen im SMD GehĂ€use scheinen als neuer primĂ€rer Programmspeicher fĂŒr C-Control I 1.1 nicht geeignet zu sein. Es kam stets zum "AufhĂ€ngen" des Systems kurz nach dem Starten der jeweiligen Testprogramme.

FĂŒr die 24C1026 und 24AA1026 (128 KiB, ebenfalls von Microchip) liegen uns noch keine Erfahrungen vor.



Nicht vergessen: Die Deaktivierung des alten On-Board Speichers


Bevor der neue primĂ€re "Off-Board" Speicher endlich in Betrieb gehen kann muss der alte On-Board Speicherchip entweder umadressiert oder ganz deaktiviert werden, damit es nicht zur Adresskollision kommt. Leider nĂŒtzt es nichts die Adresse des neuen und gut zugĂ€nglichen "Off-Board" Speicher zu verĂ€ndern, denn das C-Control I 1.1 Betriebssystem setzt fĂŒr den Programmspeicher stets die Basisadresse 160 voraus. In diesem Beitrag bezieht sich der Zusatz 'primĂ€r' daher auf genau einen von ggf. mehreren gleichzeitig am I2C Bus betriebsbereiten I2C Speicherchips: NĂ€mlich denjenigen mit der Basisadresse 160.

Unter [1] haben wir eine mögliche Variante beschrieben einen versehentlich schreibgeschĂŒtzten 24LC65 mit alternativer Adresse zu versehen. Dies hat zwar den Vorteil dass mithilfe eines in den PrimĂ€rspeicher zu ladenen Programms noch lesend auf den 24LC65 zugegriffen werden kann - allerdings sind die erforderlichen Vorarbeiten dafĂŒr fast so aufwendig, wie der komplette Neutausch des 24LC65 es wĂ€re.

Daher stellt sich in diesen FĂ€llen wohl die Frage ob nicht grundsĂ€tzlich ein neuer Speicher-Chip eingelötet werden sollte wenn entsprechendes Werkzeug und die Zeit zur VerfĂŒgung steht.



Einfache und vollstÀndige Deaktivierung des On-Board Programmspeichers


Wir haben uns ĂŒberlegt was eigentlich geschieht wenn man einfach dem alten On-Board EEPROM "den Saft abdreht" ohne die restlichen AnschlĂŒsse zu kappen. Dazu mĂŒsste lediglich  ein Pin mit leicht beschaffbarem Werkzeug aufgetrennt werden.

Aber geht das ĂŒberhaupt so einfach? Muss dieser Speicherchip nicht stĂ€ndig mit der Versorgungsspannung +5V an VCC verbunden bleiben, solange auch SCL und SDA mit dem I2C Pegeln beaufschlagt werden - und wie verhalten sich eigentlich die internen Schaltungen des EEPROM falls nur VCC nicht verbunden ist?


Ehrlich gesagt, wir wussten nicht ob es funktioniert. Auch im Datenblatt zum 24LC65 haben wir keine Antwort auf diese spezielle Frage gefunden. Deshalb haben wir es ausprobiert:



Bild 5: On-Board Speicher 24LC65, im Kreismittelpunkt aufgetrennte Verbindung zwischen Pin nr.8 und VCC.

 


Es wird lediglich VCC an Pin Nr.8 unterbrochen. Dazu kann eine spitze Nagelschere verwendet werden, wenn kein Spezialwerkzeug vorhanden ist. Besser ist natĂŒrlich eine sehr feine Elektronikzange geeignet.

<b>
==============================
Achtung - Schutzbrille tragen!
==============================
</b>


Beim Trennen der relativ spröden Anschlusspins nebst Lötmaterial können Metallsplitter mit hoher Geschwindigkeit davon geschleudert werden. Auch könnte die Nagelschere beim Schneiden des Metalls Schaden nehmen.

Weiter ist zu bedenken dass mit einer Schere, wie der Name aussagt, starke ScherkrĂ€fte an der Trennstelle erzeugt werden. In unserem Anwendungsfall können diese leicht auf das darunter befindliche Landpad ĂŒbertragen werden, wodurch dieses im ungĂŒstigen Fall komplett abreissen kann.

Tipp:

Um Abreissen der Landpads zu verhindern kann ein Schraubendreher mit gerader Klinge auf den unteren Teil des zu trennenden Pins, nahe der Platine, gedrĂŒckt werden um diesen gegen die auftretenden KrĂ€fte zu stabilisieren.


Bild 6: In Mitleidenschaft geratenes Landpad aus einem anderen Projekt






Sofort nach dem Trennen des VCC Pin entfernen wir die Überreste des Pins und evt. abgeplatztes Lötmaterial bevor sich diese zwischen die umliegenden Anschlusspins oder unter den 52-poligen Prozessorchip verkrĂŒmeln. Letzteres wĂ€re sehr unangenehm und wenn demnĂ€chst bei Schaltaufgaben immer 2 Ports gemeinsame Sache machen kann man sich schon mal ĂŒberlegen wie man sie da wieder heraus bekommt.

Anschliessend wird der neue primĂ€re "Off-Board" Speicher und der  M-Unit Programmieradapter angeschlossen. Nun kann erstmalig nach dem Umbau oder Schreibschutz-Malheur des 24LC65 wieder ein neues Programm zum Mikrokontroller hochgeladen werden.

Wir haben uns fĂŒr "|_-E2TEST" entschieden, unser EEPROM-Testprogramm fĂŒr C-Control I 1.1, das wir in einem frĂŒheren Beitrag schon kurz erwĂ€hnt haben [2].

Um den Testzyklus zu beschleunigen haben wir ausserdem die C-Control CPU mit 10 MHz Takt laufen lassen, also einen 20 MHz Quarz angeschlossen. Dadurch erhöht sich auch der I2C Bustakt, wodurch evt. Probleme die durch das mittels VCC-Unterbrechung deaktivierte On-Board 24LC65 eventuell bestehen wĂŒrden sich eher bemerkbar machen. Ausserdem ergibt sich fĂŒr die Kommunikation mit der Seriellen Schnittstelle die ungewöhnliche Baudrate von (9615 * 5 =) 48075 baud.

Deshalb ist ein geeignetes USB-nach Seriell Adapterkaebel erforderlich um die Ausgaben des |_-E2TEST Programms im Terminal zu betrachten. Nicht alle Adapterkabel sind geeignet. Wir haben ein FTDI-basiertes Kabel mit seinem Treiberpaket fĂŒr Windows-XP verwendet.

Das Ergebnis zur Fragestellung

Kurz gesagt, es reicht das On-Board 24LC65 EEPROM durch alleinige Unterbrechung dessen VCC Leitung logisch vollstĂ€ndig vom I2C-Bus zu trennen, wobei die verbleibenden Anschlusspins weiterhin elektrisch mit der Schaltung verbunden bleiben. Die jetzt freie PrimĂ€radresse 160 und damit das vom C-Control abzuarbeitende Userprogramm kann anschliessend dem neuen primĂ€ren "Off-Board" Speicher ĂŒbertragen werden.



Bild 7: Listenausgabe von |_-E2TEST  


   

Wie man sieht arbeitet der primÀre "Off-Board" Speicher noch bei 5-facher Taktfrequenz des C-Control I 1.1 fehlerfrei. (Die Zeilen "64 Bytes Page-Write-Bereich..." sind keine Fehlermeldungen.) Die Listenausgabe gehört zu einem 24C256 mit 32 KiB. Am selben I2C-Bus befindet sich der mittels VCC deaktivierte 24LC65. Es wurden keinerlei Schreib- oder Lesefehler gemeldet.


Wir hoffen dieser Beitrag ist hilfreich und freuen uns ĂŒber Feedback.


das |_ Team





[1]  http://ccintern.dharlos.de/forum/lesen.php?eintrag=16217
[2]  http://ccintern.dharlos.de/forum/lesen.php?eintrag=16181

     Projekte von  das |_ Team:

     http://visit.ghn-sensorik.de/L-Team/





FĂŒr Aufmerksame: Einige Bilder entstanden nachtrĂ€glich und zeigen das M-Unit Steckmodul bereits bestĂŒckt mit einem neuen Speichertyp in F-RAM-Technologie. Dieser Umbau soll Thema eines zukĂŒnftigen Beitrags werden. Es ist also nicht immer der dem Text zugrunde liegende 24LC65 auf den Bildern zu sehen

 Antwort schreiben

Bisherige Antworten:

Nachtrag: 24L1026 EEPROM an C-Control 1.1 (von das |_ Team - 16.10.2021 22:51)
Re: M-Unit , primären Speicher "Off-Board" legen (von das |_ Team - 17.01.2021 5:08)