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
Wie sieht die Schaltung um den ATTiny45 aus? Kann es sein, dass du ihn überlastet hast, weil du max. Strom aus 8 Pins gleichzeitig entnommen hast?
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
verbose mode: C:\WinAVR\bin>avrdude.exe -C C:\WinAVR\bin\avrdude.conf -p t45 -P com5 -c stk500 v2 -U flash:v:C:\avr_micro\test.hex:a -v avrdude.exe: Version 5.6, compiled on Mar 5 2009 at 09:59:30 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ System wide configuration file is "C:\WinAVR\bin\avrdude.conf" Using Port : com5 Using Programmer : stk500v2 AVR Part : ATtiny45 Chip Erase delay : 4500 us PAGEL : P00 BS2 : P00 RESET disposition : possible i/o RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 6 4 0 no 256 4 0 4000 4500 0xff 0xff flash 65 6 32 0 yes 4096 64 64 4500 4500 0xff 0xff signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 calibration 0 0 0 0 no 2 0 0 0 0 0x00 0x00 Programmer Type : STK500V2 Description : Atmel STK500 Version 2.x firmware Programmer Model: AVRISP Hardware Version: 15 Firmware Version Master : 2.10 Vtarget : 0.0 V SCK period : 129.2 us avrdude.exe: stk500v2_command(): command failed avrdude.exe: stk500_2_ReceiveMessage(): timeout avrdude.exe: stk500v2_program_enable(): bad STK600 connection status: Unknown (0 x64) avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude.exe done. Thank you.
> 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
Peter Dannegger schrieb: > Das klappt eh nicht, den Resetpin als Ausgang, oder Du mußt Dich vom > Programmieren aussperren. Nicht schlecht!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.