PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Beratung zur Konzeption mit ATmega



vajk
11.09.2005, 22:30
Hallo,
meine Erfahrungen mit uCs sind lange her ...
.. doch jetzt hab ich ein Projekt fürs Hobby mit folgenden Ideen und zu meinem Konzept ein "paar" Fragen ...

Also stelle ich mal dar, was ich möchte

I. Bedienteilbaugruppe
- 2 Stück Drehgeber (2 x Interrupts (irq auf beide Flanken) plus zwei Ports zur Richtungserkennung und Drucktaste)
- mehrere Tasten (max. 8 I/Os)
- LCD (2 od. 4 Z x 16 Z) - wohl am besten via I2C
- 1 UART als RS232 für Kommunikation mit externem Gerät via TTL und MAX232
- 1 UART als RS232 zur Kommunikation mit PC via MAX232
- 1 UART als RS485 zur Kommunikation mit Steuerungsbaugruppe
- ein zus. Wertespeicher für 4000 longwerte = mind. 16 kByte - wohl auch via I2C
- ISP

II. Steuerungsbaugruppe
- Ansteuerung zweier getrennter Schrittmotoren via 297/298 (6 I/O)
- 1 UART als RS485 zur Kommunikation mit Bedienteilbaugruppe
- 1 UART als RS232 zur Kommunikation mit PC via MAX232
- ISP
- max. 8 I/Os für LEDs


Und jetzt meine Fragen
- welche uCs nehme ich für I. und II ? Wegen der 2 UARTS wohl einen mega128 ?
Oder kann man beliebige PINS zur seriellen Kommunikation nutzen ?
- ist es möglich drei Geräte an eine RS232 zu hängen - also externes Gerät + Bedienteil + PC und sowohl Bdt. als auch PC kann mit ext. "sprechen" ... oder geht das via RS232 nicht.
Wenn es nicht geht, könnte ich zwei RS232 zur Durchleitung der Kommunikation nutzen ?
- Was für ein Speicher eignet sich zur Wertespeicherung - diese ändern sich NICHT laufend, aber ab und zu ... eeprom via I2C ?

- Wo finde ich Beispielcode in C für meine einzelnen Teilbereiche
oder
- Wo finde ich eine gute (deutsche) Literatur, die die Programmierung meines Vorhabens abdeckt ?

Ich hoffe, ich habe mein Konzept ausreichend beschrieben ...

und würde mich sehr über Kommentare, Bemerkunden, Informationen (oder Fragen) freuen !!!

Lieben Dank im voraus,
Vajk

Marco78
11.09.2005, 23:18
Ich würde für beides einen Mega8 nehmen. Für's Bedienteil ggf. einen Mega16. Der sollte genug I/Os haben und was auch wichtig ist, besonders für die Bedienbaugruppe, er hat etwas mehr Flash als die Tinys.
UART kannst du auch per Software machen. Also reicht dafür auch ein Mega8.
RS232 kannst du durchschleifen. Ich hab's selbst noch nicht gemacht/probiert, aber schon öfters davon hier gelesen. Es hat keiner gesagt, das es nicht geht.
Zur Not kannst du ja immer noch Software UART benutzen um die Daten weiterzuleiten.

EEPROM mit IIC wäre wohl das günstigste vom Aufwand her.

Warum ein LCD mit IIC? Sind die günstiger als 'normale'? Du kannst ein LCD auch über den Datenbus ansteuern. Dafür brauchst du nur 6 Leitungen.

Bei C kann ichdir nicht helfen. Ich halte mich an Basic :D


Ich hoffe, ich habe mein Konzept ausreichend beschrieben ...

Ja! Lob und Anerkennung. (Ohne Ironie!) Oft kommt nur eine Fage "Ich will ein Auto bauen, was brauch ich dafür" :D

Warum RS485 zwischen den Baugruppen? Liegen die soweit auseinander? IIC, SPI oder eine andere schon im AVR eingebaute Hardware würde doch auch geh'n?!

vajk
12.09.2005, 12:18
Hallo Marco,
herzlichen Dank für Deine Antwort.

Habe ich das nun richtig verstanden, der Flash ist für den Programmcode, ... drum brauche ich ein zusätzliches eeprom ....
Ah, das wußte ich nicht, das UART auch via Software geht ... Danke.
Bleibt dann nur die Frage, wo kann ich nachlesen wie alles geht ... kannst Du mir da (deutsche) Literatur empfehlen ?

Na das LCD mit I2C damit ich genug Ports behalte :-) Bisher hab ich immer nur LCD -Anschlüsse gesehen, die 10 Ports belegen .... ??

Und den RS485 brauche ich, weil zw. Bedienteil und Steuerteil eben auch 'ne Menge Kabel (10m, 20m, 50m, ... ?) dazwischen sein können.
alles Gute,
Vajk

Marco78
12.09.2005, 12:43
Im µC hast du drei Speicherarten.
1. den Flash. Dort wird das Programm abgelegt. Der Mega8 hat 8kb davon.
2. EEPROM. Die Funktion scheint dir ja bekannt zu sein. Aber ichkenne keinen AVR der 16k davon hat. Also musst du das schon extern machen. Der M8 hätte 0,5k
3. SRAM. Wie beim PC der RAM. Beim M8 1kb.

Das LCD kann im 4bit-Modus betrieben werden. Dann werden nur 6 Leitungen benötigt. Aber dann wird ein M8 schon knapp. Der Mega16 hätte ein paar I/Os mehr.

Wie gesagt, mit C habe ich nichts am Hut. Da kann ich dir leider nicht viel empfehlen. Außer du schaust mal hier im Forum. https://www.roboternetz.de/phpBB2/viewforum.php?f=34

vajk
12.09.2005, 13:40
Danke für die Informationen.
LG Vajk