Forum: Mikrocontroller und Digitale Elektronik kleinster AVR mit ADC u. UART


von A. Arndt (Gast)


Lesenswert?

Moin zusammen,

ist der "kleinste" AVR mit ADC und UART wirklich der Mega48 ?

Beim Tiny25 fehlt der UART , beim Tiny2313 die ADCs ...

Gruss
A. Arndt

von Peter D. (peda)


Lesenswert?

Und wo ist das Problem?

Nimm ne SW-UART, dann sparste auch noch den MAX232 ein.

Nur Senden geht in SW bis etwa 460800 Baud.


Peter

von Siegfried (Gast)


Lesenswert?

... sparste auch noch den MAX232 ein ...

Was haben SW-UART und HW-UART damit zu tun?

von Benedikt K. (benedikt)


Lesenswert?

Siegfried wrote:
> ... sparste auch noch den MAX232 ein ...
>
> Was haben SW-UART und HW-UART damit zu tun?

Man kann beim SW UART das Signal invertieren, so dass es direkt als 
RS232 Signal funktioniert.


@ A. Arndt

Ja, es ist wirklich der mega48.
Aber der hat wiederum keinen freien 8bit Port wenn man einen UART 
braucht.

von Siegfried (Gast)


Lesenswert?

@Benedikt K. (benedikt)

Die RS232-Pegel sind ab +/- 3  Volt definiert. Es kann funktionieren. 
Muß aber nicht.

von Peter D. (peda)


Lesenswert?

Siegfried wrote:
> Die RS232-Pegel sind ab +/- 3  Volt definiert. Es kann funktionieren.

Ein MAX232-Receiver hat z.B. gültige Eingangspegel von +0,8V/+2,4V.


> Muß aber nicht.

Da muß man aber schon uralte RS-232 Chips aus der Mottenkiste ausgraben.


Empfängerseitig setzt man nen Widerstand und 2 Dioden vor den AVR, um 
die Pegel zu begrenzen oder nur den Widerstand und läßt die internen 
Schutzdioden begrenzen.


Peter

von Andreas R. (blackpuma)


Lesenswert?

Ich verstehe noch immer nicht wieso ich mir bei einem SW-UART den MAX232 
sparen kann.

Wenn der mit dem PC reden will dann muss der MAX232 sein!

von Siegfried (Gast)


Lesenswert?

@Peter Dannegger (peda)

Der Hinweis auf die Mottenkiste ist nicht hilfreich. Bei mir im Bestand 
gibt es eine Reihe von Geräten, mit denen es ohne MAX232 o. ä. auf der 
Gegenseite nicht funktioniert.

Es bleibt dabei: die Schaltung kann - muß aber nicht - funktionieren.

von Lluki (Gast)


Lesenswert?

Man kann mit dem USI (universal serial interface) des Attiny25 ein Uart 
bauen.
http://www.atmel.ru/Disks/AVR%20Technical%20Library/appnotes/pdf_avr/AVR307.pdf

von A. Arndt (Gast)


Lesenswert?

Hallo,

ich brauche aber kein RS232, nur Uart.

Also, ich habe in meinem Regenwassertank einen 
Reed-Magnet-Füllstandsensor.

Installationsrohr mit Reedkontakten alle 5cm vergossen und ein Schwimmer 
mit vielen Magneten drumrum.

Je nach Höhe (Füllstand) wird ein Sensor betätigt und über eine 
Widerstanddekade eine Spannung auf den AD-Port gegeben.

Diesen AD-Wert möchte über den UART an einen 2. AVR senden (ca. 10m 
entfernt), der diesen Wert dann anzeigt und weitere Operation 
durchführt,  z.B. Min.-Maxwert Alarm usw.

Der 1. Mess-AVR sitzt nun im Tank in einem IP-67-Gehäuse, aber da ist 
nicht viel Platz.

Software-UART wäre natürlich eine Alternative, muss nur zuverlässig 
sein, sonst evtl. Pumpe an o.ä.

Gruss
A. Arndt

von Peter D. (peda)


Lesenswert?

A. Arndt wrote:

> Software-UART wäre natürlich eine Alternative, muss nur zuverlässig
> sein, sonst evtl. Pumpe an o.ä.

Generell muß eine zuverlässige UART immer mit Quarz betrieben werden.

Die SW-UART ist exakt 100% so zuverlässig, wie ne HW-UART.

Allerdings können ja Störungen auf die Leitung einkoppeln, es empfielt 
sich daher ein Protokoll zu verwenden.

Und der ADC sollte auch mehrmals ausgelesen werden, ehe man dem Wert 
vertraut.


Peter

von Falk B. (falk)


Lesenswert?

@A. Arndt (Gast)


>Installationsrohr mit Reedkontakten alle 5cm vergossen und ein Schwimmer
>mit vielen Magneten drumrum.

>Je nach Höhe (Füllstand) wird ein Sensor betätigt und über eine
>Widerstanddekade eine Spannung auf den AD-Port gegeben.

Das kann man auch ohne ADC auslesen. Entweder per IOs, ggf, mit 
Schieberegister aufbohren, oder per Low COst ADC, siehe Atmel Appliction 
Notes.

>Diesen AD-Wert möchte über den UART an einen 2. AVR senden (ca. 10m
>entfernt), der diesen Wert dann anzeigt und weitere Operation
>durchführt,  z.B. Min.-Maxwert Alarm usw.

Das kann man problemlos nahezu beliebig langsam laufen lassen, z.B. mit 
300 Baud und weniger. Und wenn es ganz einfach und dennoch solide sein 
dsol, dann codiert man die Bits über die Pulsbreite.

10ms ->0
20ms ->1

Pulsperiode 40ms oder mehr

Damit kann man einen Soft-UART mit internem RC-Oszillator betreiben ud 
es ist dennoch sicher.

>Der 1. Mess-AVR sitzt nun im Tank in einem IP-67-Gehäuse, aber da ist
>nicht viel Platz.

Für die Methode oben reicht ein 8-Piner ohne Quarz.

>Software-UART wäre natürlich eine Alternative, muss nur zuverlässig
>sein, sonst evtl. Pumpe an o.ä.

Trenne mal Soft-UART von MAX232. Das sind verschiedene Ebenen.
Bei der Länge und geschwindigkeit sollte 5V CMOS reichen, man braucht 
kein RS232 mit +/-12V.

MFG
Falk

von Falk B. (falk)


Lesenswert?

@Peter Dannegger (peda)

>Generell muß eine zuverlässige UART immer mit Quarz betrieben werden.

Wohl wahr ;-)

>Die SW-UART ist exakt 100% so zuverlässig, wie ne HW-UART.

Nöö, bestenfalls 99,9%. Denn ein Hardware-UART ist auf den Takt genau, 
egal was pasiert. Ein Soft-UART muss sich mit Interrupts und derem 
Timing rumschlagen. Allerdings reicht es bei richtiger Umsetzung für die 
Ansprüche von RS232.

MFG
Falk

von Peter D. (peda)


Lesenswert?

Falk Brunner wrote:

> Nöö, bestenfalls 99,9%. Denn ein Hardware-UART ist auf den Takt genau,
> egal was pasiert. Ein Soft-UART muss sich mit Interrupts und derem
> Timing rumschlagen.

Da es hier nur ums Senden geht, sinds doch exakt 100%.
Das geht nämlich auch auf den Takt genau mit den OCxx-Ausgängen.
Erst wenn der Interrupt länger als eine volle Bitzeit verzögert wird, 
krachts.


Peter

P.S.:
Ich würde auch eine bitsynchronisierende Übertragung (Pulsdauer, 
Manchester usw.) nehmen, kann man dann aber nicht mehr mit der UART 
auswerten.
Spart aber den Quarz ein.

von Freizeitbastler (Gast)


Lesenswert?

@peda: Hier ist man nach Tests mit einem Keramikresonator statt Quarz 
zufrieden:

http://www.spiffie.org/kits/iduino/

Schöne Grüße

von Falk B. (falk)


Lesenswert?

@ Freizeitbastler (Gast)

>@peda: Hier ist man nach Tests mit einem Keramikresonator statt Quarz
>zufrieden:

Sicher, die haben 0,5..1% Toleranz, für RS232 ausreichend.

MFG
Falk

von Bensch (Gast)


Lesenswert?

Super, diese Klimmzüge, um mein paar Cent zu sparen.

Wenn ich 10.00/Jahr davon brauche, überleg ich mir's vielleicht auch. 
Aber für ein Einzelstück?

von Gast (Gast)


Lesenswert?

>Aber für ein Einzelstück?

Nestbeschmutzer :-)
Immerhin melden sich die bekannten Schwatzbacken mit ihren klugen 
99,9%Ratschlägen.

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.