Ich habe in einer Werkstatt ganz viele solcher KM4164A ICs von Samsung gefunden.Nun möchte ich gerne diesen Chip per arduino ansteuern.Leider habe ich das richtige Datenblatt nicht gefunden.Außerdem hab ich versucht mit Hilfe von dem Datenblatt von dem KM4164B,den KM4164A an den Arduino anzuschließen und hab einen sketch geschrieben.Doch leider funktioniert das alles nicht.Den Zeitgraphen im Datenblatt habe ich dann umgesetzt. Hier mein äußerst schlechter Arduino-Sketch: int ras = 9; int cas = 8; int rw = 10; int cue = 11; int die = 12; void setup() { pinMode(0,OUTPUT);//a0 pinMode(1,OUTPUT); pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT);//a7 pinMode(8,OUTPUT);//cas pinMode(9,OUTPUT);//ras pinMode(10,OUTPUT);//w pinMode(11,INPUT);//Q pinMode(12,OUTPUT);//D Serial.begin(9600); } void loop() { int i = 0; int x = 0; for(x=0;x<=8;x++){ //Schreibvorgang.. Serial.println("|"); Serial.print(x); for(i=0;i<=8;i++){ digitalWrite(die,LOW);//alle bits werden auf HIGH getzt digitalWrite(ras,HIGH); digitalWrite(cas,HIGH); PORTD=x; digitalWrite(ras,LOW); PORTD=0; digitalWrite(rw,LOW); PORTD=i; digitalWrite(cas,LOW); PORTD=0; digitalWrite(ras,HIGH); digitalWrite(cas,HIGH); digitalWrite(ras,LOW); digitalWrite(cas,LOW); } } for(x=0;x<=8;x++){//Lesevorgang... Serial.println("|"); Serial.print(x); for(i=0;i<=8;i++){ digitalWrite(ras,HIGH); digitalWrite(cas,HIGH); PORTD=x; digitalWrite(ras,LOW); PORTD=0; digitalWrite(rw,HIGH); PORTD=i; digitalWrite(cas,LOW); PORTD=0; if(HIGH==digitalRead(cue)){//alle bits werden auf ausgelesen Serial.print("1");//es kommt immer 1 raus!? }else{ Serial.print("0"); } digitalWrite(ras,HIGH); digitalWrite(cas,HIGH); digitalWrite(ras,LOW); digitalWrite(cas,LOW); } } } Zweck: Der chip soll als Speicher dienen um Programme zu speichern, die Per interpreter im arduino ausgeführt werden sollen.
PlotFill schrieb: > Schade das waren Nämlich mehr als nur einer. > Nämlich über 20! Schau im Datenblatt mal nach dem Stromverbrauch. Mit ein wenig Glück verbraucht ein solch Chip schon mehr als dein Arduino, nämlich 45-60mA. Ausserdem müsstest du fürs Refresh mindestens einen Timer mit ISR opfern.
Matthias S. schrieb: > Schau im Datenblatt mal nach dem Stromverbrauch. Maximal braucht der ic 60mA bei einem Vorgang. Kann man den refresh nicht auch im arduino programmieren?
Hallo, vielleicht gibt Dir das Anregungen: http://hackaday.com/2014/04/09/using-simms-to-add-some-extra-ram-on-your-arduino-uno/ https://www.mikrocontroller.net/articles/AVR_CP/M Auch wenn es wenig Sinn macht... Gruß aus Berlin Michael
Also 8 KByte?! Das lohnt sich absolut überhaupt nicht. Wenn du einen Arduino Zero nimmst, hast du schon 32 KB SRAM auf dem Mikrocontroller. Das ist viel schneller und trivial zu nutzen.
Dr. Sommer schrieb: > Also 8 KByte?! Noch nicht mal. Ein 4164 ist ein 64Kx1 DRAM. Also nur 1 Bit breit. Um damit etwas anzufangen, muß man erst mal 8 Stück parallel schalten (außer den Datenleitungen natürlich). Außerdem ist das kein CMOS, sondern NMOS - braucht also ordentlich Strom. Im Betrieb ca. 50mA pro Chip. Und die Refresh-Zeit ist lediglich 2ms. In diesen zwei Milli(!)sekunden muß man alle 128 Zeilen des RAMs jeweils einmal aufgefrischt haben, sonst wird der RAM vergeßlich. Die GPIOs eines Arduino - noch dazu unter Verwendung der Arduino IO-Primitiven ist dafür denkbar ungeeignet - weil zu langsam. @PlotFill (Gast): diese RAMs wurden in 8-Bit Heimcomputern verwendet. U.a. im ZX Spectrum und einigen Varianten des C64. Die sind auch heute noch gesuchte Ersatzteile.
PlotFill schrieb: > Maximal braucht der ic 60mA bei einem Vorgang. Sage ich ja. Das ist schon mehr, als dein ganzer Arduino benötigt. > Kann man den refresh nicht auch im arduino programmieren? Auch das habe ich geschrieben: > Ausserdem müsstest du fürs Refresh mindestens einen Timer mit ISR > opfern. Da du, wie schon erwähnt, da nur einen 1-bit*64k Chip hast, musst du dann entweder 8 Stück nehmen oder die Daten seriell speichern und lesen und dann in den RAM der AVR laden - das möchtest du alles nicht und kommst damit vermutlich auch schnell an das Ende deiner Programmierkenntnisse. Du kannst, wenn du ein Hardware Spezi bist, aus den Dinger mit geschickter Logik noch einen Framebuffer bauen - so wie Steve Wozniak das z.B. im Apple ][ gemacht hat. Damit hast du den Refresh und den Bildaufbau in einem Schwupps erledigt. Dazu musst du aber schon richtig Hardware basteln können und noch einen Schwung Mulitplexer und Schieberegister in die Menge werfen.
Aus reiner Neugier kann man sowas schon bauen, praktisch sinnvoll ist es nicht. Wenn man mehr Speicher am AVR braucht, dann nimmt man SRAM oder beim ATXmega SDRAM. ODer gleich einen 32 Bitter mit deutlich mehr RAM, z.B Arduino Zero. https://www.mikrocontroller.net/articles/Speicher#Mit_XMEM-Interface Beitrag "Re: Viel RAM am kleinen Controller" https://www.arduino.cc/en/Main/ArduinoBoardZero
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.