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
> 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
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!
dann ist das eine sehr luschige anforderung für die rs232... bei 115kbaud gehen da locker 10kbyte/s durch.
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
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....)?
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
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!
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
Also Sprich: Es ist völlig egal welche Spannung ich nehme... Mensch ich brauche mal nen Buch über Kondensatoren und deren Arbeitsweisen :D
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
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.
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?!
> 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.
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.
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.
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.