kleinster AVR mit ADC u. UART

#952946
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.
#952978
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
Gast #952995
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.
Gast #953008
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
#953036
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
#953066
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
#953071
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
#953117
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren