hi Leute!
Ich bin Anfänger und experimentiere gerade mit dem ATTiny45 ein
bisschen. Ich musste leider sehr früh aufhören, da ich scheinbar einen
Fehler gemacht habe:
Ich wollte eine LED zum blinken bringen und habe deshalb alle Ports auf
Ausgang gestellt, wie es im AVR-GCC Tutorial beschrieben ist. Da ich zu
faul war im Datenblatt nach der Nummer des Ports zu suchen und mir die
hex nummer auszurechnen, hab ich einfach alle Ports (!) auf HIGH
gesetzt.
also: PORTB = 0xff
Die Profis ahnen wohl schon, was das Problem ist: ich kann ihn nicht
mehr Programmieren!
Da ich einen ISP verwende, die Eingänge nun allerdings Ausgänge sind,
kann ich ihn nicht mehr flashen.
Meine Frage: Ist der ATTiny noch mit 12V-Brennvorgang (den ich nicht
durchführen kann) zu retten, kann ich ihn wegwerfen oder spinne ich und
er ist mit ISP noch beschreibbar?
Danke für die Antworten.
Hallo Silvan,
was du im Programm machst ist für das Programmieren mit ISP
ohne Bedeutung.
Porteinstellungen gelten bei Reset nicht mehr.
Der Atmel wird über den Resetpin in den ISP-Mode versetzt.
Ein Ausschalten dieser Funktion oder ähnliche Manipulationen
gehen nur über die Fuse-Bits beim Programmieren.
Dann hilft meist nur noch HV-Programmieren.
Wenn du also nichts an den Fuses gemacht hast, liegt dein Fehler
wo anderst!
avr
Es würde mich wundern, wenn er überlastet wäre. Ich hab an Pin PB5 einen
Widerstand (220) und eine LED (ich glaube 2mA) die restlichen pins sind
frei.
Einzige Ausnahmen sind natürlich die für Versorgungsspannung und
Programmierung (inkl. Reset).
Was muss ich denn gegen Reset schalten? GND, oder?
Reset gegen GND erzeugt einen Reset und hält den Tiny auch dort fest.
Über 10 k an VCC ist üblich. So kann der Programmer oder ein Taster
gegen GND den Restpin bedienen.
Silvan schrieb:
> Es würde mich wundern, wenn er überlastet wäre. Ich hab an Pin PB5 einen> Widerstand (220) und eine LED (ich glaube 2mA) die restlichen pins sind> frei.
Wenn es eine Low-Current LED (2mA) ist, kann die schon hin sein.
(5V-typ.2V)/220 Ohm = 13,6mA
http://www.mikrocontroller.net/articles/LED#Vorwiderstand> Einzige Ausnahmen sind natürlich die für Versorgungsspannung und> Programmierung (inkl. Reset).> Was muss ich denn gegen Reset schalten? GND, oder?
Nein. Offen lassen, d.h. nur Programmierleitung zum ISP-Stecker oder wie
im AVR-Tutorial 10k Pull-up gegen Versorgungsspannung
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Selbstbau)
Mehr fällt mir nicht ein. Kannst noch den Typ deines
ISP-Programmieradapters angeben und die verwendete Programmiersoftware.
Vielleicht kennt ein anderer das Problem.
Programmer: Dimex ISP (so'n teil im Plexiglasgehäuse, von eBay)
Software: avrdude
daran sollte es eigentlich nicht liegen, ging vorher ja auch.
Mit der LED hab ich mich wohl vertan. Wird 20mA sein. Wenn ich den
ATTiny nur an Stromversorgung anschliesse, leuchtet sie -> also nicht
kaputt.
ich muss irgendwo anders einen Fehler gemacht haben...
Silvan schrieb:
> Software: avrdude
Hat einen verbose Modus bei dem man mitprotokollieren kann, wie der
Programmiervorgang abläuft und was an Fehlern/Meldungen auftritt. Das
Protokoll könntest du anhängen.
> Mit der LED hab ich mich wohl vertan. Wird 20mA sein. Wenn ich den> ATTiny nur an Stromversorgung anschliesse, leuchtet sie -> also nicht> kaputt.
Die LED dürfte nicht leuchten.
Wenn dein Blinkprogramm läuft, müsste sich blinken.
Wenn der AVR im RESET ist, müsste sie dunkel sein (Pins Tristate).
Wenn kein Programm im AVR ist (Chip Erase) müsste sie dunkel sein (Pins
Tristate).
ich weiss nicht mehr genau, wie das Programm aussah, da ich es nachdem
es nicht funktionierte deutlich überarbeitet habe. Es kann also sein,
dass sie so schnell blinkt, dass man keinen Unterschied feststellt.
das gibt avrdude aus:
avrdude.exe: stk500v2_command(): command failed
avrdude.exe: stk500_2_ReceiveMessage(): timeout
avrdude.exe: stk500v2_program_enable(): bad STK600 connection status:
Unknown(0x64)
avrdude.exe: initialization failed, rc=-1
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.
avrdude.exe: Expected signature for ATtiny45 is 1E 92 06
verbose probiere ich gleich
> Double check connections
Verbindungen prüfen. Ist der Dimex ISP an com5 oder wurde dem was
anderes zugeteilt?
Und dieser Meldung auf den Grund gehen:
> Vtarget : 0.0 V
Wer versorgt deinen ATTiny45 - der Programmieradapter oder eine externe
Versorgung.Was ist laut Doku des Dimex ISP erforderlich?
Silvan schrieb:
> Es würde mich wundern, wenn er überlastet wäre. Ich hab an Pin PB5 einen> Widerstand (220) und eine LED (ich glaube 2mA) die restlichen pins sind> frei.
Das klappt eh nicht, den Resetpin als Ausgang, oder Du mußt Dich vom
Programmieren aussperren.
Dafür wird der 220 Ohm verhindern, daß der Programmer Reset auf low
zieht.
Das AVR-ISP erlaubt nur minimal 4,7k.
Peter
Oh Gott, was hab ich da nur verbockt. Gut, dass es jemand gemerkt hat.
Dass die LED an PB5 ist hab ich nicht direkt im Datenblatt gelesen,
sondern aus dem Gedächtnis geholt. Ergo: Pin PB5 is natürlich nicht
richtig!
Danke, Peter Dannegger!
Es ist übrigens PB4.
Stefan B. schrieb:
>Verbindungen prüfen.
Sorry, das hätte ich gründlicher machen sollen.
Es lag nähmlich am Breadboard - Wackelkontakt - - -
Tut mir leid, dass ich eure Zeit verschwendet habe. :(
Ich hoffe ihr nehmt die Entschuldigung an.
Danke an alle
Silvan