PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit abgepecktem ISP SIProg



donni
30.03.2006, 18:34
Ich habe mir den hier im Forum weit verbreiteten seriellen ISP SI Prog gebaut.

https://www.roboternetz.de/phpBB2/files/simpleprog.gif

Leider funktioniert das Programmieren meines Mega16 nicht. Ich habe schon (fast?) alle Beiträge die ich über die Suchfunktion gefunden habe über den ISP gelesen und schon viele Stunden herrumexperimentiert.

Transistor funktioniert, Resetspannung stimmt. Habe veruscht mit uisp und Ponyprog unter Linux und mit Ponyprog unter Windows zu Programmmieren.

UISP sagt immer das sich der Controller nicht im Resetzustand befindet (was aber auch als Fehlermeldung kommt wenn der ISP nich dran ist)

Ponyprog sagt immer Device missing or unknown Device (-24).

Ich habe es auch schon mit einem 2. Mega16 Controller versucht da ich dachte meiner ist vielleicht schon durch.

Nun weiss ich wirklich nicht mehr weiter und hoffe jemand kann mir einen Hinweis zur Lösung meines Problems geben.

ogni42
30.03.2006, 19:13
Miss mal die Spannung am Reset. Wenn Du den Programmiermodus startest muss der Pegel von 5V auf 0V fallen. Ist das nicht so hat Deine Schaltung einen Fehler oder Du hast keinen Pullup am Reset-Pin des Mega16 (10kOhm genügen).

Bernhard.Erfurt
30.03.2006, 20:25
@donni

ogni42 hat Dir schon einen sehr guten Tipp gegeben.


Wenn ich ergänzen darf:

- ich schalte immer gern eine LED von Vcc gegen RESET-PIN, um zu schauen, ob die Programmierung "läuft"

- schau mal bitte im Datenbaltt nach, ob das Programmieren dieses µC
nicht über andere PINs erfolgen muss, nicht üner MISO MOSI usw,
bei einigen µC ist das nämlich so (da kannste nämlich lange probieren)

- probier bitte mal einen LPT Adapter, die sind etws niederohmiger und die Signale sin "sauberer" (steilere Flanken)

- ich Programmiere nicht mehr über COM, gab zu viele Probleme

- Bei LPT sind ohne weiteres 10 m möglich ;)

- wenn Du andere µC-typen hast, kannst Du auf die zugreifen ?

- ich hoffe, Du verwendest keine virtuellen USB Schnittstellen


Bernhard

Bernhard.Erfurt
30.03.2006, 20:26
Parallel-Adaper:

http://s-huehn.de/elektronik/

donni
30.03.2006, 20:48
Ich habe jetzt schon 2 Wochen daran rumprobiert, den ISP 5 mal überprüft und Softwaremässig alles ausprobiert und 5 Minuten nach deiner Antwort habe ich durch Zufall herrausgefunden wo der Fehler liegt.

Und zwar ist mein das Gehäuse von meinem ISP aus Plastik aber inetlligenterweise mit einem Leitenden Silber/Chromlack lackiert und dieser ist leidend. ](*,) Der Comstecker ist von Conrad habe ihn jetzt nicht im Katalog gefunden aber hier mal ein Bild ich hoffe es ist zu erkennen.

http://madsurf.de/ispgehaeuse.jpg
(Mein VPA compact macht bei Tageslicht bessere Bilder)

Ich danke dir für deine Hilfe und verfluche leitende Lacke.

Bernhard.Erfurt
30.03.2006, 20:50
...manchmal ganz einfach..... grins..... ;)

ogni42
31.03.2006, 14:08
Der Stecker ist leitend. Gelitten hast Du leider :) Ich hab meine SIProg auf offener Platine, das sieht zwar nicht so schön aus, vermeidet aber den Ärger.

donni
31.03.2006, 14:13
hehe ja und ich war auch schon kurz vor der verzweiflung.

Mir ist es eigentlich egal wie der Stecker aussieht nur habe ich Angst das ich irgentwann die Platine in der Hand habe und der Stecker noch am PC klemmt. Daher werde ich den Stecker einfach von innen mit Isolierband bekleben oder mit nichtleitendem Lack lackieren.

ogni42
31.03.2006, 14:18
Es gibt die Steckergehäuse auch aus Plastik (nichtleitend und sogar billiger). Leider haben die aber keinen Schraubanschluss, sondern Schnappverbindungen. Einmal zusammengesteckt lassen die sich nur noch schlecht öffnen.

Travolds
24.12.2006, 15:30
hallo,

frohe weihnachten als erstes :)
ich möchte gerne die feiertage dazu nutzen um mich mit den avrs zu beschäftigen, aber leider stosse ich schon auf das erste problem:

ich habe den SI-Prog mit anghängter Schaltung aufgebaut. Statt der zwei 5,1V Z-Dioden hab ich zwei 5,6V Z-Dioden verbaut (hatte leider nix anderes).

ich versuche einen mega8515 zu programmieren, welcher auf einem protoboard steckt. beschalten ist nur ein 10k Pullup von Reset auf VCC und ein 100nF Kondensator zwischen VCC und GND.

** edit: alt **
wenn ich nun den avr mit dem SI-Prog verbinde und den SI-Prog mit dem PC, dann messe ich auf RESET 4,5V. Wenn ich nun die Versorgungsspannung (4,5V) von meinem Netzeil aktiviere, liegen am Reset-Pin knappe 7V an.

** edit: neu **
so ich habe jetzt gesehen, dass ich das kabel verkehrt angesteckt hatte.jetz hab ich an reset die 4,5V versorgung anliegen. wenn ich avrdude ausführe, zieht es die spannung runter. fehler ist jedoch leider immer noch der selbe.

Leider ist mein Multimeter etwas träge, denn wenn ich mit avrdude versuche ein programm zu übertragen, ändert sich die spannung kurzzeitig am reset-pin, aber das multimeter kann leider nicht so schnell folgen.



avrdude meldet folgendes:
avrdude -p atmega8515 -P /dev/ttyS0 -c ponyser -U flash:w:blink.hex

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.


ist das beschriebene verhalten in ordnung oder hat jemand eine idee woran das problem liegen könnte?

danke schon mal.

lg

SprinterSB
25.12.2006, 08:28
-1- Passt dein ponyser zu deinem Schaltplan? Schau mal in die avrdude.conf bzw. poste mal den entsprechenden Snip oder erweiter die conf auf deinen Adapter.

-2- Z-Diode 5.6 V ist keine gute Idee. Damit bist du ausserhalb der Spez.

Hier mein SI-Prog:

http://freenet-homepage.de/gjl/pub/siprog.png


programmer
id = "siprog3";
desc = "serial port banging, design ponyprog siprog";
type = serbb;
reset = 3;
sck = 7;
mosi = 4;
miso = 8;
;

Bei langen Leitungen kommen noch 100pF dazu an den Signalen (µC-seitig).

Ich arbeite gerade an einer SChaltung und von den Bakterien kommen nur 2.6V. Geht auch da prima!

Wenn du den Reset invertierst müsste oben ein "~3" stehen.

Travolds
25.12.2006, 08:43
hi,

danke für die antwort :)

mein avrdude.conf auszug:




programmer
id = "ponyser";
desc = "design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts";
type = serbb;
reset = ~3;
sck = 7;
mosi = 4;
miso = 8;


wenn ich das richtig verstanden habe, müsste die zum obigen schaltplan passen.

zur z-diode: schlecht - da werd ich wohl vor mittwoch nicht weitermachen können :(
wozu sind denn in dieser schaltung die z-dioden? werden doch in sperrichtung betrieben?

danke und schöne feiertage nochmals :)

SprinterSB
25.12.2006, 08:56
Der ISP funktioniert via SPI-Protokoll. Da ein PC von Hause aus keine SPI-Schnittstelle hat, muss die irgendwoher kommen. Entweder man kauft nen teuren Adapter oder baut was nach.

Der SI-Prog von oben verwenden die COM-Signale dafür, indem die Pins einzeln angesteuert werden (port banging). Man fährt also kein UART-Protokoll auf dem COM (bzw. Parallel-Port).

COM benutzt zur Übertragung Pegel von +9V und -9V. Die -9V werden durch die ZD zu 0V und die +9V über die ZD zu ca. 5.1V gekappt.

Die verbleibenden Spannungsdifferenzen fallen über den Widerständen ab. Diese dürfen nicht zu groß sein, weil die Z-Spannung sonst merklich von der Nominalspannung abweicht. [wiki="Diode"] steht auch was zur Z-Diode.

Die Schalte sollte zur conf passen. -F würd ich auf keinen Fall machen. Das einzige, was du dir damit einfängst, ist evtl. die Fuses zu verstellen...

-- Wie lange ist denn die COM-Leitung?
-- Wie sieht die 5V-Spannungsversorgung aus?
-- nimm mal 10kΩ von VCC nach RESET und 100nF von RESET nach GND.

SprinterSB
25.12.2006, 09:03
Bist du sicher, daß der µC noch funzt? Er hat immerhin 7V (oder so) gesehen!

Er kommt von nem anderen Board. Stehen die Fuses, so, daß du proggen kannst (Werseinstellung bzw interner RC-Oszi mit ISP nicht deaktiviert, nicht gelockt). Evtl braucht er nen Quarz / externen Oszi?

Travolds
25.12.2006, 09:20
hi,

-- com leitung ist ein standard serielles kabel ca.2m auge*pi :)
-- die 5V VCC kommen aus einem Voltcraft PS-152-A Netzteil von conrad
-- die 10k von Reset nach VCC hatte ich bereits drinnen

das mit den 7V macht mir auch sorgen, nur hab ich zZ leider keine Möglichkeit festzustellen ob denn der uC überhaupt noch lebt..
Der uC ist komplett neu sollte also Auslieferungszustand haben.

Leider hab ich wie gesagt keine 5,1V Z-Dioden müsste diese erst kaufen - weiß nicht ob sich weiterprobieren dann überhaupt lohnt?
Widerstände sind ansonsten die richtigen verbaut.

hätte noch einen mega8 hier liegen, aber wenn sich probieren nicht auszahlt könnte er noch einige zeit länger leben :)

danke

SprinterSB
25.12.2006, 09:28
Wie egsagt, der ATmega8515 ist möglicherweise gefrittet......wobei :-k

Der RESET sollte, da er die Spannung für nen HV aufnimmt, bis über 10V vertragen.

Deine Z-Dioden kappen auf ca. 5.6V. Die verbleibenden paar mV fallen über R3 und R4 und die Clamp-Dioden der Ports nach VCC ab.

Wenn RESET 7V gesehen hat und T1 offen war, ist T1 vielleicht gegrillt?

/dev/ttyS0 stimmt auch? Ich hab da keine Ahnung, ab man HW-Flusskontrolle da abstellen muss und wie das geht...

Versuch mal 100pF an den Signalen oder versuch mal ohne die 560pF.

Travolds
25.12.2006, 14:23
-- hab jetzt den 560p ausgelötet und außerdem einen extern quarz mit 7.3728MHz mit jeweils mit einem 22pF kondi an gnd an XTAL1 und XTAL2 angeschlossen.. gleicher Fehler.

-- /dev/ttyS0 nehm ich an, dass es der richtige anschluss ist, da eine sichtlich änderung am reset passiert sobal ich avrdude starte..

-- 100pF hab ich leider keine - bin jetzt am ende mit meinem latein.

noch irgendwelche ideen oder warten und mittwochs die z-dioden tauschen?

danke für die hilfe

Travolds
25.12.2006, 14:59
konnts jetzt nicht lassen und hab versucht den mega8 zu beschreiben .. auch der selbe fehler. noch irgendwelche ideen?

Travolds
25.12.2006, 18:30
noch eine frage:
brauch ich hier ein ausgekreuztes serielles kabel oder eines, dass die leitungen eins zu eins durchführt?

SprinterSB
26.12.2006, 09:42
Das Kabel muss 1:1 sein. Falls es ein gekreuztes Kabel ist, dann musst du dir einen Progger erstellen (in der avrdude.conf) der dies berücksichtigt. Wenn du also ein gekreuztes Kabel hast, musst du die Pin-Nummern für TxD/RxD resp. CTR/RTS vertauschen (soweit überhaupt verwendet).

Ne Ferndiagnose zu machen ist schon ein bisschen wie ne Kristallkugel befragen...

Das einzige, was mir noch einfällt, wäre deinen Progger nochmals zu checken. Vielleicht hast du was falsch gelötet/bestückt, ne kalte Lötstelle oder so.

Die Voltcraft-Teile sind ziemlich mies, häng mal noch nen fetten Kondensator zwischen VCC und GND, also parallel zu dem 100nF Block-Kerko noch nen 100µF Elko.

Nochwas: bist du sicher, daß avrdude deine (geänderte?) *.conf verwendet und nicht weiterhin das Original?

So langsam gehen mir echt die Ideen aus, ist bestimmt was ganz blödes...

nixwissentun
26.12.2006, 11:15
@Travolds

Versucht Du den µC innerhalb des Systems oder extern zu programmieren? Falls letzteres und das in einem Steckbrett:
Bau dir stattdessen einen eigenes kleines Board dafür.
Ich hatte auch enorme Probleme meine Tinys zu brennen- es lag wohl, vermutlich, an meinem Steckbrett, welches einfach nicht ordentlich "schloss" bzw die Beinchen des Tinys(oder auch Sockels) nicht lang genug waren.

MfG,
Dan

Travolds
26.12.2006, 11:57
hi,

danke für die infos.

@nixwissentun:
ich hab mir eine kleine platine geätzt wollte es aber trotzdem zuerst im protoboard probiern, damit ich nicht den sockel umsonst einlöte :)

welche pegel habt ihr denn am programmerausgang?
ich habs jetzt mit zwei verschiedenen rechnern probiert:
vom zweiten hab ich grad alle leitungen, die am uC anliegen würden, durchgemessen (also Leerlauf ohne avrdude auszuführen)::

MISO: 7.15V
MOSI: 2.46V
SCK: 8.43V
RESET: 8.40V (mit 5.6V Z-Diode).

Stimmen die Werte oder ist meine Programmerschaltung nicht in Ordnung?
Müssten denn die Spannungen nicht durch die 5,6V Z-Dioden kleiner werden?

@SprinterSB: werd mal versuchen mit einem 7805 die Spannung zu stabilisieren. Sollte doch funktionieren.

danke vielmals :)

lg

ogni42
27.12.2006, 08:08
Es könnte auch an der Länge des seriellen Kabels liegen. Bei mir hat es mit der SIProg Schaltung (mti dem Transistor) nur mit einem Kabel von knapp 1m Länge funktioniert. Alles darüber ging nur sporadisch.

SprinterSB
27.12.2006, 08:50
Für den 7805 brauchst du am Eingang ca. 7V, weil der nen Dropout von ca. 1.5V hat. Mit U_in = 5V kommst du also nur auf Vcc=3.5V oder so. Dann sind die Signalpegel bei 5V und Vcc bei 3.5V...nicht so toll das.

Bei "langen" Leitungen helfen bei mit wie gesagt 100pF an SCK, MISO, MOSI (jeweils µC-seitig). Ich habe ein 2M langes Kabel, geht prima. Probleme gibt es erst, wenn ne COM-Umschaltbox im Weg ist. 560pF gehen vielleicht auch, kommen mir aber etwas groß vor.

Für den Anfang sind da Steckbretter ganz brauchbar, dann brauchst du nicht immer umlöten.

Wenn das die Spannungen µC-Seitig sind: Ja, die sollten kleienr sein. Hast du die Z-Dioden gegrillt beim Löten? Oder ist nur die Batterie deines V-Meters leer?

Travolds
27.12.2006, 14:59
hi,

@SprinterSB:
das mit dem 7805 wusst ich schon :) kann ja das Voltcraft-NT ein bisschen aufdrehn damits funktioniert :)

@alle:
hab jetzt festgestellt, was der blöde fehler war, denn Georg-Johann angesprochen hat. Ich hab einen Gender-Changer verwendet, der hat mir offensichtlich alle pins vertauscht (hatte hier einen Sub-D stecker auf der Platine verbaut und dadurch den Gender-Changer verwendet).
Obs mit den 5,6V Dioden funktionieren würde hab ich jetz mal vorerst nicht getestet.

Hab den Programmer jetzt mal auf Lochraster neu aufgebaut mit richtigen Dioden und der richtigen Sub-D Buchse und es hat auf anhieb geklappt. Auch mit dem 2m Kabel und ohne die Kondensatoren am Ende.

Leider hatte ich mich auf den Changer verlassen und dadurch das Problem selber verursacht.

Vielen Dank für die Hilfe möcht ich noch sagen :)

btw. ich häng mal 2 fotos an vom programmer und den ersten leuchtenden leds :)