attiny13 mit Tasten programmieren

Gast #4790099
Lesenswert?

Hallo,
aus Interesse habe ich mich mit der ISP SPI-Programmierung eines 
ATtiny13 20-PU mit Tasten beschäftigt. -> 
www.elektronik-labor.de/AVR/KursAssembler/T13asm13.html
Ich habe die Tasten korrekt entprellt, MISO antwortet richtig auf die 
Anfragen. Alles mit 5V durchgeführt. Programmieren wollte ich die 
Tabelle, die die MISO - LED einmalig einschaltet und eingeschaltet 
lässt.
Wenn ich jedoch nach dem letzten Bit die Reset-Brücke nach GND entferne, 
geht die LED aus. Zur Sicherheit habe ich sogar einen Pull-Up-Widerstand 
von Reset nach +5V mit 10k ausprobiert.
Könnt ihr mir irgendwie helfen? Muss ich nach dem Eingeben der binären 
Zustände irgendwie einen "Stopp"-Befehl" eingeben? Oder nur die 
Reset-Brücke entfernen? Ich bin total ratlos...
Vielen Dank für jede Hilfe im Voraus..
Pascal
Gast #4790211
Lesenswert?

> ...fehlgeschlagenen Versuch so umprogrammiert ...
Könnte sein.
Wahrscheinlicher aber ist es, dass beim Eintippen der 256 bits ein 
Fehler passiert ist.

> noch eine Frage ...
Ja, da es sich um die Page 0 handelt.


Erlauben Sie mir die Frage, ist es wirklich Ihre Absicht, 
Maschinensprache von Hand einzutippen? Das wird wirklich ausgesprochen 
mühsam und frustrierend, worauf ja auch der Autor der Kurses bereits 
hingewiesen hat.
  Ich habe so etwas vor etwa drei Jahrzehnten auf einem 8080/8085 
gemacht, für einen AVR8 sehe ich es zum ersten Mal; versuche aber gerne, 
Sie, so gut ich eben kann, zu unterstützen.
Gast #4790237
Lesenswert?

Ja, das ist meine Absicht. Vielen Dank für Ihre Unterstützung. Ich werde 
zu Hause den ATtiny13 austauschen. Da MISO immer richtig geantwortet 
hat, vermute ich, dass alle Werte richtig eingegeben worden sind. 
Außerdem habe ich das jetzt schon 6mal probiert. Sobald ich das versucht 
habe werde ich mich wieder melden (ca. in ½h)
Gast #4790357
Lesenswert?

Pascal schrieb:
> Was macht der Typ am Ende, nachdem der Befehl zum Laden in den Flash
> Speicher gegeben wurde?

Der uC wartet auf weitere Programmierbefehle, solange bis Reset 
freigegeben wird.


Pascal schrieb:
> Bei Adresse 1 habe ich anscheinend einmal beim HIGH-Bit eine 1 nicht
> eingegeben:
> statt
> 10011010
> ist
> 00110100
> erschienen

D.h. aus sbi wurde cpi; wenn das beim ersten Befehl passierte, hätte 
die LED noch ganz schwach leuchten müssen (Stichwort pullup), beim 
zweiten Befehl bleibt die LED aus.
Gast #4790459
Lesenswert?

Respekt.

Erinnert mich an meinen ersten Urlader fuer den Z80.
Das war ein 74154 (1 aus 16-Dekoder) mit einer Handvoll Dioden
die einen Urlader fuer den Z80 enthielten.
Da konnte Mann bitweise fuer die Adresse ein Highbyte, dann ein
Lowbyte eintippen und dann die Daten in den RAM.
Natuerlich auch bitweise.

Viel Erfolg.
Gast #4790755
Lesenswert?

> kein Erfolg
Geht die Verifizierung schief, d.h. das Ausgelesene weicht vom 
Geschriebenen ab, oder bleibt nach dem Entfernen der Reset-Brücke die 
MISO-LED aus?

Sie verwenden den Schaltplan von "3.Tag", ggf. ohne Beschaltung von PB3 
und PB4? Auf jeden Fall erstmal ohne den Piezo-Piepser an PB1.
Gast #4790845
Lesenswert?

Hallo,
melde mich mal, da ich mich mit diesem Thema interessen halber mal 
befasst habe.
Also es gibt keine prellfreien Taster, selbst „Impulstaster“ haben bei 
mir öfters Probleme verursacht.
Darum habe ich mir ein kleines  Tool entwickelt:
http://www.elektronik-labor.de/AVR/KursAssembler/T13asm13.html
(ganz unten „P1- Bascom.zip“)
Eine Stufe höher:
http://www.elektronik-labor.de/AVR/T13contest/HexEditor.html
Noch eine Stufe höher:
http://www.elektronik-labor.de/AVR/PalmAVRasm.html
Wenn es schief geht:
http://www.elektronik-labor.de/Arduino/Fuses.html

Sicher wird man keine großen Programme eingeben, aber man schaut mal 
hinter die „Kulissen“
Viel Erfolg
H. Fritzsch
Gast #4790879
Lesenswert?

> Auch hier brauchte ich mehrere Anläufe bis MISO richtig antwortete
Wie kann man einen Pin Miso nennen, wenn doch gar kein SPI genutzt wird?

Der komplette Verzicht auf Kondensatoren....(außer entprellen)
Ist das modern?
Selbst der Regler vom 9V Block auf Betriebspannung hat keine...

Sorry, aber wäre DAS Tutorial mein Einstig in die AVR Welt gewesen, dann 
hätte ich sicher aufgegeben und die Brocken frustriert in die Ecke 
geworfen.
Gast #4791149
Lesenswert?

an Pascal:

Also bei mir klappt das (dann endlich im dritten Versuch); wenn auch, in 
Ermangelung eines ATtiny13, auf einem 85.
  Wenn man eine effiziente LED hat, reicht es auch aus, nur den internen 
Pullup einzuschalten mit /sbi PORTB,1/; lässt man dann den uC noch durch 
das (sonst gelöschte) Flash voller FFs rasen, reduziert sich das 
Programmieren auf:

Reset -> GND
AC530000  Programming Enable
AC800000  Chip Erase
400000C1  sbi PORTB,1  (low)
4000009A    - " -      (high)
4C000000  Write Program Memory Page 0
Reset freigeben
Gast #4791278
Lesenswert?

Ich habe es noch nicht ausprobiert, allerdings fällt mir folgendes auf:

S. Landolt schrieb:
> reduziert sich das Programmieren auf:
>
> Reset -> GND
> AC530000  Programming Enable
> AC800000  Chip Erase
> 400000C1  sbi PORTB,1  (low)
> 4000009A    - " -      (high)

> 4C000000  Write Program Memory Page 0
Laut diesem Umrechner 
(binaer-dezimal-hexadezimal-umrechner.miniwebapps.de)
entspricht
4C000000
in binär
1001100000000000000000000000000

Allerdings steht in der Tabelle
01001100000000000000000000000000
#4791290
Lesenswert?

Pascal schrieb:
> Laut diesem Umrechner
> (binaer-dezimal-hexadezimal-umrechner.miniwebapps.de)
> entspricht
> 4C000000
> in binär
> 1001100000000000000000000000000
>
> Allerdings steht in der Tabelle
> 01001100000000000000000000000000

Der Umrechner lässt einfach die führende 0 weg und zeigt nur 31 Stellen. 
Mathematisch ist das OK, aber ob das bei der Eingabe der Daten Probleme 
macht, ist eine andere Sache.
Gast #4791297
Lesenswert?

Reset -> GND
AC530000:  10101100 01010011 00000000 00000000
AC800000:  10101100 10000000 00000000 00000000
400000C1:  01000000 00000000 00000000 11000001
4000009A:  01000000 00000000 00000000 10011010
4C000000:  01001100 00000000 00000000 00000000
Reset freigeben

Die Blanks dienen natürlich nur zur besseren Übersicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren