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
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
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
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"? :)
> 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.
@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
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
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.