www.mikrocontroller.net

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


Autor: Silvan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Silvan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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-Tutori...)

Mehr fällt mir nicht ein. Kannst noch den Typ deines 
ISP-Programmieradapters angeben und die verwendete Programmiersoftware. 
Vielleicht kennt ein anderer das Problem.

Autor: Silvan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Silvan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Silvan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:

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

Nicht schlecht!

Autor: Silvan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.