Forum: Mikrocontroller und Digitale Elektronik AVR tiny2313 -> lässt sich programmieren aber läuft nicht los


von S. F. (deffman)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich versuche jetzt schon den ganzen Abend meinen Tiny2313 zum laufen zu 
bringen, aber irgendwie will es nicht gelingen.

Habe einen ganz einfachen Test code geschrieben. Er ist im Anhang 
angehängt. Prinzipiell will ich nur mal ein paar Bits vom PortB setzen.

Habe alles im AVR Studio 5 compiliert und das .hex file dann per 
mySmartUSB light in den Flash geschrieben. Hat auch alles ohne 
Fehlermeldung funktioniert. Wenn ich den Flash wieder auslese, bekomme 
ich den Code wieder.

Das Problem ist aber:

Es sind alle Pins des Controllers auf High. Eigentlich sollten aber die 
Pins von PortB abwechselnd high und low sein (s.Code).

Habt ihr eine Idee was ich falsch mache? Die Fusebits sind auf

LowFuse: 0x64
HighFuse: 0xDF

Damit sollte der Controller doch mit internen 1MHz laufen oder?

Der Controller kommt zur Info frisch von Reichelt. Kann es sein, dass 
ich beim ersten Mal programmieren noch etwas besonderes einstellen muss?

Gruß und vielen Dank im Voraus!

Stefan

von (Ein) (Gast)


Lesenswert?

Code und Fuses sehen auf den ersten Blick gut aus, das mit den 1MHz 
sollte stimmen.

Wie ist der Reset-Pin beschaltet? Abblockkondensatoren vergessen?

von Sam .. (sam1994)


Lesenswert?

S. F. schrieb:
> Es sind alle Pins des Controllers auf High. Eigentlich sollten aber die
> Pins von PortB abwechselnd high und low sein (s.Code).

Dein Programm schaltet PortB auf 10101010 und bleibt dabei. Es findet 
kein Wechsel statt.

von syn_error (Gast)


Lesenswert?

>igentlich sollten aber die Pins von PortB abwechselnd high und low sein
Machen sie auch, nur so schnell ( 0,5Mhz) das es so aussieht als wären 
sie high.

von Sam .. (sam1994)


Lesenswert?

Schaut ihr eigentlich den Code an?

Was ich noch schreiben wollte:
Die Pins 0,2,4,6 müssten low sein.
Was soll der Prototyp delay_ms, der nicht definiert ist?

von syn_error (Gast)


Lesenswert?

Vergiss was ich geschrieben habe... mein Hirn ist schon im Bett. 
ZZzzzZzz
Samuel K. hat vollkommen recht!

von S. F. (deffman)


Angehängte Dateien:

Lesenswert?

Hi,

Danke für die schnellen Antworten.

Zu euren Fragen:

1) sorry war etwas missverständlich ausgedrückt. Mit abwechselnd an 
meinte ich Pin0 = high, Pin1 = low, Pin2 = high usw. Ich meinte 
natürlich nicht dass die Pins toggeln.

2) der Prototyp delay_ms war noch aus der Vorgängerversion. Da wollte 
ich die Pins ursprünglich wirklich mit 2s Takt toggeln. Da das aber 
nicht funktioniert hat, habe ich den Code wieder rausgelöscht und wollte 
erst mal versuchen die Pins auf Low zu ziehen. Nur den Prototyp habe ich 
leider vergessen zu löschen.

3) Das Schematic habe ich angehängt. Der Reset pin geht während des 
Programmierens auf Low und danach wieder auf High. Das ist so ja in 
Ordnung oder?

Gruß Stefan

von Sam .. (sam1994)


Lesenswert?

S. F. schrieb:
> 3) Das Schematic habe ich angehängt. Der Reset pin geht während des
> Programmierens auf Low und danach wieder auf High. Das ist so ja in
> Ordnung oder?
ja

Wie hast du die Leds angeschlossen? Der Header hat ja gar kein GND. 
Ansonsten: Programmierst du das richtige Programm (hat mich mal Stunden 
gekostet).

von (Ein) (Gast)


Lesenswert?

Zwischen GND und VCC gehört NAH an den Controller noch ein 
100nF-Kondensator. Ist an dem "Motor-Anschluss" etwas dran? Wenn ja, 
lass das erstmal weg. Was ist IC1? Wie ist es mit dem uC verbunden, das 
geht aus dem Plan nicht hervor.

von S. F. (deffman)


Lesenswert?

Ja da hast du Recht. Das muss ich noch ändern. Aber im Moment messe ich 
direkt an den Controller Pins gegen Ground.

Und ja das sollte passen. Habe ich vorhin auch mal gedacht und alle 
Dateien aus dem Release Ordner gelöscht. Nach dem Compilieren waren die 
Dateien wieder da. Aber hast Recht, das ist mir auch schon passiert :)

Ansonsten, habe ich gerade gedacht ob es Probleme macht, wenn ich die 
höherwertigen Pins des PORTB auf high setzte, da dort ja das SPI 
Interface dran hängt. Nun habe ich spaßeshalber mal das ganze mit PortD 
versucht. Aber kein Unterschied leider.

von (Ein) (Gast)


Lesenswert?

Oh, sorry, mein Hirn scheint auch schon zu schlafen, bei IC1 tippe ich 
auf den Programmierstecker?

von S. F. (deffman)


Lesenswert?

@Ein: Nein an den Motor Pins hängt nichts. Und IC1 ist der Wannenstecker 
für den MySmartUSB light (ISP) Programmer. Und stimmt den 
Blockkondensator an VCC muss ich noch anlöten. Aber das sollte ja nicht 
zu dem Problem führen oder?

von (Ein) (Gast)


Lesenswert?

Kommt stark auf die Umgebung an. Gesehen hab ich so etwas schon, dass 
dann gar nichts ging ;)

von S. F. (deffman)


Lesenswert?

Hallo zusammen,

falls jemand auch mal wieder vor so einem dubiosen Problem steht:

die Lösung war, dass der GND Pin vom Mikrocontroller keinen Kontakt 
hatte. Habe lackisolierten Lack benutzt und der Lack ist wohl beim 
erhitzen nicht richtig verdampft. Ist mir aufgefallen, als ich gerade 
alle Leitungen kontrolliert durchgepiepst habe.

Nachdem Kontakt vorhanden war, hatten die Pins die entsprechende 
Wertigkeit. In Verbindung mit _delay_ms() funktioniert jetzt auch der 
Blinker :)

Danke trotzdem für eure Hilfe! Den Blockkondensator am VCC Pin habe ich 
sicherheitshalber auch noch angelötet!

Schönen Abend noch!
Stefan

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.