Forum: Mikrocontroller und Digitale Elektronik Blutiger Anfänger bruacht hilfe beim ATMEGA32


von Simon O. (mola-4-speed)


Angehängte Dateien:

Lesenswert?

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
int main(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

von g457 (Gast)


Lesenswert?

> 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)

von Joachim B. (jar)


Lesenswert?

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

von LostInMusic (Gast)


Lesenswert?

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?

von Joachim B. (jar)


Lesenswert?

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

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Simon O. schrieb:
> Was habe ich falsch gemacht? Woran liegt es?

 Sende mal Screenshot von Fuses.

von Simon O. (mola-4-speed)



Lesenswert?

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.

von g457 (Gast)


Lesenswert?

> Die LED leuchtet ja via Aktivierung der Stromversorgung über myAVR
> ProgTool.

..dann passt doch alles(tm)..?

von Simon O. (mola-4-speed)


Lesenswert?

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:
1
#include <avr/io.h>
2
 
3
int main(void)
4
    {
5
    DDRB = 0b00000001;
6
    PORTB = 0b00000001;
7
 
8
    while (1)
9
        {}
10
 }

von g457 (Gast)


Lesenswert?

> Leider funktioniert aber das kleine Programm nicht, welches die LED
> anschalten soll.

Wer hat die LED denn dann in obigem Bild eingeschaltet?

von IS P. (isp)


Lesenswert?

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.
Auch ein 100n Kondensator würde dir dein Mega32 mit Sicherheit nicht 
verübeln...
Sieh dir dazu am besten mal das hier: 
http://www.mikrocontroller.net/articles/Einstieg_in_die_Mikrocontrollertechnik_mit_AVR_ATmega

und ganz besonders dieses Bild hier:
http://www.mikrocontroller.net/articles/Datei:Mc_min.png

an

lg
ISP

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

: Bearbeitet durch User
von IS P. (isp)


Angehängte Dateien:

Lesenswert?

Habe den gleichen Programmer. Fuses sind direkt bei Brennen, erster Tab.

von Simon O. (mola-4-speed)


Lesenswert?

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?

von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

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

von Simon O. (mola-4-speed)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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....

von Thomas (kosmos)



Lesenswert?

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

: Bearbeitet durch User
von Bernhard S. (dl9rdw)


Lesenswert?

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

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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

von Bernhard S. (dl9rdw)


Lesenswert?

@Marc
Wenn dir das klar ist dass das HEX file richtig geflasht ist, dann hab 
ich nix über die Schnittstelle gesagt.

von Simon O. (mola-4-speed)


Lesenswert?

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.

von Simon O. (mola-4-speed)


Angehängte Dateien:

Lesenswert?

Thomas O. schrieb:
> hast du dir mal die Fuse-Einstellungen im AVR Studio angesehen.

Was bedeutet
1
Read voltage 0.0V is outside selected device's operating range: 2.7 V to 5.5 V.

: Bearbeitet durch User
von Peter K. (peterka2000)


Lesenswert?

Simon O. schrieb:
> Thomas O. schrieb:
>> hast du dir mal die Fuse-Einstellungen im AVR Studio angesehen.
>
> Was bedeutet
1
Read voltage 0.0V is outside selected device's 
2
> operating range: 2.7 V to 5.5 V.
Das die myAVR-Viecher, im Gegensatz zu Atmel-Ware, keine Spannung lesen 
können. Ist normal.

von Route_66 H. (route_66)


Lesenswert?

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???

von Simon O. (mola-4-speed)


Angehängte Dateien:

Lesenswert?

Route 66 schrieb:
> Wo ist jetzt das Problem???

von dummy (Gast)


Lesenswert?

>> 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.

von IS P. (isp)


Lesenswert?

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.

: Bearbeitet durch User
von Simon O. (mola-4-speed)


Lesenswert?

dummy schrieb:
> So ist das halt wenn man sich so einen Müll anschafft

Ist der mySmartUSB light müll?

von IS P. (isp)


Lesenswert?

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

von Thomas (kosmos)


Lesenswert?

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.

von Clemens M. (panko)


Lesenswert?

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.

von grundschüler (Gast)


Lesenswert?

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.

von Jim (Gast)


Lesenswert?

Kauf dir etwas in dieser Art

http://www.ebay.de/itm/like/111194978334?lpid=106&_configDebug=ViewItemDictionary.ENABLE_PAYMENTS_IN_HLP:true&hlpht=true&ops=true&viphx=1

und versorge den Atmega32 korrekt mit VCC und GND. Noch ein Pullup an 
Reset  und die Versuche können starten.

Ich wette, dann leuchtet die LED auch wie gewünscht.

In dem von Dir verlinkten Video wird der MC ja auch korrekt mit Strom 
versorgt - oder?

von Simon O. (mola-4-speed)


Lesenswert?

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

von Thomas (kosmos)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.