| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
alex.enjoy
Anmeldungsdatum: 24.11.2009 Beiträge: 6
|
Verfasst am: Di 24.Nov 2009 14:26:27 Titel: paralleles EEPROM seriell ansprechen über Schieberegister |
|
|
Hallo,
bin neu hier, daher will ich mich erstmal kurz vorstellen.
Mein Name ist Alexander und habe vor 15 Jahren mal eine Ausbildung zum Elektroniker abgeschlossen, seither aber ausser ein paar Basteleien nichts mit dem Thema zu tun.
Ich würde mich als ambitionierten halbwissenden Laien einstufen.
Aktuell baue ich eine Steuerung für unsere Heizungsanlage mit Hilfe eines Arduino Microcontroller-Boards.
Funktioniert auch alles ganz gut mit I2C und 1-Wire bus etc.
Nun benötige ich aber einen größeren EEPROM speicher für Protokollierungen. Habe mit I2C EEPROMS angesehen, sind aber viel zu klein.
Sehr günstig habe ich von AMD ein paralleles EEPROM mit viel Speicher gefunden und möchte dafür mittels Schieberegistern nun ein serielles Interface bauen.
Für die Adressleitungen ist das ja garkein Problem. Ein entsprechent breites Seriell-IN/Parallel-OUT Schieberegister kann das bereitstellen.
Allerdings bereiten mit die Datenleitungen Kopfzerbrechen.
Das sind 8 Stück (für 8-Bit), die gleichzeitig Eingang und Ausgang sind, je nachdem ob man gerade schreibt oder liest.
Wenn ich jetzt zum Schreiben wieder ein S-IN/P-OUT Schieberegister nehme, und zum lesen din P-IN/S-OUT SR, dann kommen sich die beiden SRs doch sicher gegenseitig in die Quere. Die Ausgänge des S-IN/P-OUT kann man ja nicht abkoppeln wenn sie nicht gebraucht werden.
Meine plumpe Idee dafür wäre ein 8-fach wechsel Relais dazwischenzuschalten (natürlich nur theoretisch).
Aber das muss doch eleganter gehen, oder?
Bei dem Microcontroller kann man ja auch per Software jeden I/O-Port entweder als Eingang oder als Ausgang definieren.
Ich habe an dem Ardunio halt nur eine begrenzte Anzahl Ports und keine 8 stück für die EEPOM Datenleitungen mehr übrig.
Es kommt übrigens überhaptnicht auf die Geschwindigkeit der Schaltung an. Sogar 8bit/s wären noch okay....
Ausserdem wird es fast nur Schreiboperationen geben, und manchmal selten auch lesen.
Hier nochmal die Bauteile bei Reichelt.de:
29F040-90 DIL :: FLASH EPROM DIL 32
74HC 164 :: 8BIT SIPO SHIFT REGI
74HC 165 :: 8BIT PISO SHIFT REGIS.
es wäre schön wenn jemand einen Tipp dazu für mich hätte.
gruß Alex. |
|
| Nach oben |
|
 |
BellaD

Anmeldungsdatum: 03.12.2006 Beiträge: 1197 Wohnort: Klinik der misshandelten Kuscheltiere
|
Verfasst am: Di 24.Nov 2009 16:07:34 Titel: |
|
|
moin moin
Tri state octal bus tranciver 74hc245
mfg _________________ Eine Weiterverbreitung ohne ausdrückliche Genehmigung ist untersagt. Für Schäden, lehnen wir jegliche Haftung ab. |
|
| Nach oben |
|
 |
alex.enjoy
Anmeldungsdatum: 24.11.2009 Beiträge: 6
|
Verfasst am: Di 24.Nov 2009 16:49:16 Titel: |
|
|
Hallo BellaD,
danke, sowas kannte ich bislang noch nicht.
Verstehe ich das so richtig, daß ich zwei stück davon parallel an die EEPROM Datenleitungen löte und und dahinter dann jeweils die passenden Schieberegister?
Und zum Schreiben setzte ich den /G Pin des Lesen-Transceivers HIGH was einem abkoppeln des PI/SO-SR gleichkommen würde?
Und für Lesen dann genau umgekehrt?
| Code: |
[EEPROM]----[SI/PO-SR-Address]
|
|(8-bit Data)
|
\-------[<<<Transceiver-WRITE<<<]---[SI/PO-SR]
|
|
\-------[>>>Transceiver-READ>>>]----[PI/SO-SR]
| [/code]
gruß Alex. |
|
| Nach oben |
|
 |
derguteweka
Anmeldungsdatum: 18.12.2005 Beiträge: 1010
|
Verfasst am: Di 24.Nov 2009 17:33:34 Titel: |
|
|
Moin,
Uiuiui - sicher, dass du dir so einen Stress machen willst? Haste dir schon mal serielle 3wire-bus eeproms angeguckt? Die gibts im angenehm kleinen 8pin Gehaeuse (SMD, aber prima von Hand zu loeten), die brauchen auch nur 3-4 I/O Leitungen am Prozessor und die gibts auch locker bis ein paar Megabyte Kapazitaet. Google mal z.B. nach "m25p40" - der waere elektrisch genauso gross wie dein Parallelflash - und du sparst dir das Drama mit Schieberegistern, Bustreibern etc. Schneller sind sie dann auch noch, denn so ein handgebastelter TTL-Klapperatismus macht keine 50MHz serial clk mit.
Gruss
WK |
|
| Nach oben |
|
 |
BellaD

Anmeldungsdatum: 03.12.2006 Beiträge: 1197 Wohnort: Klinik der misshandelten Kuscheltiere
|
Verfasst am: Di 24.Nov 2009 18:20:53 Titel: |
|
|
Nun lass ihn doch basteln
Ja klar ist SPI schöner und einfacher und billiger....
Apps gibts zBsp. bei Atmel (da Arduino )
http://www.atmel.com/dyn/products/app_notes.asp?family_id=616
mfg _________________ Eine Weiterverbreitung ohne ausdrückliche Genehmigung ist untersagt. Für Schäden, lehnen wir jegliche Haftung ab. |
|
| Nach oben |
|
 |
alex.enjoy
Anmeldungsdatum: 24.11.2009 Beiträge: 6
|
Verfasst am: Di 24.Nov 2009 21:06:21 Titel: |
|
|
Hallo,
ist doch super!
Habe noch ein bischen weitergesucht und sogar ein 512k*8 I2C EEPROM gefunden, und mit I2C kenn ich mich schon etwas aus (Realtimeclock für die Log-Zeitstempel).
Das werde ich dann wohl doch bevorzugen, auch weil es kein SMD ist und ich auf Lochrasterplatine baue....
Trotzdem finde ich es klasse diese Info über tristate und transceiver mitbekommen zu haben, wer weiß wofür das nochmal nützlich sein wird!
Ich hätte da noch eine nicht ganz so wichtige Frage:
als Anzeige hab ich ein 4x7segment LCD Display ohne Controller hier was über ein Schieberegister angesteuert wird. Funktioniert soweit gut.
Leider leuchten die Segmente einige zehntel Sekunden nach wenn sie abgeschaltet werden. Der gemeinsame Anschluss des Displays ist direkt an 5V, die einzelnen Segmente direkt am Schieberegister. Kann man das Nachleuchten minimieren?
Vielen Dank nochmal für die Hilfe,
Alex. |
|
| Nach oben |
|
 |
Alv
Anmeldungsdatum: 23.06.2009 Beiträge: 456 Wohnort: Braunschweig
|
Verfasst am: Di 24.Nov 2009 21:27:21 Titel: |
|
|
| alex.enjoy hat folgendes geschrieben: | Habe noch ein bischen weitergesucht und sogar ein 512k*8 I2C EEPROM gefunden,
|
Wie lautet denn die Bezeichnung davon?
Gibt es auch Rams mit I2C-Bus?
| Zitat: |
als Anzeige hab ich ein 4x7segment LCD Display ohne Controller hier was über ein Schieberegister angesteuert wird. Funktioniert soweit gut.
Leider leuchten die Segmente einige zehntel Sekunden nach wenn sie abgeschaltet werden. Der gemeinsame Anschluss des Displays ist direkt an 5V, die einzelnen Segmente direkt am Schieberegister. Kann man das Nachleuchten minimieren? |
LCDs müssen mit Wechselspannung angesteuert werden, sonst geben sie bald den Geist auf!
Vielleicht kommt das "Nachleuchten" auch von der Gleichspannungsansteuerung? _________________ bd. Alv |
|
| Nach oben |
|
 |
alex.enjoy
Anmeldungsdatum: 24.11.2009 Beiträge: 6
|
Verfasst am: Di 24.Nov 2009 21:39:17 Titel: |
|
|
Hallo Alv,
| Alv hat folgendes geschrieben: |
Wie lautet denn die Bezeichnung davon?
Gibt es auch Rams mit I2C-Bus? |
ich hab das bei Reichelt gefunden: ST 24C512 BN6 (AT24C512B seriell EEPROM, 5V, DIP-8 ), kostet 1,50€
RAMs habe ich nicht in I2C Ausführung gefunden, aber wäre das nicht eh etwas langsam? Und wenn nicht, dann geht EEPROM doch genausogut...
| Alv hat folgendes geschrieben: |
LCDs müssen mit Wechselspannung angesteuert werden, sonst geben sie bald den Geist auf!
Vielleicht kommt das "Nachleuchten" auch von der Gleichspannungsansteuerung? |
Ohoh.... wie soll ich das denn hinkriegen??
Edit:
Habe eine tolle Erklärung in einfachen Schritten zu LCD Ansteuerungen gefunden.
Wen es interessiert: hier ist sie zu finden. |
|
| Nach oben |
|
 |
Alv
Anmeldungsdatum: 23.06.2009 Beiträge: 456 Wohnort: Braunschweig
|
Verfasst am: Mi 25.Nov 2009 06:18:16 Titel: |
|
|
| alex.enjoy hat folgendes geschrieben: | Hallo Alv,
| Alv hat folgendes geschrieben: |
Wie lautet denn die Bezeichnung davon?
Gibt es auch Rams mit I2C-Bus? |
ich hab das bei Reichelt gefunden: ST 24C512 BN6 (AT24C512B seriell EEPROM, 5V, DIP-8 ), kostet 1,50€
RAMs habe ich nicht in I2C Ausführung gefunden, aber wäre das nicht eh etwas langsam? Und wenn nicht, dann geht EEPROM doch genausogut...
|
Danke. Ich möchte mich nur mal vorab informieren, weil für ein zukünftiges Projekt möglicherweise der interne Speicher eines ATMega8 nicht ausreicht und bei einen normalem Static-Ram extern zuviele Pins verbraucht werden. | Zitat: |
| Alv hat folgendes geschrieben: |
LCDs müssen mit Wechselspannung angesteuert werden, sonst geben sie bald den Geist auf!
Vielleicht kommt das "Nachleuchten" auch von der Gleichspannungsansteuerung? |
Ohoh.... wie soll ich das denn hinkriegen??
Edit:
Habe eine tolle Erklärung in einfachen Schritten zu LCD Ansteuerungen gefunden.
|
Zur Ansteuerung von LCDs werden auch EXORs verwendet:
Diese werden dann als schaltbare Inverter/Nichtinverter genutzt.
Der Takt geht an die Backplane und an einen EXOR-Eingang, der EXOR-Ausgang geht an das Segment.
Mit dem 2. EXOR-Eingang kann man dann das Segment ein- und ausschalten. _________________ bd. Alv |
|
| Nach oben |
|
 |
alex.enjoy
Anmeldungsdatum: 24.11.2009 Beiträge: 6
|
Verfasst am: Mi 25.Nov 2009 21:36:46 Titel: |
|
|
Hallo,
habe das mit dem LCD nun doch hinbekommen, nur etwas anders.
Die Backplane versorge ich nun nicht mehr konstant mit +5V, sondern über einen I/O Port des µC.
Da ich von der RTC sowieso exakt im 1Hz Takt einen Interrupt bekomme, invertiere ich dann diesen Port immer und gebe die Segmente auch invertiert in die Schieberegister.
Jetzt stimmt der Kontrast und es verblasst nix mehr. Das Nachleuchten ist auch weg.
Danke nochmal für die Tipps.
Alex. |
|
| Nach oben |
|
 |
alex.enjoy
Anmeldungsdatum: 24.11.2009 Beiträge: 6
|
Verfasst am: So 29.Nov 2009 09:47:30 Titel: |
|
|
Hallo,
| Alv hat folgendes geschrieben: |
Zur Ansteuerung von LCDs werden auch EXORs verwendet:
Diese werden dann als schaltbare Inverter/Nichtinverter genutzt.
Der Takt geht an die Backplane und an einen EXOR-Eingang, der EXOR-Ausgang geht an das Segment.
Mit dem 2. EXOR-Eingang kann man dann das Segment ein- und ausschalten. |
Im 4070 quad-XOR sind für jedes XOR-Gate ja 3 Pins, wobei ich für diesen Zweck alle A-Eingänge verbinden müsste.
Gibt es auch ICs mit 8 XOR Gates bei denen alle A-Eingänge zusammen auf einem Pin liegen?
Sonst bräuchte ich für ein 4-stelliges LCD ja 8x4070 IC nur für die Invertierung...
gruß Alex. |
|
| Nach oben |
|
 |
Anzeige
|
Verfasst am: Titel: |
|
|
|
|
|
| Nach oben |
|
 |
derguteweka
Anmeldungsdatum: 18.12.2005 Beiträge: 1010
|
Verfasst am: So 29.Nov 2009 10:02:50 Titel: |
|
|
Moin,
| alex.enjoy hat folgendes geschrieben: | Im 4070 quad-XOR sind für jedes XOR-Gate ja 3 Pins, wobei ich für diesen Zweck alle A-Eingänge verbinden müsste.
Gibt es auch ICs mit 8 XOR Gates bei denen alle A-Eingänge zusammen auf einem Pin liegen?
Sonst bräuchte ich für ein 4-stelliges LCD ja 8x4070 IC nur für die Invertierung... |
Also ich kenn' keine Logikgatter mit mehr als 4 XOR Gattern drinnen. Hoechstens als CPLD oder FPGA. Aber ich hab' auch noch nie gesehen, dass ein LCD nicht ueber einen speziellen LCD-Controller (Der dann eben die Unmengen XORs und noch viel mehr eingebaut hat) angesteuert wird. Beide Beobachtungen haben sicher was miteinander zu tun
Wenn du's trotzdem mit 4070 o.ae. machen willst, dann solltest du deinen Umschalttakt aus einem Flipflop gewinnen, damit sichergestellt ist, dass das Tastverhaeltnis recht genau 1:1 ist. Sonst nuetzen die ganzen XORs wenig und dein LCD geht trotzdem ueber die Wupper.
Gruss
WK |
|
| Nach oben |
|
 |
|