Forum: Mikrocontroller und Digitale Elektronik Problem mit Bierdeckel-Programmer


von R. B. (dxx255)


Lesenswert?

Hallo
Ich möchte einen kleinen ISP programmer bauen und habe dazu die 
Schaltung aus dem Artikel zum 
Bierddeckelprogrammer(http://www.mikrocontroller.net/articles/Bierdeckel-Programmer) 
nachgebaut. Ich habe jedoch ein Problem mit der Software. Ich habe diese 
Datei(http://guloshop.de/f/sources/guloprog_src_0_3.zip) heruntergeladen 
und entpackt, dann make main.hex gefolgt von make flash und make fuses 
aufgerufen. Dann habe ich den ATtiny in die Schaltung gesteckt und diese 
an den PC angeschlossen. Es wird jedoch kein neues USB Gerät erkannt und 
das ist mein Problem!
Bitte um Hilfe

P.S.: Ich verwende Ubuntu

: Bearbeitet durch User
von D. V. (mazze69)


Lesenswert?

Ein Foto vom Aufbau würde mehr verraten.

von R. B. (dxx255)


Angehängte Dateien:

Lesenswert?

Fotos der Schaltung finden sich im Anhang

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Den in diesem Programmiergerät verbauten µC kannst Du nur mit einem 
anderen Programmiergerät programmieren, nicht aber im Programmiergerät 
selbst, denn das funktioniert ohne programmierten µC noch nicht.

: Bearbeitet durch User
von R. B. (dxx255)


Lesenswert?

Das war mir klar! Ich habe ihn mittels einem Arduino Uno mit ArduinoISP 
programmiert --> ohne Fehlermeldung. Wenn meine Schaltung keine Fehler 
aufweist und ich auch keine Fehlermeldung beim programmieren bekomme, 
woran liegt es dann? Habe ich einen Schritt ausgelassen (make main.hex, 
make flash make fuses)?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Roman B. schrieb:
> Das war mir klar!

Ah.

Nun, dann wirst Du ein Messgerät nehmen müssen und Deinen Aufbau 
Verbindung für Verbindung durchmessen, um zu sehen, wo es Abweichungen 
zur Schaltungsvorlage gibt.

von D. V. (mazze69)


Lesenswert?

Falls der irgendwann mal funktionieren sollte :-), willst du den dann 
so benutzen, oder doch lieber gleich eine vernünftige Platine dafür 
machen?

von R. B. (dxx255)


Lesenswert?

Habe ein Layout mit Eagle gezeichnet. Ich möchte daraus meine erste 
Platine ätzen. Ich habe nur daheim keinen Laserdrucker, deshalb muss ich 
bis Dienstag warten! Aber es müsste doch auch so funktionieren, ich 
finde einfach keinen Fehler!

von R. B. (dxx255)


Lesenswert?

Wie würde das USB Device eigentlich heißen?

von D. V. (mazze69)


Lesenswert?

Hast du alle Verbindungen auf Leitfähigkeit und auf Kurzschlüsse 
zueinander gecheckt?

von R. B. (dxx255)


Lesenswert?

Ich finde einfach keinen Fehler! Keine fehlerhaften Lötbrücken, keine 
falsch verbundene Leitungen,...

von R. B. (dxx255)


Lesenswert?

Neu eingesteckte Geräte kann ich mit dmesg anzeigen, oder? Nach jedem 
Verbinden von PC und Platine kommt bei der dmesg ausgabe ein Eintrag 
hinzu. Dieser sieht so aus:
[12155.877581] usb 2-1.1: new low-speed USB device number 60 using 
ehci-pci
Die Nummer (in diesem Fall 60) steigt immer um 1. Es kommt allerdings 
kein Eintrag unter /dev dazu! Muss ich vielleicht noch irgendwelche 
Treiber installieren?

: Bearbeitet durch User
von David Z. (Gast)


Lesenswert?

versuchs mit lsusb

von R. B. (dxx255)


Lesenswert?

Keine neuen Geräte mit lsusb! Mit dmesg bekomme ich auch folgende 
Fehlermeldungen:
[12974.849466] usb 2-1.1: device not accepting address 85, error -32
bzw.
[12909.565448] usb 2-1.1: device descriptor read/64, error -32
 Die Fehlermeldungen kommen aber erst nach einer gewissen Zeit und mehr 
oder weniger abwechselnd.
Falls ich das Ganze nicht zu laufen bringe, kann ich dann den Attiny 
nochmal neu programmieren und in eine andere Schaltung einbauen? Habe 
gelesen, dass bei diesem Projekt eine Fuse gesetzt wird, die das 
neuprogrammieren ohne HV-Programmer unmöglich macht. Stimmt das?

: Bearbeitet durch User
von R. B. (dxx255)


Lesenswert?

Wie steht es mit Treibern?

von David Z. (Gast)


Lesenswert?

Ein neues USB Gerät wird auch ohne Treiber mit lsusb angezeigt.

Sind deine Zenerdioden richtig herum?

Ja du bräuchtest einen HV-Programmer, weil du deinen Reset Pin als I/O 
Pin verwendest.

von Blende22 (Gast)


Lesenswert?

Probier 'nen anderen Controller! Wirkt oft Wunder! ;-)
(Ich hatte ein ähnliches Problem mit einem Attiny 2313.)

von R. B. (dxx255)


Lesenswert?

Der Pluspol der Zenerdioden ist auf GND, der Minuspol ist jeweils auf D- 
bzw. D+

von Blende22 (Gast)


Lesenswert?

Blende22 schrieb:
Probier 'nen anderen Controller! Wirkt oft Wunder! ;-)
(Ich hatte ein ähnliches Problem mit einem Attiny 2313. Inhalt löschen!)

von Blende22 (Gast)


Lesenswert?

> Der Pluspol der Zenerdioden ist auf GND, der Minuspol ist jeweils auf D-
Du meinst, dass die Anode an Masse geht? Das wäre verkehrt rum!
Ansonsten ist Dein Aufbau hübsch.

von Blende22 (Gast)


Lesenswert?

Blende22 schrieb:
>> Der Pluspol der Zenerdioden ist auf GND, der Minuspol ist
> jeweils auf D-
> Du meinst, dass die Anode an Masse geht? Das wäre verkehrt rum!
> Ansonsten ist Dein Aufbau hübsch.

Jetzt habe ich mir selbst ein Ei gelegt! ;-) *schäm!*
Ja! Passt schon!

von Helmut S. (helmuts)


Lesenswert?

Blende22 schrieb:
>> Der Pluspol der Zenerdioden ist auf GND, der Minuspol ist jeweils auf D-
> Du meinst, dass die Anode an Masse geht? Das wäre verkehrt rum!
> Ansonsten ist Dein Aufbau hübsch.


> Der Pluspol der Zenerdioden ist auf GND, der Minuspol ist jeweils auf D-

Das ist schon richtig aber warum soll da eine ein Z-Diode mit mehreren 
10pF hin. Mach sie weg.
Wenn schon einen Schutz, dann mit speziellen "USB-Schutzdioden". Die 
haben ganz wenige pF.

von Blende22 (Gast)


Lesenswert?

> Wenn schon einen Schutz, dann mit speziellen "USB-Schutzdioden". Die
> haben ganz wenige pF.
In dem Fall kannst Du Kapazitäten auch ganz weglassen! Der Fehler liegt 
in Deinem Fall bestimmt woanders!

von Helfender (Gast)


Lesenswert?

>> dann mit speziellen "USB-Schutzdioden"

das sind keine Schutzdioden, sondern sie begrenzen die Spannung auf dem 
USB Bus auf 3,6V. Also drinnen lassen.

von Blende22 (Gast)


Lesenswert?

>  Also drinnen lassen.
und richtig einbauen.
(Die Definition hat mich irritiert)

von D. V. (mazze69)


Lesenswert?

Mit Tiny45:
http://www.recursion.jp/avrcdc/cdc-spi.html
Der läuft bei mir schon jahrelang.

von USBASP (Gast)


Lesenswert?

Das Problem liegt wohl eher in der Software. USB ist relativ pingelig 
was das Timing angeht. Hier wird ein Software USB (V-USB) verwendet, 
zudem noch ohne externem Quarz. Da sind Probleme sozusagen 
"vorprogrammiert".
Jeder 2€ USBASP aus China verwendet einen ATMega8 mit 12MHz Quarz. 
Beides beruht übrigens auf der Software von Fischl. Mit den China 
Teilen, die man natürlich auch teurer selber bauen kann, habe ich noch 
keine Probleme gehabt.

von Blende22 (Gast)


Lesenswert?

Eben! Unverwüstbar.

von Blende22 (Gast)


Lesenswert?

> Mit den China
>Teilen, die man natürlich auch teurer selber bauen kann, habe ich noch
>keine Probleme gehabt
Ich auch nicht! Die liefern prompt und günstig und sind äusserst 
zuvorkommend. In dieser Hinsicht könnten sich etliche einheimische 
Firmen Vieles abpausen! Auch, was die Versandbeträge betrifft! Wir haben 
zwar keinen Zoll mehr, aber dafür Strassenräuber in Form von 
Versandgebühren. Wenn man in China direkt bestellt, schaut es noch 
anders aus..

von matrixstorm (Gast)


Lesenswert?

Hi.

Sollte es mit dem Bierdeckelprogrammer nichts werden, so kannst du dir 
auch ein tinyUSBboard (http://matrixstorm.com/avr/tinyusbboard/) 
aufbauen.

Das hat zahlreiche Zusatzfunktionen und kann auch als USBasp Programmer 
verwendet werden (ist als eine der Beispielfirmwares erhaeltlich).

Software (Firmware und Beispiele) ist vorkompiliert verfuegbar.
Die Defaultfirmware arbeitet zudem als Selbsttest.
Die Feherquellen reduzieren sich somit (fuer DIY Veraeltnisse) auf ein 
Minimum.

MfG

von Blende22 (Gast)


Lesenswert?

Nimm das:
http://shop.myavr.de/Topseller/mySmartUSB%20light.htm?sp=article.sp.php&artID=200006
Ist bestimmt kein verkehrter Ratschlag!
Geht von USB auf ISP

von R. B. (dxx255)


Lesenswert?

Also: neuer Chip mit make flash und fuses --> selbe zwei fehlermeldungen
      neuer Chip mit make flash --> keine Verbesserung

Trägt das USB Device den Namen USBasp? Falls ja, wurde es zwei mal 
erkannt! Jetzt jedoch nicht mehr --> möglicherweise gibt es einen 
Wackelkontakt.

Wo kriege ich einen HVISP Programmer? Kann ein Arduino Uno das?

von R. B. (dxx255)


Lesenswert?

Ich werde versuchen den Fehler weiterhin zu finden, aber ich glaube ich 
werde mir einen Programmer aus China bei Ebay bestellen oder einen HVISP 
Programmer kaufen, jenachdem was soetwas kostet!

: Bearbeitet durch User
von D. V. (mazze69)


Lesenswert?


von USBASP (Gast)


Lesenswert?


von R. B. (dxx255)


Lesenswert?

Habe den Wackelkontakt gefunden, allerdings nicht behoben! Wenn man den 
Daumen auf die Pins der USB Buchse legt, wird das Gerät erkannt.
USBasp und www.fischl.de wird angezeigt! Woran könnte das liegen? Ich 
habe nämlich auch weiterhin keine Ahnung, wo ich nachbessern muss! Danke 
für die Links! Wenn der Bierdeckelprogrammer weiterhin nicht 
funktioniert, werde ich auf ebay einen usbasp bestellen.

von D. V. (mazze69)


Lesenswert?

Kannst du von Pin2 der USB-Buchse einen Widerstand von etwa 1,5K Ohm 
nach Vcc messen?

von R. B. (dxx255)


Lesenswert?

Nein. Unter welcher Bezeichnung würde das Ding unter /dev auftauchen?

von D. V. (mazze69)


Lesenswert?

???
Pin2 am USB ist derjenige, welcher über einen 68 Ohm Widerstand an Pin2 
des µC gehen müsste.

von D. V. (mazze69)


Lesenswert?

Vergiss, was ich geschrieben habe. Ich habe mich auf die Schaltung auf:
http://www.recursion.jp/avrcdc/cdc-spi.html
bezogen.

von Simon S. (-schumi-)


Lesenswert?

Roman B. schrieb:
> Nein. Unter welcher Bezeichnung würde das Ding unter /dev auftauchen?

Mit garkeiner, zumindest macht das mein USBasp so. Macht aber nix, 
kannst ihn trotzdem benutzen (im Makefile als Gerät "usbasp" und als 
Verbindung "usb" eintragen)

(Eigentlich müsste er irgendwo in /sys zu finden sein, hab ihn aber noch 
nicht gefunden..)

[EDIT]
Die passenden Rechte vorausgesetzt. Dazu einen Datei 
/etc/udev/rules.d/99-USBasp.rules anlegen:
1
# USBasp - USB programmer for Atmel AVR controllers
2
# Copy this file to /etc/udev/rules.d so
3
4
# According to http://www.ladyada.net/make/usbtinyisp/avrdude.html
5
# The udev examples given don't work on some systems as the SYSFS parameter is deprecated.
6
# The following rule works on recent Ubuntu systems and should probably work on other newer Linux systems:
7
SUBSYSTEM=="usb", ATTR{product}=="USBasp", ATTR{idProduct}=="05dc", ATTRS{idVendor}=="16c0", MODE="0666"
an/abstecken und sollte gehen

: Bearbeitet durch User
von R. B. (dxx255)


Lesenswert?

Wozu brauche ich diese Datei? Wenn ich das Ding anstecke(und den Daumen 
auf die Pins lege), schreibt dmesg:
[24448.544461] usb 2-1.1: Product: USBasp
[24448.544466] usb 2-1.1: Manufacturer: www.fischl.de

Allerdings bekomme ich eine Fehlermeldung, wenn ich avrdude aufrufe:
avrdude -p m328p -c usbasp -t
avrdude: Warning: cannot query manufacturer for device: error sending 
control message: Operation not permitted
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 
pid=0x5dc

avrdude done.  Thank you.

: Bearbeitet durch User
von Simon S. (-schumi-)


Lesenswert?

Genau deswegen:
Roman B. schrieb:
> control message: Operation not permitted

von R. B. (dxx255)


Lesenswert?

Wenn ich avrdude als root ausführe schreibt er : Broken Pipe

Hab die Datei angelegt. Muss ich jetzt neustarten?

von R. B. (dxx255)


Lesenswert?

So: Nach einem Neustart schreibt avrdude jetzt immer: Broken Pipe stat 
Operation not permitted

von Simon S. (-schumi-)


Lesenswert?

Roman B. schrieb:
> Wenn ich avrdude als root ausführe schreibt er : Broken Pipe
Kenne ich nicht.. ich kenne nur:
1
avrdude -p attiny2313 -P usb     -c usbasp    -U flash:w:main.hex 
2
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc
3
4
avrdude done.  Thank you.
-> USBasp nicht angesteckt / funktioniert nicht

und
1
avrdude -p attiny2313 -P usb     -c usbasp    -U flash:w:main.hex 
2
3
avrdude: error: programm enable: target doesn't answer. 1 
4
avrdude: initialization failed, rc=-1
5
         Double check connections and try again, or use -F to override
6
         this check.
7
8
9
avrdude done.  Thank you.
-> Keinen zu programmierenden AVR erkannt.


> Hab die Datei angelegt. Muss ich jetzt neustarten?
Ab- und wieder anstecken reicht

von R. B. (dxx255)


Lesenswert?

Danke vielmals!!! Jetzt funktionierts!!! Zwar nur wenn man einen Finger 
auf die USB Pins legt, aber es funktioniert!! Hat noch jemand eine Idee, 
woran das liegen könnte?

von Roman B. (Gast)


Lesenswert?

???

von USBASP (Gast)


Lesenswert?

Ich würde mal ausprobieren ob es unbedingt ein Finger sein muß um die 
Schaltung zum laufen zu bringen. Vielleicht tuns auch z.B. 
Kondensatoren. Einen Finger in die Schaltung einzulöten ist für mich 
keine Lösung.
Vielleicht kann dir auch Markus Weber (Firma: guloshop.de) (m-w) helfen.

Viel Spaß weiterhin.

von Simon K. (simon) Benutzerseite


Lesenswert?

Wie viele Zwischenfälle muss es denn noch geben, damit diese leidige und 
sehr inkompatible AVR-USB Bastelei endlich verschwindet?

von Conny G. (conny_g)


Lesenswert?

Masse beim USB angeschlossen, also auch ans Gehäuse?

von R. B. (dxx255)


Lesenswert?

Danke!! Das war der Fehler! Die Masse war nicht am Gehäuse 
angeschlossen! Das sollte man aber in den Artikel reinschreiben, es 
steht nämlich nirgendwo!

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.