Hallo liebe Leute. Ich bin nun schon den ganzen Tag am versuchen eine
LED zum leuchten zu bringen. Am Samstag war ich im Conrad und dachte ich
versuche es mal aus etwas Spass mit einem Mikrocontroller zu haben
leider bis jetzt vergebens.
Folgendes Bauteile besitze ich:
1. ATMEGA 32 Mikrocontroller
2. MySmartUSB light Programmer
3. LEDs und Widerstände
Ich gehe nach dem Youtube Tutorial "Microcontrollers - A Beginner's
Guide - Intro to the AVR Atmega32" von Patrick Hood-Daniel
Folgendes habe ich bis jetzt gemacht:
Die Hardware miteinander verbunden
1. Einen Adapter für den 6er Stecker zum Steckbrett verlötet
2. den Mikrocontroller eingesteckt
3. LED eingesteckt
4. Widerstand eingesteckt
5. Verdrahtet
Software heruntergeladen und ggf. installiert
1. usb treiber myavr
2. myAVR ProgTool
3. WINAVR Softwarepaket heruntergeladen und installiert
MFile bearbeitet
1. MCU Type = atmega32
2. Programmer = STK500
3. Port = COM10
nun habe ich das kleine Programm geschrieben:
1
#include<avr/io.h>
2
3
intmain(void)
4
{
5
DDRB=0b00000001;
6
PORTB=0b00000001;
7
8
while(1)
9
{}
10
}
es passiert nichts!
Erstmals dachte ich es bestände keine Verbindung mit dem Microkontroller
aber mithilfe des Programms "myAVR ProgTool" kann ich die Diode an und
aus schalten.
Was habe ich falsch gemacht? Woran liegt es?
Für viele mag das lustig sein, dass ich nicht mal das hin bekomme doch
dafür ist man ja Anfänger.
Würde mich sehr über eine Erlösung freuen... Merci schon mal im
voraus!!!
LG Simon
> 4. Widerstand eingesteckt
Was für einen Wert hat der? (Falls der Wert nicht bekannt ist: Welche
Farben haben die Ringe? braun-schwarz-schwarz-grün-irgendwas? Falls ja:
der ist um ein paar Größenordnungen zu groß, falls nein bitte ich um
Nachsicht, Murg ist doch ein bisschen weit weg als dass man das von hier
genauer erkennen könnte)
sieht so aus als wenn dein Adapter ab Pin5 steckt, müsste aber ab Pin 6
stecken weil du sonst mit nur 6 Kontakte nie auf GND kommst
http://circuits.datasheetdir.com/18/ATMEGA32-pinout.jpg
gebraucht wird mosi miso sck reset vcc und gnd = 6 Pins
esfehlen noch ein Abblockkondensator 100nF zwischen VCC und GND und
besser noch ein 1k von RESET nach VCC
Der ATmega32 hat zwei GND-Pins. IIRC müssen beide auf GND verdrahtet
werden. Sieht auf dem Foto nicht danach aus... Außerdem kannst Du die
Funktion der LED auch ohne µC überprüfen - schon gemacht?
LostInMusic schrieb:> zwei GND-Pins. IIRC müssen beide auf GND verdrahtet> werden. Sieht auf dem Foto nicht danach aus...
jau besser wäre das sowie den Adapter ab Pin 6 stecken damit der letzte
an GND ankommt
und
ich hoffe der Widerstand vor der LED ist 150 Ohm oder größer.
Auch würde ich keine 20mA LED dafür wählen, warum den MC mit Strom
quälen wenn es eine low current 3mA oder eine uh ultra helle mit 1mA
auch tut ?
rot oder grün um 2,0V - 2,5V bleiben am Widerstand auch so 2,5V und mit
2mA als gemeinsamer Nenner wären das zwischen 680 Ohm und 2,4k
und vor dem m32 testen ist auch eine gute Idee statt an B0 man an VCC
legen
Hey, tausend dank für die schnelle Antwort.
Zu "g457 (Gast)" der Widerstand ist ein 150Ohm, also meines wissen nach
sogar zu schwach. Ich müsste doch einen 300Ohm Widerstand haben. Die LED
leuchtet ja via Aktivierung der Stromversorgung über myAVR ProgTool.
Zu "Joachim B. (jar)" Der Adapter geht von Pin 6 bis 11.
Zu "Marc Vesely (Firma: Vescomp) (logarithmus)" Fuses... Leider weiss
ich nicht genau was du meinst.
g457 schrieb:> ..dann passt doch alles(tm)..?
Leider nicht. In meiner Logik sollten die physikalischen Verbindungen
bestehen und auch funktionieren. Leider funktioniert aber das kleine
Programm nicht, welches die LED anschalten soll.
Simon O. schrieb:> nun habe ich das kleine Programm geschrieben:
IS P. schrieb:> Du solltest dir mal die Grundbeschaltung eines jeden AVR angucken, was> deiner Schaltung auf jedenfall fehlt ist ein Pullup am Reset Pin, so wie> ich das sehe geht dein Controller nicht mal an, da der Reset nicht auf> Vcc gezogen wird.
Pullup ist eingebaut, sollte auch ohne gehen.
Simon O. schrieb:> Zu "Marc Vesely (Firma: Vescomp) (logarithmus)" Fuses... Leider weiss> ich nicht genau was du meinst.
Vielleicht TAB mit "Auslesen" und dann irgendwo nach "Fuses" oder
"Sicherungen" suchen ?
Ich kenne deinen Programmer nicht.
Aus irgend einem Grund kann ich die Fuses nicht auslesen.
IS P. schrieb:> Habe den gleichen Programmer. Fuses sind direkt bei Brennen, erster Tab.
über "Edit" -> "reading hardware" komme ich doch zum auslesen der fuses,
oder? -> "Fuses cannot be read"
Kann es sein, dass der Mikrocontroller im Eimer ist?
Simon O. schrieb:> Hey, tausend dank für die schnelle Antwort.>> Zu "Joachim B. (jar)" Der Adapter geht von Pin 6 bis 11.
war das der Fehler ? Adapter ab Pin 5 gesteckt ? und geht jetzt alles ?
deine Antwort habe ich nicht verstanden
Joachim B. schrieb:> war das der Fehler ? Adapter ab Pin 5 gesteckt ? und geht jetzt alles ?>> deine Antwort habe ich nicht verstanden
Nein, leider nicht.
Ich bekomme die LED über das Program myAVR ProgTool zum leuchten. Über
einen Befehl der Stromversorgung.
Mithilfe von Programmers Notepad und meinem kleinen Programm die die LED
zum aufleuchten bringen soll funktioniert gar nichts.
Das ist was mich verwirrt.
Wenn die LED aufleuchtet, müsste ja eigentlich alles in Ordnung sein und
es müsste irgendwie auf dem Weg vom Programmers Notepad zur LED
irgendetwas schief gehen. Andrerseits kann ich auch die Fuses nicht
auslesen also kann es vielleicht auch sein, dass der Mikrocontroller
kaputt ist. Hab mir gerade einen neuen bestellt um das zumindest als
Fehlerquelle ausschließen zu können.
Simon O. schrieb:>> war das der Fehler ? Adapter ab Pin 5 gesteckt ? und geht jetzt alles ?>> Nein, leider nicht.
aber die Bilder sagen was anderes....
hast du dir mal die Fuse-Einstellungen im AVR Studio angesehen.
Da siehst du im Klartext was deine Einstellungen bedeuten und musst
nicht mit Hex-Werten rumhantieren. Ein weiterer Vorteil die Fuses werden
automatisch erst ausgelesen und angezeigt so das man wirklich nur das
passende ändert und nicht bei einer änderung prlötlich 5 andere Fusebits
auch geändert werden, die man garnicht berührt hat.
Ansonsten schau dir das mal
http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega32
Aber wenn die Fuses nicht zu lesen sind, sollte doch mit der
Schnittstelle zum Atmega32 was faul sein. Wie groß ist denn die
Geschwindigkeit deines Programmers zum Atmega eingestellt? Einfach mal
ganz runter stellen, dann sollte zumindest die ID und die Fuses lesbar
sein.
Grüße
Bernhard
Bernhard Schröcker schrieb:> Aber wenn die Fuses nicht zu lesen sind, sollte doch mit der> Schnittstelle zum Atmega32 was faul sein. Wie groß ist denn die> Geschwindigkeit deines Programmers zum Atmega eingestellt? Einfach mal> ganz runter stellen, dann sollte zumindest die ID und die Fuses lesbar> sein.
Lass es doch gut sein mit der Schnittstelle.
Hexfile ist richtig geflasht, also ist Schnittstelle in Ordnung.
Bernhard Schröcker schrieb:> Aber wenn die Fuses nicht zu lesen sind....
vielleicht hat er den m32 auch zerschossen, nach seinen Bildern war der
vorher falsch gesteckt ohne GND ! und Power an anderen Pin
Joachim B. schrieb:> vielleicht hat er den m32 auch zerschossen, nach seinen Bildern war der> vorher falsch gesteckt ohne GND ! und Power an anderen Pin
Ich verspreche dir, dass das nicht der Fall ist. Aufgrund der
Perspektive scheint es als wäre der Adapter ab pin 5 gesteckt.
Tatsächlich war er schon immer ab pin 6 gesteckt. Das zweite Bild ist
nur aus einer anderen Perspektive. Fraglich wäre auch, warum die LED
leuchtet, aber nicht mit dem Progrqmmers Notepad.
Simon O. schrieb:> Fraglich wäre auch, warum die LED> leuchtet,
Ich verstehe Dein Problem nicht!
Die LED ist laut Foto am Port B0 (PIN1) angeschlossen mit R in Serie
nach GND. Die kann nur dann leuchten, wenn dieser PIN1 auf Ausgang und
High programmiert wird.
Genau das steht auch in Deinem Programm.
Wo ist jetzt das Problem???
>> Wo ist jetzt das Problem???
Der Programmer versorgt die Schaltung mit Spannung.
Mit Notepad scheint der die Spannung aber nicht einzuschalten.
So ist das halt wenn man sich so einen Müll anschafft.
Wenn ich das richtig sehe hast du als Programmer den AVR 911 gewählt.
Standardmäßig steht der myAVR auf STK500-kompatibilität. Also entweder
den myAVR auf den 911 Flashen oder aber in Notepad irgendwie STK500
einstellen (keine Ahnung wie das geht, nutze immer AVR Studio)
lg
ISP
PS: ich glaube, dass die Versorgungsspannung nach jedem mal
programmieren sowieso wieder aus ist. Du kannst im myAVR Support Tool
allerdings einstellen, dass zumindest beim brennen immer Spannung
anliegt. Auf daher würde ich dir ein externes NT empfehlen.
Nimmt nicht alles so wörtlich, was hier geschrieben wird. Zum Einstieg
finde ich ihn ganz ok, wenn man sich etwas in die Eigenheiten
einarbeitet kommt man als Anfänger gut damit klar. Das er mit einem
echten STK500 beispielsweise nicht mithalten kann, sollte jedem klar
sein.
lg
ISP
Route 66 schrieb:> Die kann nur dann leuchten, wenn dieser PIN1 auf Ausgang und> High programmiert wird.
Falsch auch ein Eingang mit aktivierten Pullup(Standard) könnte die LED
zum leuchten bringen gerade wenns ne Low Current LED ist.
Lass die led doch lieber blinken um ein Leben zu erkennen und dann
versuch mal das ganze mit externer 5V Versorgung. Ich denke IS P. hat da
schon einen ganz guten Hinweis.
Simon O. schrieb:> der Widerstand ist ein 150Ohm
ich nehme immer 500 Ohm, vielleicht ist der Widerstand zu groß. Miss mit
einem Multimeter direkt an den Pins ob sich die Spannung an B0 von den
anderen Pins unterscheidet. Wenn ja, funktioniert dein Programm.
Jim schrieb:> und versorge den Atmega32 korrekt mit VCC und GND.
Ihr seit meine Helden. Vielen Dank für den Rat. Im Video funktionierte
es auch ohne externe Stromversorgung... wird wohl an den Programmer
liegen. Nun mit einer externen Stromversorgung funktioniert auch das
Programmieren und ausführen des Mikrocontrollers.
Das passt jetzt nicht direkt zum Thema aber gibt es eine Formel um die
Größe von Kondensatoren zu bestimmen Es geht jetzt konkret um den
Kondensator zwischen GND und VCC, den zwischen Ausgang und GND des
Spannungsreglers, und den zwischen Eingang und GND des
Spannungsreglers...
Grundsätzlich wäre es gut zu wissen wie ich mit Kondensatoren vorgehe.
Lieben Dank
Simon
direkt an die Pins sollten 100nF Kerkos kurz davor kann man nochmal 10µF
Elko setzen von dem alles für den µC genommen wird, das ist aber lange
nicht so wichtig wie der Kerko.