Forum: Mikrocontroller und Digitale Elektronik Probleme mit BASCOM <-> USBASP


von Marcus B. (atversatile)


Angehängte Dateien:

Lesenswert?

Das Gerät funktioniert von der Hardwareseite Einwandfrei. ( keine 
Lötbrücken etc.)
Unter Windows ( XP SP3 ) meldet es sich auch korrekt als USBASP an, und 
fragt nach dem Treiber. Nachdem dieser Installiert ist, erscheint im 
Gerätemanager das normale Symbol und Windows meldet, dass das Gerät nun 
verwendet werden kann.
Soweit so gut. Die rote LED leuchtet von Anfang an, also hat es Strom.

Am Programmer gilt folgende Jumper Einstellung:

Target Vcc:   gesetzt
slow SCK:     gesetzt
Update:       nicht gesetzt

Unter BASCOM ( ver. 1.11.9.8 ) den Programmer als USBASP eingestellt.
Dann mit einem Tiny 13 im Steckbrett verbunden, dieser bezieht seinen 
Strom aus dem USB. In seinem Sockel steckt noch ein 100n 
Abblockkondensator, zusätzlich noch einmal 100µF als Puffer der 
Versorgungsspannung.

Und dann kommt das raus, was Mann im Anhang sehen kann.

Ich habe schon beide Treiber-Versionen ausprobiert (libusb_0.1.10.1 und 
libusb_0.1.12.1 )

Hin und wieder kann Mann beim versuch zu Programmieren mal die grüne LED 
auf blitzen sehen.

Ich habe kein WIN AVR installiert. könnte dass die Ursache allen übels 
sein? ( Treiber läuft ja )

von Jo (Gast)


Lesenswert?

Normalerweise sollte am USBASP die grüne LED angehen, wenn er korrekt 
mit dem USB verbunden ist. Die Rote wird nur bei Zugriff auf den AVR 
angeschaltet.
Ich vermute mal stark, dass dein USBASP spinnt.
Der Selfprog-Jumper, der PB2(Pin16 im DIL) mit Reset(Pin1 im DIL) am 
ATMega8 bzw. ATMega48 verbindet, ist hoffentlich draußen?
Jo

von Marcus B. (atversatile)


Lesenswert?

Die Jumper sind wie oben beschrieben gesteckt.
Und zu den LED's: Dann sind die wohl vertauscht. Macht ( mir ) aber 
nichts.

von Jo (Gast)


Lesenswert?

Hmm, wenns ein frischer Controller is, dann ist der von Haus aus auf 
9,8MHz "gefused". Also würde ich "SLOW" erstmal nicht aktivieren. Dein 
Screenshot oben ist ein Windows AVRDude-GUI?

"Slow" hat bei mir ca. 30s zum Programmieren auf einen frischen Mega48 
gebraucht. Also doch recht lang. Das war aber auch nötig, denn der 
Mega48 hat im Auslieferungszustand nur 1MHz Takt(interner 8MHz Takt und 
Clockdiv8-Fuse).
Dass dein Programm als Binary nur 156 Zeichen lang ist, kommt mir 
komisch vor. Nicht irgendwas vertauscht? Wirklich so klein?
Ach noch was: Es wird gemeldet, dass du kein EEprom-File angegeben hast. 
Evtl hängt sich irgendwas da dran auf. Mach einfach mal ne leere 
Textdatei, umbenennen, und steck sie dazu.

Jo

von Marcus B. (atversatile)


Lesenswert?

Also die Fuses des Atmega 8 habe ich auf externen Quarz ( 12MHz ) 
umgestellt.
( noch mit Ponyprog und einem seriellen Kabel ) Das hat er dann indirekt 
damit bestätigt, dass er sich nach dem setzen der Fuses nicht mehr 
gemeldet hat, denn es war kein Quarz angeschlossen.
Slow ist deshalb enabled, weil ich auf einem Steckbrett programmiere, 
und mann dort den Takt etwas herunterfahren soll, damit es weniger 
Fehler wegen der langen, ungeschirmten Leitungen gibt.
Ich habe es aber auch schon mal ohne diesen Jumper probiert, kein 
Unterschied.


Ja, das Programm ist so kurz. Es soll nur alle 100ms einen Port toggeln, 
eine LED soll blinken, damit ich überhaupt irgendetwas programmiere.

von Jo (Gast)


Lesenswert?

Probier einfach mal das "serielle" Kabel am Tiny13. Wenn das funzt, dann 
liegts am USBASP.
Beim PonyProg auch das Kalibrieren des seriellen Kabels nicht vergessen!

Muss man unter Win dem AVRDUDE nicht irgendwie sagen, welche USB-VID/PID 
der USBASP hat? auch schön die neueste Version genommen? Oder macht das 
ASP-Bedenen Bascom selber?
Sonst nimm mal den Dude und gib dem die Hex-Binary die Bascom raus haut.

Hier(auf UNIX-Umgebung) bei mir funzt der USBASP hervorragend mit 
AVRDUDE.
Jo

von Marcus B. (atversatile)


Lesenswert?

Habe ich vorher auch so gemacht. am Seriellen port läuft er. Natürlich 
ist alles schön kalibriert.
Ich gehe mal davon aus, dass der Attiny 13 nicht durch diese verusche 
gestorben ist, denn das Programm lebt ja auch noch und ein neuer lässt 
sich auch nicht programmieren.

BASCOM hat anscheinend irgendwo die VID/PID gespeichert. Die verändert 
sich ja nicht. Im Gerätemanager läuft der USBASP als LibUSB-Win32 
Device, eben unter USBasp.

Ich nehme mal an, dass es an BASCOM liegt, da wir das andere ja 
ausschliessen können. Ich werde es morgen mal mit AVRDUDE probieren. Ist 
das nicht für C? ( Naja, wenn ich es dann kann, dann habe ich ja auch 
V-USB zur verfügung.... )

So langsam habe auch ich die Nase voll von Windows...

von Thomas S. (zeilentrafo)


Angehängte Dateien:

Lesenswert?

Marcus Buchner schrieb:
> Abblockkondensator, zusätzlich noch einmal 100µF als Puffer der
>
> Versorgungsspannung.
>
>
>
> Und dann kommt das raus, was Mann im Anhang sehen kann.
>
>
>
> Ich habe schon beide Treiber-Versionen ausprobiert (libusb_0.1.10.1 und
>
> libusb_0.1.12.1 )

Hallo Marcus,

ich hatte heute das selbe Problem (und nun ein anderes ...). Bei mir 
hatte ich statt der 68 Ohm Widerstaende 68 kOhm eingeloetet (zu viele 
Ostereier). Nun geht alles - bis auf das Programmieren: Sobald ich 
Bascom auffordere, verschwindet das Programmier-Fenster. Alle anderen 
Funktionen (Chip-ID, flash lesen) gehen. Hat jmd. eine Idee ?

Und nochwas Marcus - es lesen/schreiben auch Frauen hier mit. Um diese 
mit einzubeziehen kannst Du "Mann" auch als "man" schreiben ;=)

Thomas

von Thomas S. (zeilentrafo)


Angehängte Dateien:

Lesenswert?

Ich denke, es liegt an Bascom. Wenn ich die von Bascom compilierte HEX 
Datei haendisch uebertrage, dann klappt es (siehe Bild). Ich probiere 
mal weiter. Leider klappt auch das Eintragen von AVRdude in Bascom als 
externen Programmierer nicht.

von Marcus B. (atversatile)


Lesenswert?

Thomas Scherer schrieb:
> Und noch was Marcus - es lesen/schreiben auch Frauen hier mit. Um diese
> mit einzubeziehen kannst Du "Mann" auch als "man" schreiben ;=)

Wenn mir ein Moderator hilft, kann ich den kleinen Schönheitsfehler aus 
bügeln.

Thomas Scherer schrieb:
> Ich denke, es liegt an Bascom. Wenn ich die von Bascom compilierte HEX
> Datei händisch übertrage, dann klappt es (siehe Bild).

"Händisch" übertragen? Wie darf ich das Verstehen?

"Selbstbeantwortungsversuch": Mit der Funktion manuelles Programmieren 
unter BASCOM?
Oder die .hex-Datei in AVRDUDE oder WINAVR oder so was eingeben?
Damit hätte ich dann kein so großes Problem. 
"/Selbstbeantwortungsversuch" ;-)

Nein, wie man oben erkennen kann, erkennt er ja noch nichtmal den Chip.

von Horst (Gast)


Lesenswert?

Funktioniert es, wenn du den avrdude als externen programmer von Hand in 
bascom einträgst und {FILE} + Parameter verwendest?

wenn ich mich recht erinnere hat die 1.11.9.8 einige Bugs

von Thomas S. (zeilentrafo)


Lesenswert?

Marcus Buchner schrieb:
>
> "Händisch" übertragen? Wie darf ich das Verstehen?
>

Damit meine ich, dass ich das Programm unter Bascom kompiliere und dann 
das erzeugte HEX-File mit AVRdude, das ich in einem Command-prompt 
Fenster laufen lasse, auf den AVR uebertrage. Der Befehl lautet:

avrdude -p m644p -c USBasp -U flash:w:ATMEGA644.hex

wobei Du nach <-p> Deinen zu programmierenden AVR eingibst und nach <-U 
flash:w:> die hex-Datei, die Bascom erzeugt hat.

Leider scheint Bascom einen bug zu haben - auch wenn ich AVRdude als 
externen Programmiere eingebe - das selbe Verhalten.

Marcus, ich wuerde die Such auf die ISP-Seite beschraenken. Deine 
usb-Seite scheint ja ok zu funktionieren, da der Treiber korrekt geladen 
wird. Also Hardware und fuses ok. (letzte Frage zur usb-Seite: hast Du 
den 2k2 Widerstand, der Pin 2 nach + hochzieht drin ?). Ansonsten wuerde 
ich mir die Verbindungen auf der ISP-Seite anschauen: PIN16 vom Mega8 >> 
reset vom Zielprozessor, und die PINS SCK, MISO, MOSI vom Mega8 >> den 
selben Pins am Ziel ? JP2 darf natuerlich beim Benutzen NICHT 
*wiederhole: NICHT !* geschlossen sein. (sonst resettet er sich die 
ganze Zeit selbst).

Let us know !

von Marcus B. (atversatile)


Lesenswert?

Horst schrieb:
> wenn ich mich recht erinnere hat die 1.11.9.8 einige Bugs

Gibt es denn schon eine neue Version? Das mit den Bugs glaube ich gerne. 
Selbst bei fehlerfreiem Code meckert der Syntax-Check. Dann noch mehrere 
Fehler pro Zeile....

Dann können wir nur abwarten.

von Marcus B. (atversatile)


Lesenswert?

@Zeilentrafo:

Die Verbindungen habe ich nochmal im Schaltplan kontrolliert, da stimmt 
alles so.
Einzig der 2k2 Pullup von D+ ist bei mir ein 1k5 Widerstand, und die 3v6 
Zenerdioden fehlen ( andere Version des Programmers ) Da aber 
offensichtlich eine Kommunikation stattfindet, mache ich mir da trotzdem 
keine Sorgen mit.
( zumal auch andere schon beschrieben haben, dass sie es mit den USB 
Widerständen und den Zenerdioden nicht so genau genommen haben und es 
trotzdem geklappt hat )

von Gerhard (Gast)


Lesenswert?

Hallo,

>Nun geht alles - bis auf das Programmieren: Sobald ich
>Bascom auffordere, verschwindet das Programmier-Fenster. Alle anderen
>Funktionen (Chip-ID, flash lesen) gehen. Hat jmd. eine Idee ?

Das hat mich am Anfang auch iritiert.
Das Programmieren dauert bei kleinen Programmen eben nur einige
zehntel Sekunden, dann ist das Fenster sofort wieder weg , und das 
Programm
im AVR. Schau mal nach , dürfte auch bei dir so sein.

Gruß Gerhard

von Thomas S. (zeilentrafo)


Lesenswert?

>
> Die Verbindungen habe ich nochmal im Schaltplan kontrolliert, da stimmt
> alles so.


Marcus,

Zenerdioden und leicht abgewandelte Widerstaende machen tatsaechlich 
nichts aus. Zumal Deine usb-Seite ja funktioniert.

Du kannst ja offenbar Deinen Mega8 ganz normal programmieren. Dann 
schreib doch mal ein Programm, das die betreffenden Pins manipuliert und 
schau Dir das Ergebnis mit einem Multimeter an - und zwar am 
Zielprozessor.

Einfach Pin setzen, 1 Sekunde warten und wieder auf Null setzen - 1 
Sekunde warten.

Du hast geprueft, ob reset am Mega 8 auch nicht verbunden ist (JP2) ?

~~~~~~~~~~~~

Leider klappt das bei mir nicht mit dem Programmieren aus Bascom heraus. 
Das Programm kommt nicht auf dem Zielprozessor an. Derzeit nehme ich den 
oben beschriebenen Umweg.

von Marcus B. (atversatile)


Lesenswert?

Ähm.

Den ATMEGA8 habe ich programmiert, bevor ich den Rest überhaupt 
aufgebaut hatte. Und in einem System das nicht mehr als die 
Spannungsversorgung und den ISP Anschluss hatte. ( Takt intern )

Mit einem seriellen schnittstellenkabel nach S-huehn. Funktioniert gut.

Und ja, ( zum wiederholten male ) Jumper 2 ist offen. Bestimmt.

von Marcus B. (atversatile)


Lesenswert?

Mittlerweile gab es ein Patch für die BASCOM-DEMO, Version 1.11.9.8

Das habe ich mir heruntergeladen und installiert, und, es läuft immer 
noch nicht.

Nur diesmal, dass der "Detected Micro does not match the selected tiny 
13"
und was von "wrong respond size"
Der Programmer wird aber immer noch nicht gefunden. ( von BASCOM )
Aber Windows bietet mir jetzt manchmal an, ihn auszuwerfen, obwohl es 
gar kein Massenspeicher ist. ( lol )

Warum meldet denn das USBASP eigentlich nur 50mA Strombedarf an ? Es 
bekommt doch schon laut Spezifikation standardmäßig 100mA 
bereitgestellt, auch wenn es noch nicht mehr angefordert hat ( bzw. der 
Treiber )

von kg (Gast)


Lesenswert?


von Marcus B. (atversatile)


Lesenswert?

Mit den settings:
Ich habe Clock Frequenz auf AUTO.
Ist das Böse?

von Joachim (Gast)


Lesenswert?

Hallo,

Meine Versuche mit USBASP und Bascom scheitern leider auch.
Probe mit EasyProg, es geht.
Probe mit eXtreme Burner - AVR, es geht.
Probe mit Bascom 1.11.9.8, geht NICHT

Alles unter Win7 x64 im "Testmodus Build 7600" mit libusb_0.1.12.1

Wenn ich das richtig sehe macht Bascom da murks. Im Detail:

In der Software steht:
00 01 02 03 04 05 06 07

Im AVR steht dann:
01 00 03 02 05 04 07 06

Mus es noch mal genau vergleichen, denke aber so ist es.

Gruss Joachim

von Marcus B. (atversatile)


Lesenswert?

Die Fehler im Speicher folgen einer gewissen gesetzmässigkeit... :-]

Inzwischen habe ich mal probiert, mit WINAVR einzusteigen, da ich auf C 
umsteigen wollte, weil hier alle mit C arbeiten und mann einfach eine 
grössere Community hat, mehr interesannte Libraries z.b. VUSB
Da sind zwar einige tools in dem Paket, aber irgendetwas nützliches zum 
programmieren habe ich bisher nicht gefunden.
Werde bei lust und gelegenheit ( Zeit! ) mal extreme burner testen. Easy 
Prog ist doch für PIC! oder?
Oder für C würde auch AVR-Studio gehen. Kann mann da mit dem USBASP 
etwas anfangen, oder steuert das AVR-Studio nur Atmel-Hausprogrammer an 
( z.b. STK 500, STK 600 oder AVR-ONE, AVR JTAG ICE, usw... )

von Detlev T. (detlevt)


Lesenswert?

Hallo Joachim,

welche BASCOM-Lizenz hast du (DEMO oder gekauft?)

Falls DEMO: Hast du den Patch eingespielt?
http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=88&Itemid=54

Gruß, DetlevT

von charly_01 (Gast)


Lesenswert?

Der Patch war es!!!. 1000 dank ... Ich habe zwar die Vollversion von 
Bascom aber auch ich hatte das Problem das die Kompilierten Programme 
nicht liefen. Beim auslesen waren ganz andere werte zu sehen wie in der 
original hex. Ich habe einfach die bascavr.exe ausgetauscht. (meine 
Vollversion gegen die Demo) und jetzt läuft es tatsächlich.

gruß charly

von Marcus B. (atversatile)


Lesenswert?

Hast du nun die Demo? ( Mit begrenzungen und verlust der Vollversion? )

von Marcus B. (atversatile)


Angehängte Dateien:

Lesenswert?

So, nach langer Zeitlicher Pause ( Zeit- und Frustbedingt )

wieder Meldungen:

Habe nun winavr. avrdude kann anscheinend auf den Programmer zugreifen, 
aber das mit der Kommandozeile ist mir zu umständlich, noch dazu 
schlecht dokumentiert. ( steht ja nirgendswo vernünftig erklärt, wie man 
den nun z.b. auf die Datei verweist )

Habe es über das AVRDUDE-GUI AVR Burn-o-mat probiert, da kann ich aber 
keinen Programmer auswählen. -> es kann nicht programmiert werden. 
Ausserdem ist es extrem langsam und reagiert manchmal nicht.

Dann extreme-burner-AVR.
Das Datei-Handling funktioniert hier, nur kann ich hier wieder keine 
fuses per Checkbox setzen.
Schreiboperationen funktionieren nicht ( an mehreren AVR getestet )
Er sagt Fehler bei 0x000 aber macht beim schreiben immer die ersten 10 
Bytes kaputt. ( Siehe Bilder im Anhang )

Nachtrag: Im ersten Bild ist das Programm schon zu ende, wo die ersten 
Zeilen mit FFFF kommen. Das ist der korrekte code, eingelesen aus der 
HEX-Datei.

von Michael K. (micha2384)


Lesenswert?

Detlev T. schrieb:
> Hallo Joachim,
> welche BASCOM-Lizenz hast du (DEMO oder gekauft?)
> Falls DEMO: Hast du den Patch eingespielt?
> 
http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=88&Itemid=54

der obengenannte STK-500 "Patch für Demo users" hat (seit 4.
Dezember 2011) nach dem Download immer "Null" Byte.

Unter www.mcselec.com > Downloads > BASCOM > BASCOM-AVR
...gibt es folgende 2 Files:
1) Driver for USB-ISP Programmer (usb-isp.zip) Datum:2009-05-21
2) LibUSB (libusb.zip) Datum:2010-06-23

Weiß jemand, wie man diese Patches einspielt? Habe ebenfalls das 
Problem, dass die kompilierten Programme, wenn man als Programmer
den Bascom "USBASP" wählt, nicht liefen (Bascom-Version 1.11.9.8).

von Michael K. (micha2384)


Lesenswert?

Habe die Lösung. Man lädt einfach die NEUE Bascom-Version
(Version 2.0.7.1) herunter. Dann braucht man den Patch
(der für die Bascom-Version 1.11.9.8 gedacht ist) nicht,
und der "USBASP" Programmer läuft fehlerfrei.

von menguin (Gast)


Lesenswert?

Hallo! Mein LPT Port ist heute früh ganz offensichtlich gestorben - 
keine Ahnung warum, gestern Abend hat noch alles funktioniert :( Jetzt 
brauch ich so schnell wie möglich einen neuen Programmer für einen 
anderen Port, am besten USB! Funktioniert der USB ASP unter Windows 7 
mit der neuen Bascom Version jetzt fehlerfrei?
mfg

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.