Moin, also ich gehöre wohl zu den blutigen Anfängern - für etwas Hilfe wäre ich daher sehr dankbar. Habe mir schon einen Wolf gesucht mit Google und hier im Board, aber als Anfänger tut man sich mit den Suchbegriffen auch noch etwas schwer. Also, bitte seit gnädig ;-) Ich habe mir ein Programm zum Steuern von Lampen (LEDs oder 5V-Birnen) geschrieben und das in den ATmega geladen. Das ganze konnte ich in der Uni machen, wo mir das STK500 zur Verfügung steht. Habe dann auch gleichmal mit den Tastern und LEDs mein Programm überprüfen können. Soweit so gut. Jetzt möchte ich mir meine eigene Schaltung auf einem Steckbrett aufbauen. Leider scheint das ganze nicht zu fruchten. Was muss man denn zwingend anschließen? VCC, GND, nochmal GND und AVCC (Pin 10,11,31,30) habe ich entsprechend geschaltet. PortA nehme ich als Eingang, PortB und PortC als Ausgänge. Soll ich die PortA-Eingänge alle unbeschaltet lassen oder alle auf VCC legen? Was ist mit dem Reset-Pin. Muss man da nochetwas schalten? So nächstes Problem ist dann der Darlington Treiber. Ich glaube ich bin einfach zu blöd dafür. Schließt man GND an, liegt der Pegel auch sofort an allen Eingängen... hüstel Ist das OK? Ich benötige den Treiber, da ich die 5V Birnchen ja nicht direkt an den MicroController hängen kann. Ich hätte jetzt einfach die PortB und PortC-Ausgänge jeweils mit den Eingängen des ULN2003A verbunden. Zusätzlich noch GND angeschlossen und gehoft, das an den Ausgängen was gescheites rauskommt und ich die Birchen direkt anschließen kann. Leider bis jetzt ohne Erfolg. Naja, vielleicht kann mir ja schonmal jemand ein bisschen helfen. Vielen DANK schonmal. Bye, Sebi
Unbeschaltete Eingänge als Eingang prog., und interne Pullup aktivieren. Reset mit 10k nach VCC. Von den Ausgängen des ULN mal eine Lampe nach Plus, kann nur leuchten.
deine Birnchen werden noch eine Versorgungsspannung brauchen. Mal doch mal deinen Schaltplan auf. Die Birnchen mußt du zwischen dem Ausgang und +5V betreiben (ich gehe davon aus, dass du soweit die Sache selbst hinbekommen hast). Zum Test, ob die ULN-Bausteine funktionieren, kannst du einfach mal den Eingang mit 5V betun. Dann sollte die Lampe leuchten. Zum Reset-Pin: im (complete) Datenblatt findet man eigentlich immer eine Beschaltung: 100nF gegen Masse und 4,7KOhm gegen Vcc. (ich kann mich jetzt von den Werten auch irren). Der Reset muß bis zum Ende der Einschwingphase des Oszillators auf Masse gezogen sein, damit ein stabiler Betrieb möglich ist.
Hi hi, also schonmal vielen Dank für die vielen Antworten. Ich habe zumindest meinen ULN2003A jetzt zum Laufen gebracht. Ich hatte mich bis jetzt immer net so gedraut, da wirklich noch 5V+ an die Eingänge zu hängen, wenn da schon GND anliegt. Aber siehe da, es geht doch und die Birchen leuchten. Vielen Dank! Jetzt werde ich das noch mit dem ATmega hinbekommen. Werde morgen mal ein paar Widerstände einkaufen gehen. @Rahul: Ist das wirklich nötig mit dem Kondensator und gegen Masse etc.? Der MikroController kommt in eine Modelllok und soll dort die Lampensteuerung übernehmen. D.h. zunächst hat er nie Strom und dann wird 24V auf die Gleise gegeben. Durch meine Schaltung kommt dann natürlich nur 5V an. Ab jetzt sollten die Lampen leuchten. Irgendwann wird dann wieder die Schienenspannung weggenommen und die Lampen sollten jetzt auch nicht mehr leuchten. In der Zwischenzeit spult der MikroController halt sein Programm ab. Reicht es da dann nicht, den Reset-Pin mit 10k auf Vcc zu ziehen, wie von Hubert vorgeschlagen?? Vielen Dank nochmal, Sebastian
Hallo, kann mir bitte nochmal jemand helfen? Habe heute Widerstände eingekauft und versucht den MicroController endlich zum Laufen zu bekommen, aber es klappt immer noch nicht. Nochmal kurz zur Erklärung: In einem STK500 gesteckt und PortA mit den Tastern, PortB mit den LEDs verbunden haben alle LEDs geleuchtet. Habe das jetzt versucht nachzubauen auf einem Steckbrett. Anbei mal der Schaltplan. Habe ich da noch irgendwas vergessen oder falsch gemacht? An den Ausgänge messe ich nur 0,36V. Irgendwie habe ich das Gefühl, dass der MicroController noch gar nicht arbeitet. Den ULN2003A habe ich mal weggelassen - einzeln getestet hat der ja funktioniert. Schaltplan: <img src="http://www.spur-iim.de/atmel/atmega16.jpg"> Bin für jeden Hinweis dankbar und hoffe auf Eure Unterstützung. TIA, Sebastian
Hi, die ganzen Pull Up Widerstaende (rechts) kannst du dir sparen. Du kannst dafuer die internen aktivieren. Hm es koennte sein das der intere R-C Oszillator deaktiviert ist und du einen Quarz bzw Quarzoszillator anschliessen musst. Mfg Dirk
Hi Dirk, Du meinst sonst müßte es eigentlich ok sein, oder? Du könntest nämlich wirklich recht haben mit Deiner Vermutung. Ich habe mich darum nicht gekümmert - hatte jetzt gerade nachgelesen, dass standardmäßig aber die interne Clock verwendet wird. Dann habe ich mal einen Blick ins AVRStudio geworfen und da ist bei den Fuses ein Hacken bei "Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1111 SUT=11]" Ich habe allerdings nicht mit diesem PC programmiert, aber alle Dateien des Projekts übertragen - könnte also tatsächlich so sein, dass da in der Uni was falsch eingestellt war und mir das nicht aufgefallen ist. Hat das STK500 denn eine externe Clock? Wahrscheinlich schon, oder? Werde ich also höchst wahrscheinlich nochmal neu programmieren müssen... grummel Und das wo ich im Moment sehr weit weg von der Uni bin. Sonst noch Ideen?? LG, Sebastian
Hi, noch ne Frage: Werden denn die Fuses überhaupt jedesmal neu gesetzt? Eigentlich habe ich ja nur meinen Assembler-Code in den Controller geladen. Verwendet habe ich dazu das AVRStudio von Atmel. Und in meinem Programm passiert auch nix ausergewöhnliches: Ich setze am Anfang nur die Ports: ldi r30, 0xFF ;PortB und C als Ausgang out $17, r30 out $14, r30 ldi r31, 0x00 ;PortA als Eingang out $1a, r31 Bye, Sebastian
Das ist alles, was dein Programm machen soll? Kein Wunder, dass da nichts passiert...
Statt der direkten IO-Adressen würde ich an deiner Stelle eher DDRA, DDRB, DDRC verwenden. Damit setzt du ja aber nur die Richtung der Ports fest, wie wäre es mal mit ldi r16, 0xff out PORTB, r16 (oder halt nen anderen Port)
Hi, sorry, natürlich passiert da noch mehr. Klar schreibe ich auch mal was auf den Ausgang raus. Ich sagte ja, dass in einem STK500 alle LEDs zunächst Brennen. Ich wollte nicht das gesamte Programm veröffentlichen, nur zeigen, was ich an "Einstellungen" vorgenommen habe. So long, Sebastian
Beim STK500 sind die LED low-active, sprich wenn man eine 0 an den Port schreibt gehen sie an. Beim ULN ist es anders herum
Hi, ich bin's wieder. Ich habe heute einen neuen Versuch gestartet, nur um wieder auf der Nase zu landen. Vielleicht könnt Ihr euch einfach nochmal meinem Problem annehmen? Das wäre sehr lieb!! Ich habe einen neuen ATmega16 genommen, dessen FUSES wirklich auf den Standardwerten gesetzt sind (insbesondere Int. RC Oscilator aktiv). Als Programm habe ich das aus dem I/O-Grundlagen Workshop genommen, das je nach Eingang genau das auch wieder auf den Ausgang legt. Da es kein riesen Sourcecode ist, stelle ich ihn hier gerade nochmal ein (hoffe das ist OK): ldi r16, 0xFF out DDRB, r16 ;Port B durch Ausgabe von 0xFF ins ;Richtungsregister DDRB als Ausgang konfigurieren ldi r16, 0x00 out DDRA, r16 ;Port A durch Ausgabe von 0x00 ins ;Richtungsregister DDRA als Eingang konfigurieren loop: in r16, PINA ;an Port A anliegende Werte (Taster) nach r16 ;einlesen out PORTB, r16 ;Inhalt von r16 an Port B ausgeben rjmp loop ;Sprung zu "loop:" -> Endlosschleife In einem STK500 getestet. Natürlich funktioniert alles. Dann aufs Steckbrett. Und wieder geht nix. /Reset über 10kOhm an 5V+ AVCC und VCC an 5V+ 2xGND natürlilch an Ground Dann an die Eingänge von Port A entsprechend dem Workshop Pullup-Widerstände gesteckt und an den Port B die LEDs angeschlossen. Es leuchtet nix!!! Kann das sein?? Was ist denn noch falsch? Das kann doch nur ein ganz dummer dummer Fehler sein, oder? Vielen Dank für Eure Vorschläge. Bye, Sebastian
Woher beziehst du die 5V? Ist aber Gleichstromm, oder? (blöde Frage ich weiß, aber bei Eisenbahn muß man da aufpassen). Vielleicht nochmal besser zwei 100nF (keramische) Kondensatoren direkt an die VCC und AVCC Pins auf GND stecken. Und vielleicht nochmal ein 10uF Kondensator irgendwo an die +5V (auf GND). Vielleicht ist deine 5V ja "schmutzig". Dein Programm und deine Beschaltung scheint mir ansonsten OK zu sein. Im STK sollte bei den Fuses nur ein Haken irgendwo bei "Int. RC Osc." sein und die beiden bei "Flash Size" und "Brown-out detection level", die aber egal sind. Sonst keine Haken dort. jörn
wie wäre es denn, den Controller erst mal im STK zu lassen, und die LEDs und Taster über die Port-Leitungen nacheinander anzuschliessen; sprich erst mal testen, ob das mit den Tastern vom Steckbrett funktioniert und dann testen, ob die LEDs das machen, was sie machen sollen. Dafür sind die Ports vom STK ja alle rausgeführt...
Oh mann.... Jörn hat voll ins Schwartze getroffen!! Danke Jörn, hast ein kühles Bier bei mir gut! Ich hatte das mit einem Modellbahntrafo und einer Spannungsbegrenzungsschaltung probiert. Aber das war anscheinend nicht gut genug. Habe zum Testen gerade mal 3 Batterien in Reihe geschaltet und es geht. SUUUUPPPPERR!!! tierisch-freu Ok, nochmal vielen Dank für alle, die sich meinem Problem angenommen haben und somit letztendlich auch zur Lösung beigetragen haben. Ich werde mich jetzt mal nach einer neuen Schaltung zur Spannungsbegrenzung umschauen. Ggf. mache ich dann dazu einen neuen Thread auf. Fall dazu noch jemand was sagen möchte hier schonmal die Eckdaten: 0-24V sowohl Gleich- als auch Wechselstrom möglich. Bis die Tage, Sebastian
Brückengleichrichter, dicker Kondensator, Festspannungsregler...
Danke Rahul, jetzt läufts auch mit Strom aus der Steckdose bzw. vom Eisenbahngleis - kann mir also die Batterien in Zukunft sparen. Danke danke und nochmals danke!!!
Stellt sich nur noch die Frage, was passiert, wenn die unter die Mindestspannung kommst...
Fein das mein Tip geholfen hat :-) nur wie komme ich jetzt an das (kühle) Bier? ;-) Naja, ich nehme erstmal eins aus meinem Kühlschrank und bilde mir ein, es wäre gerade per Mail gekommen. jörn
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.