Forum: Mikrocontroller und Digitale Elektronik Programmieradapter mit ATtiny44


von Peter R. (dk7ih)


Angehängte Dateien:

Lesenswert?

Hallo!

Folgendes Problem: Ich habe für ein Schulprojekt ein Dutzend der von 
chin. Anbietern massenhaft vertriebenen Programmieradapter (GOOGLE 
"programmer avr attiny44") erworben. Controller ist der eben erwähnte 
ATtiny44. Das Gerät soll sich laut der Verkäufer wie ein UBStiny-Adapter 
verhalten. Und genau das tut er nicht. Wenn man für avrdude den 
Parameter "-c usbtiny" angibt und eine Operation auf dem Adapter 
ausführt, erhält man die Fehlermeldung
1
avrdude error: cannot find USBtiny device (0x1781/0xc9f)
2
avrdude error: unable to open programmer usbtiny on port usb

Und das auf allen Rechnern, die mir zur Verfügung stehen: Linux Mint 
22.1 und Win 11 mit WinAVR.

Auf der Platine ist ein Jumper, wenn man den kurzschließt, kann man den 
Controller über den 6-poligen AVR-Stecker mit einem funktionierenden 
USBtiny  programmieren oder auslesen. Das Auslesen hat ergeben, dass 
eine Firmware eines älteren Projektes installiert ist, das sich "fabisp" 
nennt:

https://fab.cba.mit.edu/content/archive/projects/fabisp/

Ein (zugegeben oberflächlicher) Vergleich der Schaltungen von fabisp und 
dem im Netz veröffentlichten Schaltplan des Chinaadapters (siehe 
Dateianhang) zeigten keine Unterschiede.

Dass es sich um ein Problem mit einer einzelnen der vielen vor mir 
liegenden Programmierplatinen handelt, kann ich ausschließen. Ich habe 
mehrere untersucht und alle zeigten das gleiche Verhalten. Zwei sind 
sogar über 2 Jahre alt, da ich sie seinerzeit gekauft und nie getestet 
hatte, stammen also aus einer anderen Serie bzw. Quelle.

Zur Vervollständigung noch die Rechner- und Softwarekonfiguration:

Heim: Linux Mint 22.1, avr-gcc, avrdude

Schule: Win 11, WinAvr

Ein "original" USBtiny funktioniert an allen Rechnern.

Würde mich über ein paar Hinweise von Leuten freuen, die diesen 
Chinakracher am Laufen haben. Zurückgeben lohnt sich nicht, die 
Versandkosten sind der Kaufpeis x Faktor 2.

Viele Grüße

Peter

von H. H. (hhinz)


Lesenswert?

Peter R. schrieb:
> Auf der Platine ist ein Jumper, wenn man den kurzschließt, kann man den
> Controller über den 6-poligen AVR-Stecker mit einem funktionierenden
> USBtiny  programmieren oder auslesen.

Fuses geprüft?

von Wastl (hartundweichware)


Lesenswert?

Peter R. schrieb:
> Zurückgeben lohnt sich nicht, die
> Versandkosten sind der Kaufpeis x Faktor 2.

Da wird sich die Schule (oder du selbst) wohl gerade noch ein
paar Programmer leisten können die auch wirklich funktionieren.

Die hier z.B. (da gibt's sogar noch einen Adapter dazu von
10-polig auf 6-polig):

https://www.ebay.de/itm/314870492115

Oder doch lieber tage- / wochenlang mit den nicht funktionierenden
Teilen herumärgern und hier auf uc.net herumwinseln?

von Peter R. (dk7ih)


Lesenswert?

H. H. schrieb:
> Peter R. schrieb:
>> Auf der Platine ist ein Jumper, wenn man den kurzschließt, kann man den
>> Controller über den 6-poligen AVR-Stecker mit einem funktionierenden
>> USBtiny  programmieren oder auslesen.
>
> Fuses geprüft?

Yep.

von Peter R. (dk7ih)


Lesenswert?

Wastl schrieb:
> Da wird sich die Schule (oder du selbst) wohl gerade noch ein
> paar Programmer leisten können die auch wirklich funktionieren.
[...]

Es war mir klar, dass irgendjemand hier mit solchen ebenso oberschlauen 
wie sinnlosen Kommentaren zurückkommen wird. Nur dass so schnell ging, 
habe ich nicht auf dem sprichwörtlichen Radar gehabt.

> Oder doch lieber tage- / wochenlang mit den nicht funktionierenden
> Teilen herumärgern und hier auf uc.net herumwinseln?

Was genau ist Dein Problem?

von Harald K. (kirnbichler)


Lesenswert?

Wenn der Controller, der in diesen Adapter gesteckt wird, noch nie 
programmiert war, enthält er natürlich nicht den Bootloader, der nötig 
ist, damit er sich über USB (via Bit-Banging) zu erkennen gibt.

von Peter R. (dk7ih)


Lesenswert?

Harald K. schrieb:
> Wenn der Controller, der in diesen Adapter gesteckt wird, noch nie
> programmiert war, enthält er natürlich nicht den Bootloader, der nötig
> ist, damit er sich über USB (via Bit-Banging) zu erkennen gibt.

Also wäre die Folge, dass ich den Adapter nicht für AVRs benutzen kann, 
die mit HEX-Files geflasht werden sollen, die aus in C geschriebenen 
Programmen generiert wurden und die daher keinen entsprechenden 
Bootloader enthalten?

: Bearbeitet durch User
von Achim H. (pluto25)


Lesenswert?

Peter R. schrieb:
> Ein "original" USBtiny funktioniert an allen Rechnern.

Funktionieren die denn wenn die orginal Software gebrannt wird?

Der Plan ist nicht ganz richtig? 2x D+

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


Lesenswert?

Peter R. schrieb:
> avrdude error: cannot find USBtiny device (0x1781/0xc9f)
Win: Was sagt der Gerätemanager?
Treiber gelanden?
Welchen?

Mit welcher PID/VID meldet er sich an?

von Peter R. (dk7ih)


Lesenswert?

Achim H. schrieb:
> Peter R. schrieb:
>> Ein "original" USBtiny funktioniert an allen Rechnern.
>
> Funktionieren die denn wenn die orginal Software gebrannt wird?

Die "Originalsoftware"? Das verstehe ich nicht. Ich kann mit dem 
"echten" USBtiny alle Controller mit allen möglichen HEX-Files flashen. 
Keinerlei Probleme.

> Der Plan ist nicht ganz richtig? 2x D+

Ah, danke, muss ich nochmal darüber sehen.

von Peter R. (dk7ih)


Lesenswert?

Achim H. schrieb:
> Peter R. schrieb:
>> Ein "original" USBtiny funktioniert an allen Rechnern.
>
> Funktionieren die denn wenn die orginal Software gebrannt wird?
>
> Der Plan ist nicht ganz richtig? 2x D+

Also ich finde in beiden Plänen 2x D+ jeweils an PB2 und PA7...

von Peter R. (dk7ih)


Lesenswert?

Arduino F. schrieb:
> Peter R. schrieb:
>> avrdude error: cannot find USBtiny device (0x1781/0xc9f)
> Win: Was sagt der Gerätemanager?
> Treiber gelanden?
> Welchen?
>
> Mit welcher PID/VID meldet er sich an?

Im Moment habe ich keinen Windowsrechner hier, da Wochenende. Unter 
Linux mit lsusb sehe ich das Device nicht. Der originale USBtiny wird 
dagegen mit dieser Abfrage angezeigt.

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


Lesenswert?

Peter R. schrieb:
> Unter Linux mit lsusb sehe ich das Device nicht.
Dann sieht ihn avrdude auch nicht.
Ladekabel statt Datenkabel erwischt?

von Mario M. (thelonging)


Lesenswert?

Peter R. schrieb:
> mit lsusb sehe ich das Device nicht
1
dmesg -w
 im Terminal starten und dann das Gerät anstecken. Beenden mit Ctrl-C.

Peter R. schrieb:
> H. H. schrieb:
>> Fuses geprüft?
>
> Yep.

Welchen Wert haben sie?

von Peter R. (dk7ih)


Lesenswert?

Arduino F. schrieb:
> Peter R. schrieb:
>> Unter Linux mit lsusb sehe ich das Device nicht.
> Dann sieht ihn avrdude auch nicht.
> Ladekabel statt Datenkabel erwischt?

OK, das war's. :-) Ganz herzlichen Dank!

von H. H. (hhinz)


Lesenswert?

Peter R. schrieb:
>> Ladekabel statt Datenkabel erwischt?
>
> OK, das war's.

Höchststrafe! ;-)

von Sigint 112 (sigint)


Lesenswert?

Wenn das Auslesen geht, dann mit Sicherheit auch ein neues Flashen. Dann 
sollte es doch möglich sein die passende Firmware reinzuladen. Da sollte 
sich doch was finden lassen, dass mit kleinen Modifikationen auf dem 
Tiny44 läuft.

https://github.com/abdontroche/FabISP-USBtinyISP-ATtiny44

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Sigint 112 schrieb:
> die passende Firmware reinzuladen

Lies mal, worauf du geantwortet hast!

Peter R. schrieb:
>> Ladekabel statt Datenkabel erwischt?
> OK, das war's. :-) Ganz herzlichen Dank!

Beitrag #7910589 wurde vom Autor gelöscht.
von Sigint 112 (sigint)


Lesenswert?

Ok.. hab es jetzt gesehen.

P.S.: Wieso gibt es diese blöden Ladekabel überhaupt?!

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Sigint 112 schrieb:
> P.S.: Wieso gibt es diese blöden Ladekabel überhaupt?!

Billiger.

Ich hab' mir so einen einfachen USB-Kabeltester angeschafft und steck' 
da jedes Kabel rein, Ladekabel markiere ich an beiden Enden mit einem 
Strich von einem Lackstift.

In seltenen Fällen möchte man ein Gerät, das eine richtige 
USB-Schnittstelle hat, wirklich nur mit Strom versorgen; wenn man 
beispielsweise einen Arduino mit Programm drauf jemandem vorführen 
möchte, und dazu dessen PC als "Netzteil" missbrauchen will, ist es 
praktisch, wenn nicht der PC gleich anfängt zu rödeln um einen 
Devicetreiber zu installieren.

Aber, ich geb's zu, das ist eine schon an recht langen Haaren 
herbeigezerrte Anwendung.

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


Lesenswert?

Moin..

Bei der Fehlersuche macht es Sinn methodisch vorzugehen. Wenn dabei 
Schritte übersprungen werden führt das schnell zu falschen Annahmen und 
so zu falschen Tipps.
Wobei die Tipps nicht grundsätzlich falsch sein müssen, sondern nur in 
der konkreten Situation wenig angemessen sind.

Dieser Thread zeigt das mal wieder sehr deutlich.

Also:
Bei der Fehlersuche, bitte nur im Schritttempo denken!

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.