Forum: Mikrocontroller und Digitale Elektronik welchen AVR?


von Michael (Gast)


Lesenswert?

Hallo!

Ich moechte mir mit einem Atmel-Chip ein LCD-Display ansteuern.
Das Ding soll mir verschiedene Temperatueren auslesen und am Display 
anzeigen ...
Vielleicht will ich noch uebern Parallel-Port oder Serial-Port den Compi 
anschliessen, so dass dieser auch Daten am Display ausgeben kann.

Die Frage ist nur, welchen Atmel soll ich nehmen? Ich brauche auf 
jedenfall einen mit mehreren AD-Wandlern. Ausserdem brauch ich mehrere 
Anschluesse ...
Welcher ist die beste Wahl ?

Nochwas: Funktionieren die AD-Wandler eigentlich nur ein eine Richtung 
oder kann ich da auch eine bestimmte Spannung ausgeben?

Danke!
Michael

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo Michael,

> Ich moechte mir mit einem Atmel-Chip ein LCD-Display ansteuern.
> Das Ding soll mir verschiedene Temperatueren auslesen und am
> Display anzeigen ...
> Vielleicht will ich noch uebern Parallel-Port oder
> Serial-Port den Compi anschliessen, so dass dieser auch Daten
> am Display ausgeben kann.
>
> Die Frage ist nur, welchen Atmel soll ich nehmen? Ich brauche
> auf jedenfall einen mit mehreren AD-Wandlern. Ausserdem
> brauch ich mehrere Anschluesse ...
> Welcher ist die beste Wahl ?

Dafür sind der AT90S2333 und der AT90S4433 sicher am besten geeignet 
(mit 6 AD-Wandlern). Dann bleiben auch noch genügend IO-Pins für das LCD 
übrig. Hier hast du mal eine Übersicht über alle AVRs:
<img src="http://www.atmel.com/atmel/products/images/prod199.gif"; 
alt="AVR Übersicht">

> Nochwas: Funktionieren die AD-Wandler eigentlich nur ein eine
> Richtung oder kann ich da auch eine bestimmte Spannung
> ausgeben?

Du kannst keine Spannung ausgeben, das geht nur per PWM (siehe anderen 
Beitrag im Forum!). Die meisten AVRs haben 2 PWM Kanäle, über die man 
z.B. Motoren ansteuern kann.

MfG
Andreas

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich hab hier mal ein kleines Beispielprogramm gemacht. Es gibt den am 2. 
Kanal des AD-Wandlers eines AT90S4433 gemessenen Wert über die serielle 
Schnittstelle an den PC aus:
<hr>

.include "include/4433def.inc"

.def temp = r16
.def temp2 = r17

;Stackpointer initialisieren
ldi temp, RAMEND-1
out SP, temp

;Port B auf Ausgang schalten
ldi temp, 0xFF
out DDRB, temp

;UART initialisieren
sbi             UCSRB,TXEN                ;UART transmitter aktivieren
ldi             r16,4000000/(9600*16)-1   ;Baudrate berechnen
out             UBRR,r16                  ;und einstellen

;ADC initialisieren
;ADEN (ADC Enable) = 1
;ADSC (ADC Start Conversion) = 1
;ADFR (ADC Free Run Select) = 1
ldi temp, ((1<<ADEN)|(1<<ADSC)|(1<<ADFR))+7
out ADCSR, temp

;Kanal auswählen
ldi temp, 1
out ADMUX, temp

;"new page" senden
ldi temp, 12
rcall serout

loop:

in temp, ADCL    ;ADC einlesen
in temp2, ADCH

push temp        ;temp auf dem Stack sichern

swap temp        ;High-Nibble löschen
andi temp, 0x0F  ;High- und Low-Nibble vertauschen
rcall hexascii
rcall serout

pop temp         ;temp vom Stack holen

andi temp, 0x0F  ;High-Nibble löschen
rcall hexascii
rcall serout

;"carriage return" senden
ldi temp, 13
rcall serout

rjmp loop

serout:

sbis UCSRA,UDRE  ;Warten, bis UDR leer
rjmp serout
out UDR, temp
ret

;Umwandlung in ASCII
hexascii:
cpi temp, 10
brsh ha1
subi temp, -48
ret
ha1:
subi temp, -55
ret

von Daniel Sevenig (Gast)


Lesenswert?

Hi!

ich stecke momentan in der gleichen lage wie michael: bin grade
uC-einsteiger (habe bloss ein paar sachen mit der c-control 1 gemacht)
und blicke durch die modellpalette nicht ganz durch :-)

meine anforderungen an den uC sind übrigens ganz ähnlich. genug analoge
eingänge und ein HD44780-display soll angeschlossen werden können!

andreas:
wegen deiner empfehlung, dem AT90S4433, habe ich mal auf avrfreaks.net
nachgeguckt. auf dieser seite
http://www.avrfreaks.net/Devices/devices.php?action=1&devid=34 steht
dann jedoch: "This device is a predecessor to the ATmega8. Not only
does the ATmega8 give you a lot more features, but it also cost LESS
than the AT90S4433. "

gut. habe dann beim ATmega8 nachgesehen und klar, ist halt echt dicker
:-)

gibt es denn irgendwelche nachteile einen grösseren zu kaufen (in dem
fall halt den ATmega8 anstatt dem AT90S4433)? ist die programmierung
vielleicht komplizierter?

im übrigen möchte ich den controller in C programmieren. sollte ich
deswegen vielleicht auch einen speziellen uC wählen, der besser von
einem compiler unterstützt wird?

mfg,
daniel

ps: was heisst eigentlich "Availability: EOL issued"? :)

von Joerg Wunsch (Gast)


Lesenswert?

> was heisst eigentlich "Availability: EOL issued"?

EOL - end of life

Nein, es gibt keine Nachteile, den ATmega8 zu nehmen, im Gegenteil.
Außer mehr Flash, einem Hardwaremultiplizierer, dem geringeren Preis,
... hast Du auch noch eine bessere EMV-Festigkeit.

In C tun sie alle gleichermaßen gut, wobei natürlich der ATmega mit
dem Hardwaremulitplizierer dahingehend noch gut macht, daß man dadurch
oft genug weniger Codegröße generiert.

von Klaus Mehrle (Gast)


Lesenswert?

@Andreas Schwarz

>Dafür sind der AT90S2333 und der AT90S4433 sicher am besten geeignet
(mit 6 AD-Wandlern).

Soviel ich weiss nur 1 AD Wandler der über einen Multiplexer an 6
Portpins angeschlossen ist.

mfg

Klaus Mehrle

von hebel23 (Gast)


Lesenswert?

Hallo Joerg,

da Du die EMV-Festigkeit der Controller ansprichst. Gibt es da
irgendwelche verlässlichen Prüfberichte, die man im Rahmen einer
Qualitätssicherung verwenden kann. Ich habe bei einer Suche bei Atmel
nichts dergleichen gefunden und die Datenblätter schweigen sich
diesbezüglich auch aus.

Viele Grüße
Andreas

von Peter D. (peda)


Lesenswert?

@Andreas,

rate mal, wovon die ganzen EMV-Prüflabors leben.

Man kann nie ein einzelnes Bauelement spezifizieren, sondern immer nur
ein komplettes Gerät.

Alles, aber auch wirklich alles hat nämlich Einfluß auf die
EMV-Eigenschaften: die Schaltung, die Platine, das Gehäuse, die
Stromversorgung, die Steckverbinder und Anschlußkabel usw. selbst die
Software spielt eine große Rolle dabei.


Peter

von hebel23 (Gast)


Lesenswert?

Hallo Peter,

stimmt, das ist schon ein weites Feld - vor allem wirds schnell teuer.
Mich interessiert aber im Moment eigentlich auch weniger die
Abstrahlung des Systems (das kommt später), sondern mehr die
Spannungsfestigkeit des Controllers gegenüber elektrischen Entladungen.
Aber wahrscheinlich existiert eine solche Spannungsfestigkeit bei den
Controllern schlicht und einfach nicht und man muss sich selbst um
einen aktiven Schutz (Varistoren etc.) kümmern.

Viele Grüße
Andreas

PS: Sorry, ich hab` den Thread etwas vom Thema abgebracht...

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
Noch kein Account? Hier anmelden.