Tag Leute Ich hab meinen ISP-Programieradapter endlich zum Laufen gebracht und gleich IC-Sockel auf dem Prommer eingebaut damit ich mir den MC nicht mehr so leicht schieße. Da ich mich jetzt einigermaßen eingearbeitet habe will ich mal an neue Bereiche ranwagen. Mich würde es interessieren ob und wie ich mit einem ATmega8 bzw 16 Ram-Module oder Speicherkarten ansprechen kann. Kann mir jemand sagen wo ich Informationen/Tutorials darüber finde? mfg Alex
Soll ich das jetzt wirklich schreiben? Na gut: Externes RAM ansprechen: im Datenblatt des µC nachlesen, ob und wie es geht. Speicherkarten: im Datenblatt der Speicherkarte nachlesen. Am einfachsten wird es wegen der einfachen Schnittstelle mit MMC-Karten (im Midi-Rekorder-Projekt hier findest Du ein Vorbild dafür). Und wenn dann noch (konkrete) Fragen kommen, gibt es auch eine Chance, konkret zu antworten.
Ich dachte da an alte PC-Ramriegel Oder eventuell auch an andere Ramspeicher. Sind MMC-Karten nicht eine Art Prom? Da die Daten ziemlich oft geschrieben werden, sind EEProm und ähnliche Speichermedien nicht umbedingt geeignet. Ich habe vor eine Art Datenpuffer zu bauen. Das Ganze sollte ungefähr so aufgebaut sein: Über einen/zwei Pin/s werden die Daten gesammelt und in den externen Speicher zwischengespeichert. Wenn der Speicher voll ist, werden die Daten über UART an einen PC oder eine SPS gesendet. Dass Problem ist nämlich dass Daten in "Signalbursts" ankommen die für die bis jetzt zur verfügung stehenden Schnittstellen zu schnell sind. Da ich aber mit dem Mikrokontroller programieren erst am Anfang bin frage ich hier nach ob und wie das am Besten Daten extern abspeichere.
MMC-Karten sind Flash, also noch schlechter als EPROM. Faustformel: Flash kann man 10.000 mal beschreiben, EEPROM 100.000 mal. Wenn Du eine kleine MMC-Karte, sagen wir 64 MByte, jeweils komplett beschreibst, bevor Du sie überschreibst, sind das also 640 GByte Daten, die Du sammeln kannst, bevor Du die Karte tauschen mußt. Wenn Du ständig gerade so viel Daten aufzeichnest, wie Du über eine schnelle UART mit 115 kBit/s übertragen kannst, kannst Du immer noch zwei Jahre Tag und Nacht aufzeichnen. Soviel, um die Verhältnisse zurechtzurücken: die begrenzten Schreibzyklen sind in der Praxis fast immer egal. Ein größeres Problem könnte die Schreibgeschwindigkeit sein. So ein "Burst": welche Datenmenge in welcher Zeit wird das ungefähr sein?
@Quark Danke für den Link. Da hab ich wieder genug zu lesen @ Philipp Sªsse Wie der Burst genau aussehen wird weis ich nicht genau. Jedenfalls wird er für den seriellen-, parrallelen- und den Gameport zu schnell sein. Und die Datenmengen werden für den internen Speicher eines ATmega8 bzw ATmega16 höchstwarscheinlich zu groß sein. Die Pausen zwischen den Erfassungen werden aber sicher nicht kritisch sein. (1 bis 10 Sekunden) Das muß ich noch genau durchplanen und durchdenken. mfg Alex
Tag Leute Ich hab gerade wieder einen alten Rechner ausgeschlachtet und da bin ich auf merkwürdige Speicherriegel gestoßen. Dieser Riegel hat 30 Pins mit denen man ihn direkt in das Steckbrett stecken könnte. Auf dem Riegel sind 3 SMD-IC's. Einer hat die Bezeichnung KM41C256J-8 und besitzt 18 Pins. 2 haben die Bezeichnung GM7IC4256AJ80 oder GM71C4256AJ80 und hanen 20 Pins. Weis jemand welcher Ram-Typ das ist oder eventuell sogar wie da die Pinbelegung ist? mfg Alex
Das sind SIP, eine andere Bauform von SIMM. Wenn du die mit dem Mega8 vernünftig (nicht nur als WOM) ansprechen kannst, dann ziehe ich den Hut vor dir. ...
Das ist ein sogenanntes SIPP mit 265 kByte Speicherkapazität. Es ist mit 9 Bit Breite (8 Datenbits und ein Parity-Bit) organisiert. Die zwei gleichen Speicherbausteine sind einfache Page-Mode-DRAMs mit 256 k * 4 Bit Kapazität, das einzelne hat 256 k * 1 Bit Kapazität. Verbreiteter als das SIPP ist das im Grunde genommen baugleiche SIMM, an das nur keine Beinchen angelötet sind. In dieser Bauform gab es auch größere Speichermodule mit 1 MByte oder sogar 4 MByte Kapazität. Üblich waren diese Speichermodule in PCs der 286er Ära über 386er bis hin zu frühen 486ern. Ein Modul mit 256 kByte Kapazität ist ... ziemlich uninteressant, da es verhältnismäßig aufwendig anzusteuern ist und SRAMs mit der doppelten Kapazität recht verbreitet sind.
Aha, doch mit Doppel-p... Ich war mir nicht sicher... ;-) ...
Da würde ich mich auch nicht unbedingt drauf verlassen, ob das nun mit einem oder zwei Ps geschrieben wird. SIM "single inline memory" oder "single inline module" SIMM "single inline memory module" SIP "single inline package" SIPP "single inline pinned package"? Letzlich sind viele Bezeichnungen für Speichermodule eh nur Marketinggeschwurbel, wie die vollkommen schwachsinnige Bezeichnung "PS/2"-Modul für 72polige SIMMs zeigt.
Danke. Das wollte ich nur mal wissen. Ich hatte schon vermutet dass diese Module nicht wirklich viel Speicher bieten. Ich hatte es mir nur überlegt weil diese Riegel schon die Pins draufhatten. Da ich 4 von den Riegeln habe habe ich mir gedacht dass ich da "einfach" mit Bustreibern arbeite um die Daten hin und her zu schupfen. Obwohl wenn ich mir diese Antworten so durchlese mit 80 bis 95% Ressourcenausnutzung rechnen müsste wenn ich diese Riegel verwende. Das fällt wohl in die gleiche Kathegorie wie die einzelnen Speichermodule (MB81C425-80B und HY53C256LS10) -> zu kleiner Speicher für den Aufwand. Was ist eigentlich der grundlegende Unterschied zwischen S-Ram, D-Ram und den anderen PC-Ramriegeln die es giebt? mfg Alex
Erkundige dich mal nach Refresh. Den Unterschied der einzelnen Speichertypen solltest du mal selbst recherchieren (recherchieren, nicht andere Leute fragen). Denn solange du dich da nicht auskennst, wirst du auch keinen externen Speicher an einen AVR anschließen können. Übrigens zieht jede (in einem Forum) beantwortete Frage mindestens zehn weitere offene Fragen nach sich. Willst du die denn alle hier stellen? Oder ist es nicht besser, selbst tätig zu werden. ...
Tag Ich habe nur desswegen nachgefragt weil wenn ich Google frage bekomme ich nur Kaufangebote. Und da ich schon so gut wie alle PC-Ramriegel-Typen rumliegen habe, will ich nicht wissen wo ich sie herbekomme sondern wie die Pinbelegung ist, wie die Refreshzeiten sind und wie die geforderten Komunikationsroutinen sind. Da ich das Ganze erst lernen will und schon mancher in diesem Forum damit beschäftigt hat, finde ich es besser mal nachzufragen wo ich die Informnationen herbekomme als stundenlang erfolglos herumzusuchen. Ich will ja das Rad nicht neu erfinden, sondern von den Erfahrungen der Anderen profitieren. mfg Alex
Es hat keinen Sinn, mit diesen alten dynamischen Speichermodulen herum zu experimentieren. Es ist vergeudete Zeit. Wenn du unbedingt viel RAM am Controller brauchst, dann versuche es erstmal mit SRAM. In den Datenblättern der AVRs mit RAM-Interface (ab 8515...) findest du reichlich Hinweise dazu. Sowohl zum Anschluss (mit Adresslatch) als auch zum Ansprechen. Ansonsten bieten sich zum Datenloggen einschlägige Speicherkarten an, z.B. MMC/SD (relativ einfach), SM (geht auch noch, braucht aber mehr Pins) oder CF (braucht auch mehr Pins). Wenn dir das nicht reicht, weil es dir zu langsam oder zu wenig Speicher ist, dann solltest du überdenken, ob der AVR für deine Zwecke überhaupt geeignet ist. > Ich will ja das Rad nicht neu erfinden, sondern von den Erfahrungen > der Anderen profitieren. Nunja, "erfinden" muss man das Rad nicht neu, aber es ist sicher kein Schaden, wenn man sich selber Gedanken über die Zusammenhänge macht, bzw. wenn man es wenigstens versteht oder versucht zu verstehen. Der nächste Schritt nach dem erfolgreichen Zusammenbau des ISP-Adapters wäre das Durcharbeiten diverser Tutorials. Links dazu findest du hier auf dieser Seite. Dann solltest du dich um die AVR-internen Features (Timer, ADC...) kümmern, da gibt es verdammt viel zu entdecken. Der Weg zum souveränen Umgang mit externem Speicher ist sehr weit und steinig, du solltest also den letzten Schritt nicht vor dem Ersten machen. Ein "erster Schritt" wäre z.B. das (steuerbare) Blinken einer LED mit einem selbstgeschriebenen Programm unter Nutzung von Timer-Interrupt und Software-entprellten Eingabetasten. ...
Weil du geschrieben hast dass ich endlich den ISP hinbekommen habe. Der ISP war eigentlich von Anfang an in Ordnung. Ich hab mir nur Mikrocontroller bei den Tutoriumsübungen irgendwie beleidigt wodurch diese Strome geflossen sind. Danach habe ich mir bei der Fehlersucherei die Resetleitung abgerissen. Die Tutorials habe ich inzwischen durchgearbeitet und was wichtiger ist verstanden.(Glaube ich jedenfalls.) Inzwischen habe ich es hinbekommen dass der Mikrocontroller mit dem PC über den LPT komunizieren kann. Und dass mir der MC eine externe Spannung anzeigt hab ich mit "Wie sag ich's dem Mikrokontroller" hinbekommen. Das es nicht ganz so einfach ist die Ramriegel anzusteuern ist mir klar. Ich bin aber nicht einer vom Schlag:"Los gehn wirds an." Ich sammle erst so viel Informationen wie's geht und versuche sie zu verstehen. Und da das sicher länger dauern wird, fange ich schon mal damit an bevor ich alle Möglichkeiten des AVR's richtig verstanden habe. Mir ist ein Mikroelektronik-Skriptum einer FH in die Hände gefallen. Dadurch weis ich wie Arbeitsspeicher grundliegend aufgebaut sind, wie sie grundliegend funktionieren und wie sie angesprochen werden. (Leider alles nur theoretisch.) Wie ich leider schmerzvoll erfahren mußte ist zwischen Theorie und Praxis ein gewaltiger Unterschied. Weiters habe ich PC-Ramriegel aller Art herumliegen die ich verwenden will bevor ich für teuer Geld extra Speicher kaufe. Außerdem dürften Ram-Riegel sicher leichter anzusprechen sein als Bios-EEProms. Mir schweben da ein paar Anwendungen für externe Ram vor. Analogwerterfassung für den PC (Billigoszi), Datenaufzeichnung bei Modellautos und Modellflieger, Mikrocontroller basierender Logikanalyser(Der, der nur am PC ohne unterstützende Hardware funtioniert ist zu langsam.),... Mir ist aber klar dass es aber noch einige Zeit dauern wird bis ich diese Ideen verwirklichen kann. Man beschäftigt sich aber mit Mikrocontrollern um etwas zu lernen. Die positive Nebenwirkung ist dass man sich erspart diverse Geräte zu kaufen. mfg Alex
> Wie ich leider schmerzvoll erfahren mußte ist zwischen Theorie und > Praxis ein gewaltiger Unterschied. Das ist wohl wahr. Aber das haben viele Theoretiker noch nicht bemerkt... ;-) > Weiters habe ich PC-Ramriegel aller Art herumliegen die ich > verwenden will bevor ich für teuer Geld extra Speicher kaufe. Die haben wir alle herumliegen bzw. bereits entsorgt. Deine geplanten Anwendungen sind ja ok. Ich hoffe, dass es dir gelingt. Ich bin anfangs auch voller Enthusiasmus an die Sache herangegangen, habe aber schnell mitbekommen, dass Vieles eben doch nicht so einfach ist, wie es anfangs scheint. Bit- & Bytebruch... - und viel Erfolg... ...HanneS...
"Außerdem dürften Ram-Riegel sicher leichter anzusprechen sein als Bios-EEProms." Irrtum ! EEPROMs sind ganz leicht anzusprechen, genau wie SRAMs. Lesen geht ganz normal und beim Schreiben muß man nur warten, bis es beendet ist (Bit 6 auf Toggle testen oder Bit 7 auf Komplement). Und bei Flash muß auch nur ein Full-Erase oder Page-Erase Kommando vor dem Schreiben abgeschickt werden. Bzw. manche Flash müssen immer eine komplette Page schreiben (kein Byte Write Support). Peter
@HanneS Weil du vorher geschrieben hast dass ich erst das Tastenentprellen lernen muß. Wie machst du's denn? Bei 1 bis 2 "Tasten" verwende ich Wechsler-Taster bzw. Schalter die ich über RS-FF Schaltungen an den MC gehängt werden. Wenn's mehr taster werden verwende ich 0815 Mikrotaster die ich aus nem alten Videorekorder rausgehohlt habe und entprelle sie Softwaremäßig. Dabei fasse ich immer 8 Taster zu einem Flag-Byte zusammen. Sobalt eine Taste als gedrückt erkannt wird, wird das dazugehöhrende Flag gesetzt. Und solange dieses Flag gesetzt ist wird die Taste ignoriert. Die Rücksetzung der Flag-Bytes erfolgt mit dem Timer0 im 100ms Intervall. Außer dass die Timer für andere Anweendungen benötigt werden. Da werden die Bytes mit einem anderen Zeitintervall zurückgesetzt solange der nicht zu kurz ist. (<20ms) Muß man eigentlich bei den Ram-Riegel die Platienen ätzen/fräsen oder reicht da noch die 0815 Bastlerverdrahtung mit Klingeldraht und Lochrasterplatienen? @peter Du machst mich neugierig. Weist du wo ich unterlagen herbekomme die beschreiben wie ich die Bios-EEProms beschreiben kann? Das nur mal interessehalber, denn soviel ich weis kann man in Bios-EEProms nur ein paar 100KB schreiben. mfg Alex
Zum Tastenentprellen... Anfangs fragte ich Taster in einem sowiso vorhandenem Timer-Interrupt ab. Die Taster teilten sich die Ports (des AT90S1200) mit einer dreistelligen 7-Segment-Ziffernanzeige (durch Dioden entkoppelt, mit gesteuertem Common-Pin)). Die Abfrage war also Teil der Multiplex-Routine. Es funktionierte auch, man kann damit leben, ist jedenfalls nicht erkennbar schlechter als viele Fernbedienungen oder andere Industrielösungen. Nachdem ich dann mal Peter Danneggers Entprellroutinen analysiert (und verstanden!) hatte, nutze ich nur noch diese Algorithmen. Hierbei wird/werden der/die Taster auch im Timer-Int abgefragt, aber eine Änderung wird erst übernommen, wenn sie 4 Abfragen hintereinander stabil angelegen hat. Die Routine stellt dem Hauptprogramm je Taste 2 Flags zur Verfügung. Das Eine zeigt den entprellten Tastenzustand an, das Andere einen Tastendruck (Übergang von losgelassen auf betätigt), auf den noch nicht reagiert wurde. Und das bei nur (glaube) 13 Takten (habe jetzt keine Lust zum Nachzählen) CPU-Belastung in der Timer-ISR, die nebenbei noch andere Arbeiten erledigt. Näheres dazu findest du in der Artikelsammlung mit dem Suchwort "entprellung". Übrigens: Timer kann man so einsetzen, dass sie mehrere Aufgaben erledigen können. ...
Reicht eventuell die Übertragungsgeschwindigkeit von USB, um Dein Datenaufkommen zu bewältigen? Dann könntest Du auf deinen Speicher verzichten. Schau Dir doch mal www.ftdichip.com an. Wenn Du den AVR über LPT schon mit Deinem Rechner reden lassen kannst, ist der FT245BM eventuell das Richtige für Dich. Sebastian
gibbet denn keine fertigen controller für dram? das wär ja mal ne aufgabe für die ganzen assembler-leute hier im forum, grins... Habe auch zwei alte 486 MOBOs geschlachtet. da habe ich ein paar 32k sram bausteine drauf gehabt, den ich auch benutzen werde. aber ein dram mit controller, wo man sich keine sorgen machen brauch über timing etc das wär schon geil
"Weist du wo ich unterlagen herbekomme die beschreiben wie ich die Bios-EEProms beschreiben kann?" Es gibt zwischen den Typen kleine Unterschiede (Pagegröße usw.), man muß also immer das konkrete Datenblatt lesen. Die Kommandos (Erase) bestehen daraus, daß einfach bestimmte Daten an bestimmte Adressen zu schreiben sind. Peter
das sind normal alles standard typen. findest du mit google immer was...
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.