Atmega162 + SRAM

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 06 10 2024  23:23:28      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Atmega162 + SRAM

    







BID = 447859

LeoLöwe reloaded

Schreibmaschine



Beiträge: 1407
Wohnort: Meine
Zur Homepage von LeoLöwe reloaded ICQ Status  
 

  


Moin, heute gehts an ein weiteres Projekt...

Dieses mal ist eine kleine Erklärung nötig, denke ich mal.
Es soll, kurz gesagt, eine Schaltung gebastelt werden die über RS232 vom PC einen Text empfängt und diesen auf einem LCD (4x20) ausgibt.
Der Controller bekommt vom PC zwei Texte übermittelt, einmal eine Liste mit mehreren Wörten, und zwei Zeilen reinen Text.
Die Liste hat durchschnittlich ca. 20 Einträge, im Extremfall kann es aber auch an die 200 Einträge ran kommen. Die einzelnen Einträge sollen durch das Display scrollen. Ein Eintrag besteht aus ca. 10 - 20 Buchstaben.
Die zwei Zeilen Text bestehen einmal aus einer max. 20 Zeichen langen Überschrift und einem bis zu 40 Zeichen langem Text, der unter der Überschrift drunter lang scrollen soll.

Ein erster Prototyp mit einem Atmega8 existiert bereits, allerdings reicht der Speicher von dem Kleinen nicht annähernd aus.
Nach ein paar Stunden google-Suche bin ich dann auf den 8515 Aufmerksam geworden, an den man externen SRAM anschließen kann. Der Mega162 verfügt ebenfalls über alle nötigen Funktionen, hat aber mehr Flash-Speicher.

Datenblatt:
http://www.atmel.com/dyn/resources/prod_documents/doc2513.pdf

Nicht wirklich ergiebig waren die Informationen über geeignete SRAM-Bausteine bzw. deren Anschluss...

Deswegen nochmal in Kurzform:
-Ist dieser SRAM
http://www.reichelt.de/?SID=25VctA6.....M.pdf
+ die Angehängte Schaltung an einem Atmega162 @ 8MHz so funktionsfähig?

-Würde das ganze auch noch bei 16MHz funktionieren? Laut Datenblatt soll der HC573 Probleme bereiten. 8MHz müssten aber auch ausreichend sein.

-Wenn der Atmega162 korrekt eingestellt ist, sollte der externe SRAM praktisch an den internen "angehängt" werden... Für das Programm (übrigens in C geschrieben) sollte es also kein Problem darstellen, auf den externen RAM genauso zuzugreifen wie auf den internen, bzw. ich als Programmierer muss mich darum nicht kümmern. Stimmt das?

-Kann man den µC ISP programmieren? JTAG habe ich leider nicht...


Edit: Fast vergessen: Die Schaltung soll eigentlich nur zeigen, wie ich mir den Anschluss des SRAMS zusammen gereimt habe. Das der µC noch einen Quartz bekommt und die Anschlüsse für das LCD nicht alle kurzgeschlossen sind versteht sich hoffentlich von selbst


Das war dann eigentlich auch schon alles

Wie immer vielen Dank für die (hoffentlich kommenden) Antworten!




_________________
We now return you to your regularly scheduled nonsense.

[ Diese Nachricht wurde geändert von: LeoLöwe reloaded am  4 Aug 2007  2:29 ]

[ Diese Nachricht wurde geändert von: LeoLöwe reloaded am  4 Aug 2007  2:32 ]

BID = 447860

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

 

  

"Moin",

So, kurz vomr Insbettgehen:
Ich verstehe das also noch richtig, dass du die gesamten Informationen auf einen Rutsch in den µC bzw. in den Arbeitsspeicher laden willst? Würd ich nicht machen, wenn der PC dann läuft, wenn auch der µC die Daten auf dem Display anzeigt.

Ich würde ein einfaches Protokoll entwerfen, was die Daten permanent zwischen PC und µC übermittelt. Du wirst vermutlich nicht mal eine Verzögerung sehen, wenn die Daten der UART kommen und direkt ausgegeben werden. Somit ersparst du eine Menge Arbeitsspeicher, vorallem aber eine große Hardware.

Wenn dem nicht so ist, dann muss der RAM größer werden und du musst Datenblätter wälzen .

PS: Im entsprechenden Datenblatt steht zu 100% drin, ob man den über ISP programmieren kann, es könnte auch einfach nur serial downloading etc. heißen, wichtig ist, dass es über die SPI-Schnittstelle geht.

_________________

BID = 447861

LeoLöwe reloaded

Schreibmaschine



Beiträge: 1407
Wohnort: Meine
Zur Homepage von LeoLöwe reloaded ICQ Status  

"Serial Programming" bzw. SPI habe ich soeben gefunden = kann per ISP programmiert werden

Die Einträge sollten einzeln übertragen werden. Es sollte auch möglich sein, einzelne Einträge wieder aus dem RAM zu löschen, wenn der PC es wünscht. Beim Programmstart kommen so 10-20 Einträge der Reihe nach in den µC, danach wird sich das irgendwie einpendeln. (es werden auch öfters Einträge gelöscht)

Das mit dem Protokoll ist so eine Sache... Eigentlich soll sich der µC um die Anzeige der Liste kümmern und das Programm nur bei Bedarf eine Änderung melden.
Es wäre halt so recht elegant gelößt, weil das Programm an sich schon recht viel zu tun hat.

Wenn sich das allerdings mit vertretbarem Aufwand nicht mit einem µC realisieren lässt, muss ich wohl davon Abstand nehmen...

_________________
We now return you to your regularly scheduled nonsense.

BID = 447862

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

Viele viele Leitungen.

Zitat :
Wenn der Atmega162 korrekt eingestellt ist, sollte der externe SRAM praktisch an den internen "angehängt" werden... Für das Programm (übrigens in C geschrieben) sollte es also kein Problem darstellen, auf den externen RAM genauso zuzugreifen wie auf den internen,
Würde ich nicht verlangen.
Wahrscheinlich hast du mehr Freiheiten hinsichtlich des Prozessors, wenn du z.B. die Daten, deren Inhalt vermutlich uninteressant ist, im externen RAM aufhebst und die Verwaltung derer wie Pointer, Bitmaps etc. vorzugsweise im Speicher des Prozessors machst.
Ich habe auf diese Art mal ein 256k*1 DRAM mit insgesamt nur 5 oder 6 Pins an einen PIC16C84 (der hat nur 36 Bytes RAM und 12 IO-Pins) angebunden.
Der DRAM diente als FIFO zwischen einem hochauflösenden ADC und einem Drucker, der mit den nach PCL konvertierten Grafikdaten gefüttert wurde. Als zusätzliche Hardware waren nur zwei 8-Bit Schieberegister erforderlich.
Auf diese Art konnte ich mehrere DINA4-Seiten 24Bit-Messwerte mit 300dpi zwischenspeichern. Das alles und noch ein bischen mehr schaffte der in Assembler programmierte PIC mit 1MIPS locker.
Ein paar Programmiertricks, die das System an kritischen Stellen wohl bestimmt um den Faktor 10 gegenüber plumper Anfängerprogrammierung beschleunigt haben, waren allerdings auch dabei.

Die LCD Controller sind aber gewöhnlich so lahm, daß deren Datenhunger eher geringer als der eines Druckers ist.





_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

[ Diese Nachricht wurde geändert von: perl am  4 Aug 2007  4:19 ]

BID = 447873

Benedikt

Inventar

Beiträge: 6241

@perl
Respekt, nicht schlecht.

@LeoLöwe reloaded
Ein HC573 funktioniert auch bei 16MHz noch. Allerdings muss man dann die Wait States einschalten, wenn man keine Cache SRAMs verwendet. Du musst also das SRW10 oder SRW11 Bit setzen (je nachdem ob du ein 55ns oder 70ns SRAM hast).

Je nach Compiler geht es unterschiedlich wie man den SRAM aktiviert, ich würde die Adressen aber auch per Hand verwalten.

Es wird aber nicht ganz einfach, da die meisten Compiler es nicht so ganz unterstützen, dass man Variablen und Arrays an feste Adressen legt.
Ich würde es daher mit einem konstanten Pointer machen:

LISTE * const liste = (LISTE * const) 1280;

1280 ist die Anfangsadresse des externen RAMs, LISTE ist der Datentyp von deiner Liste, also in etwa sowas:

typedef struct {
char ueberschrift[22];
char text[42];
} LISTE;

Dann kannst du über
liste[i].ueberschrift bzw. liste[i].text auf die einzelnen Texte zugreifen.


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 9 Beiträge verfasst
© x sparkkelsputz        Besucher : 182137025   Heute : 5399    Gestern : 5445    Online : 793        6.10.2024    23:23
6 Besucher in den letzten 60 Sekunden        alle 10.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0265889167786