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
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
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.
@Benedikt K. (benedikt) Die RS232-Pegel sind ab +/- 3 Volt definiert. Es kann funktionieren. Muß aber nicht.
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
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!
@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.
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
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
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
@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
@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
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.
@peda: Hier ist man nach Tests mit einem Keramikresonator statt Quarz zufrieden: http://www.spiffie.org/kits/iduino/ Schöne Grüße
@ 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
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?
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.