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.