Hallo,
mein Name ist Felix und seit den letzten Wochen habe ich mich in die
Programmierung von Mikrocontrollern eingearbeitet und mit jetzt ein
Steckbrett, nen atmega32 und nen programmer zugelegt.
Ich habe mit dem Versuch gestartet einfach ne LED zum leuchten zu
bringen und es ist sehr deprimierend daran gleich zu scheitern.
Der Atmega lässt sich programmieren und alles, nur bekomme ich an keinem
Port bzw. Pin ein high-Signal heraus, welches meine LED zum leuchten
bringt :(.
Kann mir vllt. einer sagen, wo da Fehlerquellen liegen könnten?
wie gesagt, programmieren lässt er sich ja und ich hab auch schon
internen und externen takt probiert mit nem 7,3728Mhz Oszi.
vieln Dank schon im Vorraus
Die LED leuchtet bei HIGH am PORTPIN nur, wenn sie so angeschlossen ist:
Pin o----->|-----###-----o GND
D1 R1
LED Vorwiderstand
Damit der Portpin HIGH ausgibt, muss er korrekt vom Programm angesteuert
werden.
Damit das Programm läuft muss der Atmega32 korrekt beschaltet sein.
Falle bei PORTC: JTAG Fuse im Werkszustand.
Also:
ich bastle schon seit der Hälfte meines Lebens mit Elktrozeugs rum...und
ich bin erst 21 :) die LED's hab ich in beide Richtungen probiert auch
gegen Vcc wenn die Pins low ausgeben sollen, JTAG ist deaktiviert, es
handelt sich bei dem Problem um wirklich ALLE Pins.
ich programmiere mit Bascom und mein Quelltext:
$regfile = "m32def.dat"
$crystal = 4000000
Config Porta = Output
Config Portb = Output
Config Portc = Output
Config Portd = Output
Config Porta = &B11111111
Config Portb = &B11111111
Config Portc = &B11111111
Config Portd = &B11111111
End
als Programmer nehme ich den "my smart USB ligth" Verbindung mit PC kein
Prob. und Bascom sagt mir auch immer, das das Prog aufm Atmega drauf
is....fuses und so kann ich ja auch alles einstellen.
Felix schrieb:> geht trotzdem nicht. laut simulator ändert das doch nix ob mit oder ohne> config?
Doch.
Mit Config setzt du hier nochmal alle Pins auf Output.
Ohne Config setzt du dann auch tatsächlich alle Pins auf 1.
Jetzt kommt es nur noch darauf an, wie deine LED verschaltet sind.
Daher mach ich gerne folgendes:
Porta = &B01010101
Portb = &B10101010
Portc = &B01010101
Portd = &B10101010
also nur jeden 2.ten auf 1 setzen. Unter der Annahme, dass alle LED
gleich verschaltet sind, leuchten dann auf jeden Fall an jedem Port 4
LED, egal ob die jetzt nach GND oder nach Vcc verschaltet sind.
Wenn nicht, dann kann es jetzt höchstens noch sein, dass die LED
Kathode/Anode falsch rum drinn sind.
:) es geht.....immernoch net...es muss ne einstellungssache sein, an der
Hardware ist alles ok. jeder port hat 4 leds und immer 2 sind kathode
anode vertauscht...es leuchtet keine :(..egal ob ich die ports auf high
oder low setze...ich hab auch ne led zwischen Vcc und GND
geschaltet...stromversorgung mit 7805 geht also auch einwandfrei kondis
sind auch dran....ich bin zwar ein kerl....aber ich fang gleich an mit
weinen :(
blockieren einstellungen an fuses oder am quarz iwas?
für die einstellung des internen taktes kann man ja auch 1000
unterschiede einstellen und extern....
Felix schrieb:> :) es geht.....immernoch net...es muss ne einstellungssache sein, an der> Hardware ist alles ok. jeder port hat 4 leds und immer 2 sind kathode> anode vertauscht...es leuchtet keine :(
Schnapp dir mal dein Voltmeter und miss die Pegel an den Pins nach.
> blockieren einstellungen an fuses oder am quarz iwas?
Nein.
Wenn du dich erst mal nur auf den Port B konzentrierst: Wenn der µC an
sich läuft, dann kommt da auch eine Ausgabe auf den Pins, indem du den
Port auf Ausgang stellst und die Portpins auf 1 stellst.
Da kann keine Fuse dazwischenfunken.
> für die einstellung des internen taktes kann man ja auch 1000> unterschiede einstellen und extern....
Alles fürs erste uninteressant.
Solange der µC läuft, kommt da auch etwas auf den Pins.
Allerdings weiß ich nicht, was BASCOM macht, wenn sein Programm zu Ende
ist. Du solltest es auf jeden Fall in einer Endlosschleife gefangen
halten, dann stellt sich diese Frage erst gar nicht.
hatte ich auch schon...und gerade nochmal getestet.....keine reaktion
ich finde es übrigens einfach total super wie schnell hier versucht wird
einem zu helfen :)
Alleine die Zeit die ihr euch nehmt ist ein großes Lob und ein noch
größeres DANKESCHÖN wert!
vllt fällt euch ja noch was ein :)
Felix schrieb:> Also:> ich bastle schon seit der Hälfte meines Lebens mit Elktrozeugs rum...
Kaum zu glauben.
Und in all der Zeit hast du noch nie etwas von Vorwiderständen für LED
gehört?
Also ich für meinen Teil kann noch nicht mal die Spannungsversorgung auf
dem Bild nachvollziehen. Wie da Masse an die Schaltung kommt ist für
mich nicht ersichtlich.
Was sagt dein Voltmeter:
* Spannung am Reset Pin
* Spannung an den Port Pins
Masse liegt auf der untersten leiste an und wird durch den grünen Draht
neben der LED geführt. Vorwiderstände für die LEDs? die gehen von 2 bis
5V.
am reset bzw. Pins liegt 0V an.
sry wegen dem schlechten Foto.
Felix schrieb:> Masse liegt auf der untersten leiste an und wird durch den grünen Draht> neben der LED geführt.
Und das war jetzt so schwer, vom 7805 (ich geh davon aus, dass das einer
ist), einfach 2 kleine Brücken vom mittleren bzw rechten Pin einfach auf
die beiden unteren waagrechten Leitungen zu führen, von wo wiederrum
kleine Brückrn beim Mega sich die Potentiale holen. Da könnte man ja
auch auf einen Blick sehen, wie die Stromversorgung gemacht ist. OK, geb
mich geschlagen: das wäre zu einfach und zu übersichtlich gewesen.
denn, wo die grüne Leitung hingeht ist ja auf dem Foto nicht
ersichtlich. Und wenn man das Foto ganz genau eingehend studiert, findet
man auch raus, dass da tatsächlich eine der roten(!) Strippen am
mittleren Pin des 7805 endet. Ist nicht gut zu sehen, weil der Elko die
Sicht verdeckt, aber was solls. Es war schwer zu stecken also solls auch
schwer zu entschlüsseln sein.
> Vorwiderstände für die LEDs? die gehen von 2 bis> 5V.
Autsch.
Schon mal den Begriff Ohmsches Gesetz gehört?
> am reset bzw. Pins liegt 0V an.
0V an Reset ist schon mal schlecht.
Mach mal den Programmieradapter runter.
Am Resetpin musst du 5V messen können.
ich hab schonmal was von dem gesetz gehört.....nur die 2 dingens ziehen
doch net den atmega leer oder?^^ oder was meinst du?
also auch ohne Programmer weniger als nischt....0V
Sag mal:
Auf dem Bild - wo zeigt die Kerbe des Mega32 hin?
nach rechts oder nach links.
Wenn ich so die Pins abzähle, dann ist doch da gar nichts an der
Stromversorgung des Mega angeschlossen.
zu meiner Verteidigung, ich hab hier leider nicht mein ganzes zeug
mitgenommen und hab deshalb nur Litze gehabt...keine Drahtbrücken. ich
bin, was sowas angeht ein ordentlicher Bastler. Nur leider hat mich
heute die Lust gepackt, weshalb ich nicht bis zum we gewartet
habe....der Programmer kam heute per post und das "allernötigste" hatte
ich hier im Wohnheim rumliegen.
Karl heinz Buchegger schrieb:> Sag mal:> Auf dem Bild - wo zeigt die Kerbe des Mega32 hin?> nach rechts oder nach links.>> Wenn ich so die Pins abzähle, dann ist doch da gar nichts an der> Stromversorgung des Mega angeschlossen.
Das heist:
doch, ich denke ich kann in der unteren Reihe eine Verbindung nach Vcc
erahnen, sogar 2 mal. Einmal über das rote Kabel das Luftlinie zum 7805
geht und einmal über ein kurzes schwarzes Kabel, welches in die
Verteilerschiene unten geht.
Aber ich seh keine Masseverbindung.
Normalerweise würde ich sagen: reiß den Krempel runter und machs
nochmal.
Aber diesmal nicht die Kabel kreuz und quer, sondern vom 7805 gehts auf
die beiden waagrechten Verteiler und von dort gehts mit kurzen! Brücken
auf die jeweiligen IC-Pin Schienen im Steckbrett
Den Programmer wild zu verdrahten ist schon ok, das geht nicht anders.
Aber bei allem anderen kommt man locker ohne Kabelkreuzung hin und kann
das so anordnen, dass ein Blinder greifen kann, was da verschaltet
wurde.
Felix schrieb:> zu meiner Verteidigung, ich hab hier leider nicht mein ganzes zeug> mitgenommen und hab deshalb nur Litze gehabt...
AUch die kann man auf das Notwendige ablängen. UNd wenn man sich dann
auch noch an das Frabschema hält (Stichwort rot/schwarz) dann vermeidet
man gleich die nächsten blöden Fehler.
Wenn der Mega chon programmiert ist,
dann brauchst du minimal:
Nur die Stromversorgung
100nF an den jeweiligen Vcc/GND Pärchen wären gut
Den Programmer komplett abziehen
Dann muss Reset auf 5V gehen. Wenn nicht, die Stromversorgungspins
nachmessen, ob alles da ist.
Und die LED klemm erst mal ab, solange du da keine Vorwiderstände drann
hast.
ALSO! ich war gerade dabei euren Rat zu befolgen und nochmal Ordnung zu
schaffen, da nehm ich die Brücke zwischen den Gnd-anschluss für den 7805
und den Gnd-anschluss des 32er raus...und plötzlich leuchtet die eine
LED...und nach umstellen des Ports von high auf Low...leuchtet die
andere :)....mir ist nur net ganz klar, warum.......doch jetzt
schon.....es läuft alles aber ohne den
7805....der...nee....mom....also...ich fotografier das hier doch
nochmal....vllt kann mir das einer erklären^^
...so...erstmal 1000 und 2 Dänker an euch alle!
ich find das einfach super.....es geht und Ordung ist halt doch das A
und O... danke nochmal :)
und jetzt zu dem was ich noch net ganz verstehe....wie man jetzt
hoffentlich aufm foto sehen kann:
Gnd ist nur am Pin 31 des atmega32, sobald ich an Pin 11 Gnd anlegen
will, geht die LED aus....also kurzschluss?!
und dann zum 7805....der bekommt nur V+ von meinem Trafo und keine Masse
und trotzdem funzt das....da sag ich mal glück gehabt, das mein trafo
schon 5, irgendwas bringt....sonst hätte ich mir womöglich meinen mikro
abgeschossen...schnell rein mit der Brücke :)
Felix schrieb:> schon 5, irgendwas bringt....sonst hätte ich mir womöglich meinen mikro> abgeschossen...schnell rein mit der Brücke :)
Wollt grad sagen: da fehlt doch noch was.
Hast du vom Programmer eine Vcc Leitung rübergezogen?
Eventuell wird dein µC vom Prgorammer mit Strom versorgt und gar nicht
vom 7805.
Falls du eine Vcc Leitung vom Programmer rüber hast, lass die mal weg.
Du brauchst nur
RESET
MISO
MOSI
SCK
GND
Christian D. schrieb:> :) na immerhin hat er mit der LED zwischen den Leitungen einen kleinen> Gleichrichter hust
Gleichrichten bis zur Selbstaufgabe, vorausgesetzt, der macht die
Massebrücken rein. :-)
@TO: Mal doch mal einen Schaltplan, an dem die gewünschte Verdrahtung zu
sehen ist (mit Pinnummern). Dann kontrolliere Pin für Pin, ob dein
Aufbau passt.
Christian D. schrieb:> :) na immerhin hat er mit der LED zwischen den Leitungen einen kleinen> Gleichrichter *hust*
Ist auch eíne Möglichkeit: Gleichrichten indem man den nicht gewollten
Teil der Sinusschwingung mehr oder weniger kurzschliest.
Aber das wird er ja doch nicht gemacht haben. Das wird ja wohl ein
Steckernetzteil sein.
Oder?
Nein, das will ich mir jetzt gar nicht erst vorstellen. Ich hab schon an
den LED ohne Vorwiderstand zu kauen.
nee^^ da kommt schon DC raus^^
cool...so servo ansteuern geht auch...hab ich gerade noch gefunden:D
natürlich mit nem transistor davor...falls die Frage aufkommt.
bin begeistert von dem Ding....ich hab seit na woche das Buch von Stefan
Hoffmann "der leichte einstieg in die elektronik mit mikrocontrollern"
und nach na woche wird es zeit zum experimentieren....ohne
schleichwerbung machen zu wollen....*hust*....das tutorial hier und das
Buch sind eine Hammerkombination :)