mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kont. Daten von PC an ATMega16/32 senden


Autor: Rene K. (draconix)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe da ein kleines Projekt in Planung und hoffe ihr könnt mir ein 
wenig weiterhelfen. Ich möchte Daten von einem PC an den Atmega senden 
(Jeweils 2 Dec Werte zwischen 0 und 8) aber in einem Intervall von ca. 
40ms. Ist dies überhaupt möglich via RS232? Oder was eignet sich dafür 
am besten?

Die Daten sollen dann im Atmega verarbeitet werden und dann jeweils die 
Anzahl der LED's eingeschaltet werden. Sprich: Wert vom PC ist 6 - Am 
Atmega sollen 6 LED's leuchten.

Hier mal der der Schaltplan... in meinem beschränkten Elektrotechnischen 
Verständniss erstellt :D Wer fehler findet, bitte melden und auch den 
Grund warum dies verkehrt ist, möchte ja auch was lernen :D

Vielen Dank für eure Hilfe und die Rücksicht um einen absoluten Newfag 
:D

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich möchte Daten von einem PC an den Atmega senden
> (Jeweils 2 Dec Werte zwischen 0 und 8) aber in einem Intervall
> von ca. 40ms. Ist dies überhaupt möglich via RS232? Oder was eignet
> sich dafür am besten?

Rechnen wir mal nach: 2 Werte 0..8, das passt in ein Byte. Nehmen wir 
an, Du nimmst RS232 bei 8n1, dann müsstest du alle 40ms ein Byte 
übertragen, oder anders ausgerückt 25 Bytes pro Sekunde. Bei 8n1 werden 
daraus 250 Bit pro Sekunde - das schafft ein normales RS232 locker.

Aaber: ob Du das Timing von 40ms gut hinbekommst, das ist eine ganz 
andere Frage. Abhängig davon, wie genau das sein muss, ist von 
'Echtzeitbetriebssystem obligat' bis 'geht auch USB-RS232-Wandler 
problemlos' alles drin.

HTH

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ganz genau kommt es nicht auf die 40ms an, wenn es ein Input-Lag von 
10-30ms gibt ist dies nicht so wild. Sie werden halt in ungefähr dieser 
Zeit vom Rechner gesendet, sollte der Atmega oder die RS232 mal ein 
Datenpaket verschlucken ist dies auch nicht so wild.

Vielen Dank für dein Rechenbeispiel!

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann ist das eine sehr luschige anforderung für die rs232... bei 
115kbaud gehen da locker 10kbyte/s durch.

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann bin ich ja beruhigt :D

Kann mir noch jemand was zu dem Schaltplan sagen? Explizit zum MAX232?!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Du bist etwas knausrig mit Kondensatoren. Die Beschaltung des Quarzes 
ist total falsch. An AVCC gehört auch noch ein C nach Masse.

MfG Spess

Autor: Rene K. (draconix)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... Ist die Beschaltung des Quarzes total falsch oder nur in 
Beziehung auf die C? Hab ihn nun mal mit 22pf C's gegen GND beschaltet.

Für AVCC gegen Masse reicht der eine der sowieso den Plus gegen Masse 
steht nicht aus? Sollte ich dort ebenfalls ein 100nf nehmen?

Mal so am Rande, ist es eigentlich egal welche VDC Werte der Kondensator 
halten kann? (50, 100 VDC....)?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Hmm... Ist die Beschaltung des Quarzes total falsch oder nur in
>Beziehung auf die C? Hab ihn nun mal mit 22pf C's gegen GND beschaltet.

Sieht schon besser aus.

>Für AVCC gegen Masse reicht der eine der sowieso den Plus gegen Masse
>steht nicht aus? Sollte ich dort ebenfalls ein 100nf nehmen?

Gewöhne es dir einfach an: Jeden VCC-Anschluss beschalten und mit 
einem Kondensator abblocken.

>Mal so am Rande, ist es eigentlich egal welche VDC Werte der Kondensator
>halten kann? (50, 100 VDC....)?

Mit welcher Spannung versorgst du deinen AVR?

MfG Spess

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:

> Mit welcher Spannung versorgst du deinen AVR?
>
> MfG Spess

Ja mit 5V DC halt :D Aber ich finde halt den kleinsten 22pf Kondensator 
nur mit 50V DC. Das ist halt noch ein wenig verwirrend für mich :D

Und ja, ich werde es mir angewöhnen, danke für diesen Hinweis mit den 
Abblockkondensatoren!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ja mit 5V DC halt :D Aber ich finde halt den kleinsten 22pf Kondensator
>nur mit 50V DC. Das ist halt noch ein wenig verwirrend für mich :D

Wenn du genügend Geld hast, findest du vielleicht eine Firma, die dir 
Kondensatoren bauen, die nur 5V aushalten. Ansonsten bist du mit dem, 
was du kaufen kannst bestens bedient.

MfG Spess

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Sprich: Es ist völlig egal welche Spannung ich nehme... Mensch ich 
brauche mal nen Buch über Kondensatoren und deren Arbeitsweisen :D

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Also Sprich: Es ist völlig egal welche Spannung ich nehme...

Na ja, ein 5kV-Kondensator ist meist etwas grösser als ein 
50V-Kondensator gleicher Kapazität.

MfG Spess

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaub TX/RX an der sub-d9 buchse bzw. am max232 sind vertauscht. TX 
ist soweit ich mich jetzt ein paar tage zurück erinnern kann der pin2.

aref bitte nicht auf Vcc legen sondern mit einem kondensator gegen GND.

der 4-Mhz quarz ist nicht sonderlich gut geeignet.
siehe baudratenquarze.
mit den 4MHz erreicht man keine baudrate genau. besser 3.6864 oder 
7.3728 MHz nehmen, damit erreicht man alles bis 115kbaud (grenze des 
MAX232).

stromversorgung Vcc des max232 fehlt im schaltplan.

bei den widerständen für die LEDs bedenken, daß 100mA pro port nicht 
überschritten werden dürfen. also am besten low-current-LEDs nehmen wenn 
nicht sichergestellt wird daß z.b. immer nur eine leuchtet oder den 
strom auf max. 12mA pro LED begrenzen.

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ben _ schrieb:
> ich glaub TX/RX an der sub-d9 buchse bzw. am max232 sind vertauscht. TX
> ist soweit ich mich jetzt ein paar tage zurück erinnern kann der pin2.

Jep, ich schau mich bei den Specs lieber nochmal durch. Hab gerade an 
diesem Rechner die Schaltung nicht da.

> der 4-Mhz quarz ist nicht sonderlich gut geeignet.
> siehe baudratenquarze.
> mit den 4MHz erreicht man keine baudrate genau. besser 3.6864 oder
> 7.3728 MHz nehmen, damit erreicht man alles bis 115kbaud (grenze des
> MAX232).

Gut gut, was ist eher zu empfehlen ein Osziquart oder reicht ein 
normaler mit 3.6864Mhz?

>
> stromversorgung Vcc des max232 fehlt im schaltplan.
>

Hmm.. hab den Anschlußplan aber so übernommen, er ist doch via Pin2 an 
5V angeschlossen, oder hat er noch einen seperaten VCC Pin?!

> bei den widerständen für die LEDs bedenken, daß 100mA pro port nicht
> überschritten werden dürfen. also am besten low-current-LEDs nehmen wenn
> nicht sichergestellt wird daß z.b. immer nur eine leuchtet oder den
> strom auf max. 12mA pro LED begrenzen.

Hmm... Jep, da werde ich wohl LC LED's nehmen müssen, leider. Diese 
haben nur 2mA, da liege ich dann weit darunter. Es kann sogar passieren 
das alle 16 LED's gleichzeitig leuchten, das ist ja das Problem gerade.

Gibt es eine vernünftige Alternative diese 200mA per uC (Wie bekommt ihr 
eigentlich das Mikron als Buchstabe hine?! :D ) zu übergehen. Ich will 
aber nun nicht unbedingt für jede LED einen einzelnen 
Leistungsverstärker verbraten? Einen seperaten LED Treiber eventuell?!

Autor: XYZ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gut gut, was ist eher zu empfehlen ein Osziquart oder reicht ein
> normaler mit 3.6864Mhz?
Klicke mal auf diesen Link: 
http://www.mikrocontroller.net/articles/Baudratenquarz

> Gibt es eine vernünftige Alternative diese 200mA per uC (Wie bekommt ihr
> eigentlich das Mikron als Buchstabe hine?! :D ) zu übergehen. Ich will
> aber nun nicht unbedingt für jede LED einen einzelnen
> Leistungsverstärker verbraten? Einen seperaten LED Treiber eventuell?!

Hmm... 2 Fragen: Das µ bekommt man so hin: "ALT GR + m"
Wenn's das IC nicht schafft, nimmt man einen (oder mehrere) Treiber, da 
gibt es mehrere Möglichkeiten.

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du den hohen LED strom brauchst gehts nur mit einzelnen treibern, 
evtl. ICs aus der ULNxxxx reihe. glaube ULN2803 oder so, bin ich mir 
aber nicht sicher. da gibts auf jeden fall ICs wo gleich acht treiber 
drin sind.

wenn dir pro LED 12mA reichen kommst du ohne aus, mußt halt die 
widerstände entsprechend exakt wählen. 100mA pro port sind kein problem, 
200mA für den ganzen µC auch nicht.

einfach den 4mhz quarz rauswerfen und einen der beiden vorgeschlagenen 
baudratenquarze einsetzen. ich würd immer zum schnelleren tendieren, 
aber wenn dir die 3.6MHz reichen ist der auch super. mußt dann nur dein 
programm an die neue taktfrequenz anpassen, die ganze CPU läuft dann ein 
wenig langsamer (oder bei 7.2Mhz halt einiges schneller).

V+ am MAX232 ist nur einer der beiden stützkondensatoren der 
ladungspumpe. der Vcc pin fehlt ganz einfach komplett.

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ben _ schrieb:
> wenn du den hohen LED strom brauchst gehts nur mit einzelnen treibern,
> evtl. ICs aus der ULNxxxx reihe. glaube ULN2803 oder so, bin ich mir
> aber nicht sicher. da gibts auf jeden fall ICs wo gleich acht treiber
> drin sind.

Jep super, der ULN-2803A ist die Lösung des Problems. "The ULN2803A has 
a
2.7kW input resistor for 5V TTL and CMOS" Der 2,4,5 ist für höhere 
Spannungen (6-14V) vorgesehen. Er bietet wirklich direkt 8 Leitungen, 
praktisch, danke für den Tipp!

> einfach den 4mhz quarz rauswerfen und einen der beiden vorgeschlagenen
> baudratenquarze einsetzen. ich würd immer zum schnelleren tendieren,
> aber wenn dir die 3.6MHz reichen ist der auch super. mußt dann nur dein
> programm an die neue taktfrequenz anpassen, die ganze CPU läuft dann ein
> wenig langsamer (oder bei 7.2Mhz halt einiges schneller).

Ok, dann werde ich das so tun :D

> V+ am MAX232 ist nur einer der beiden stützkondensatoren der
> ladungspumpe. der Vcc pin fehlt ganz einfach komplett.

Nu gut, dürfte ja kein Problem sein. Finde den Pin schon irgendwie. 
lach

Also überarbeite ich heute mal meinen kompletten Schaltplan und werde 
euch dann gegen Abend weiterhin damit "belästigen".

Vielen Dank für die vielen Nützlichen Tipps bis dato.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.