Forum: Mikrocontroller und Digitale Elektronik ATTiny45 - alle Ausgänge HIGH - keine ISP mehr?


von Silvan (Gast)


Lesenswert?

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.

von avr (Gast)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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?

von Silvan (Gast)


Lesenswert?

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?

von Gast (Gast)


Lesenswert?

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.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Silvan (Gast)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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

von Silvan (Gast)


Lesenswert?

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

von Silvan (Gast)


Lesenswert?

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.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:

> Das klappt eh nicht, den Resetpin als Ausgang, oder Du mußt Dich vom
> Programmieren aussperren.

Nicht schlecht!

von Silvan (Gast)


Lesenswert?

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