Forum: Mikrocontroller und Digitale Elektronik ATtiny85 mit PlatformIO und Arduino Uno als Programmer


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael (oti)


Lesenswert?

Habe ein Arduino Uno Board als Programmer mit Erweiterungsshield 
(Steckfassungen 8,14,20 und 28 polig), so dass ich über die Arduino IDE 
das Board als ISP-Programmer für diverse MCU's benutzen kann, auch z.B. 
für den ATtiny85. Mit der Arduino IDE klappt der Einsatz dieses 
ISP-Programmers problemlos.
Nun nutze ich für größere Projekte PlatformIO. Hier gelingt es mir nicht 
auaf diesen Programmer zuzugreifen.
Im Protokell wird (Vorspann für Build habe ich weggelassen) folgene 
Fehlermeldung zum Schluss angezeigt.
AVAILABLE: usbtiny
CURRENT: upload_protocol = usbtiny
Looking for upload port...
Uploading .pio\build\attiny85\firmware.hex
avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)

Unter Device wird folgender COM-Port angezeigt:
COM5   USB-SERIAL CH340 (COM5)  USB VID:PID=1A86:7523 SER= LOCATION=1-2,
wie auch im Gerätemaner.

Werkle nun auch noch ein bisschen wieder mit Microchip Studio (früher 
ATMEL) rum, befürchte aber das die Programmerzuweisung ähnlich ablaufen 
wird. Bei AVRDude sehe ich noch nicht richtig durch.
Stehe nun auf dem Schlauch und hoffe dass mir jemand einen Link oder 
einen Rat geben kann. Danke und schönen Sonntag noch.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Michael schrieb:
> Mit der Arduino IDE klappt der Einsatz
> dieses ISP-Programmers problemlos.
> .....
> Bei AVRdude sehe ich noch nicht richtig durch.

Die Arduino IDE zeigt dir die AVRdude Kommandozeile, die könntest du 
übernehmen.

: Bearbeitet durch User
von Stefan F. (stefanus)


Lesenswert?

Wenn du den Arduino UNO als Programmieradapter verwendest, dann musst du 
ihn auch entsprechend in der IDE einstellen (ich glaube er ist zum 
STK500 kompatibel). Dein Target ist kein usbtiny, sondern ein ATtiny85.

USBtiny würde hingegen zu einem ATtiny passen, der direkt (ohne 
Programmieradapter) per USB mit dem PC verbunden ist. Dazu bedarf es ein 
paar Bauteile und man muss vorher den usbtiny Bootloader auf den ATtiny 
installiert haben.

von Michael (oti)


Lesenswert?

Danke Euch,

Arduino F. (Firma: Gast) schrieb:
"Die Arduino IDE zeigt dir die AVRdude Kommandozeile, die könntest du
übernehmen."
Das werde ich morgen probieren, auf so etwas hatte ich gehofft. Nur zu 
blöd das zufinden. Gebe Bescheid.

Stefan F schrieb:
richtig: das ist irgendwwie ein STK500
Die Lösung ist die platformio.ini mit

upload_protocol = stk500v1
; each flag in a new line
upload_flags =
    -P$UPLOAD_PORT
    -b$UPLOAD_SPEED
upload_speed = 19200
upload_port = COMX ; Set the port to the Arduino COM Port
ergänzen.

Quelle:
/dariocasciato/attiny85-programming-your-complete-guide-with-arduino-and 
-platformio-37do



Bin nun vollgefressen und habe Feierabend.
Gruß an euch 2 Oti

von Michael (oti)


Lesenswert?

Quelle dev.to wird als SPAM angemeckert

von Michael (oti)


Lesenswert?

Arduino F. schrieb:
> Die Arduino IDE zeigt dir die AVRdude Kommandozeile, die könntest du
> übernehmen.

thx, das hatte ich mir nie angeguckt. stimmt, das Protokoll führt alles 
sauber auf. Ist ein stk500v1 Programmer.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Michael schrieb:
> das Protokoll führt alles sauber auf
Manchmal liegt das Glück ach so nahe, und doch in weiter Fern.

von Michael (oti)


Lesenswert?

so weit so gut, aber unter MicroChipStudio bekomme ich ihn nicht zum 
Laufen.

von Steve van de Grens (roehrmond)


Lesenswert?

Michael schrieb:
> so weit so gut, aber unter MicroChipStudio bekomme ich ihn nicht zum
> Laufen.

Ich würde da nicht viel Zeit investieren. Man kann dafür ja auch externe 
Programme (avrdude + gui) verwenden. Es gibt schlimmeres.

von Michael (oti)


Lesenswert?

das habe ich gestern schon versucht, mit dem gleichem ergebnis.
keine Chance t85 über den UNO und avrdude anzusprechen. gefühlt 10 
Varianten von Programmern ausgesucht. Das über 2 wege avrdude über 
commandozeile und dann mit AVR Burn-O-Mat, da gibt es eine Liste, aus 
der man den Programmer auswählen kann. Setzt Java voraus, ist GNU und 
Oberfläche hat mich beeindruckt.
Den UNO will ich benutzen, das das shield mehre IC-Steckplätze hat und 
die extra 10bzw. 6 polige Verkabelung wegfällt. eben nur IC in Sockel 
und USB-Kabel in PC und das wars.
MicroChipStudio wollte ich verwenden, da ich dort mit der 
Registerprogrammierung besser zurech komme. Auch wenn es ewig her ist, 
das ist wie früher Z80.

von Steve van de Grens (roehrmond)


Lesenswert?

Michael schrieb:
> das habe ich gestern schon versucht, mit dem gleichem ergebnis.

Wenn du uns alles nötigen Infos gibst, können wir die vielleicht helfen.
* Schaltplan
* Fotos vom Aufbau, insbesondere der Stromversorgung
* Screenshot vom Gerätememanager, wo man den COM Port vom 
Programmieradapter (dem UNO) sieht.
* Kommandozeile, wie du avrdude aufgerufen hast (gerne mit Parameter -v)
* Die komplette Ausgabe von avrdude

: Bearbeitet durch User
von Michael (oti)


Lesenswert?

Komme erst am Mo. dazu. Bin im Tal der Ahnunslosen (kein Inet)

von Michael (oti)


Lesenswert?

Steve, danke erstmal. Vllt stelle ich mich auch zu blöd an, habe erstmal 
alles geschrumpft und hier meine Batchdatei:

C:\AVRDude\avrdude.exe -c stk500v1 -P COM7 -p t85 -v 2> 
"C:\AVRDude\protokoll.txt"

Ausgabe von AVRDude war (gekürzt)
Using Port                    : COM7
         Using Programmer              : stk500v1
avrdude stk500_getsync() warning: attempt 1 of 10: not in sync: 
resp=0xe0
avrdude stk500_getsync() warning: attempt 2 of 10: not in sync: 
resp=0xe0
avrdude stk500_getsync() warning: attempt 3 of 10: not in sync: 
resp=0xe0
avrdude stk500_getsync() warning: attempt 4 of 10: not in sync: 
resp=0x00
avrdude stk500_getsync() warning: attempt 5 of 10: not in sync: 
resp=0xe0
avrdude stk500_getsync() warning: attempt 6 of 10: not in sync: 
resp=0xe0
avrdude stk500_getsync() warning: attempt 7 of 10: not in sync: 
resp=0xe0
avrdude stk500_getsync() warning: attempt 8 of 10: not in sync: 
resp=0x00
avrdude stk500_getsync() warning: attempt 9 of 10: not in sync: 
resp=0xe0
avrdude stk500_getsync() warning: attempt 10 of 10: not in sync: 
resp=0xe0
avrdude main() error: unable to open programmer stk500v1 on port COM7

und nun ist das Problem gelöst nach dem Durchforsten der 
Protokolldateien der ArduinoIde und VisualStudioCode. Es liegt an der 
Beaudrate. Mit 19200 Beaud funzt alles.

C:\AVRDude\avrdude.exe -c stk500v1 -P COM7 -p t85 -b 19200 -v 2> 
"C:\AVRDude\protokoll.txt"

ergibt:

avrdude: Version 7.2
         Copyright the AVRDUDE authors;
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

         System wide configuration file is C:\AVRDude\avrdude.conf

         Using Port                    : COM7
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATtiny85
         Chip Erase delay              : 4500 us
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page 
Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size 
#Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- 
------ ----- ----- ---------
           eeprom                 65     5     4    0 no        512    4 
0  4000  4500 0x00 0x00
           flash                  65    10    64    0 yes      8192   64 
128  4500  4500 0x00 0x00
           lfuse                   0     0     0    0 no          1    1 
0  9000  9000 0x00 0x00
           hfuse                   0     0     0    0 no          1    1 
0  9000  9000 0x00 0x00
           efuse                   0     0     0    0 no          1    1 
0  9000  9000 0x00 0x00
           lock                    0     0     0    0 no          1    1 
0  9000  9000 0x00 0x00
           signature               0     0     0    0 no          3    1 
0     0     0 0x00 0x00
           calibration             0     0     0    0 no          1    1 
0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e930b (probably t85)

avrdude done.  Thank you.

Bin nun happy. schöne Woche wünsche ich Dir und allen Mitstreitern

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.