Forum: Mikrocontroller und Digitale Elektronik ATMega168PB, mySmartUSBlight und OSX


von Stefan M. (stefatronik)


Lesenswert?

Guten Abend,
ich habe nun um dieses Xplained mini Board programmieren zu können, 
einen mySmartUSB light gekauft. Auf der Arbeit unter Windows arbeitet 
dieses Teil zusammen mit AVRdude einwandfrei. Hier daheim unter OSX habe 
ich leider weniger Erfolg.
Ich habe avrdude Version 6.3 installiert.
Die Treiber für den CP2102 sind installiert.
Ich habe die Datei /dev/cu.SLAB_USBtoUART, wenn der Programmer 
eingesteckt ist.

Als Programmer habe ich irgendwo gelesen, sollte ich den avr910 wählen.
Mein Aufruf sieht folgendermaßen aus:
avrdude –c avr910 –P /dev/cu.SLAB_USBtoUART –p m168p sig
Ich beabsichtige, die Device ID auszulesen. Das ist für mich der erste 
Schritt, bevor ich ein evtl. nicht funktionierendes Programm hochlade.
Ich bekomme leider eine Fehlermeldung:

StefanM@Stefanseiner:~$ avrdude -c avr910 -P /dev/cu.SLAB_USBtoUART -p 
m168 sig

avrdude: avr910_recv(): programmer is not responding
avrdude: avr910_recv(): programmer is not responding
Found programmer: Id = "?+ci"; type = ?
    Software Version = .; Hardware Version = ?.?

Programmer supports the following devices:
    Device code: 0xffffffe5 = (unknown)
    Device code: 0xffffffcb = (unknown)
    Device code: 0x2b = (unknown)
avrdude: avr910_recv(): programmer is not responding
    Device code: 0x2b = (unknown)

Die letzten Zeilen wiederholen sich im 3...5sec. Takt.
Ich bin nun seit einigen Stunden am Suchen, kann mir aber keinen Reim 
aus den Fehlern machen. Es ist im Übrigen kein unterschied zu erkenne, 
ob nun das Board angeschlossen ist oder nicht.

Wie kann ich die Verbindung zum Programmer testen / was muss ich tun, um 
diese korrekt zu initialisieren?

Danke :)

von J. H. (joho62)


Lesenswert?

Der mySmartUSB light hat zwei Protokolle wählbar.
AVR910/911 oder STK500v2.
Kann man über ein kleines Zusatztool auswählen (Supportbox).
Das gibts bei http://shop.myavr.de/index.php?sp=pages/startseite.htm
zum downloaden.

von Stefan F. (Gast)


Lesenswert?

Eventuell musst du die Baudrate angeben. Ich hatte mal einen avr910 
Programmer, der brauchte 115200 Baud.

von Stefan M. (stefatronik)


Lesenswert?

Danke @ J.H. das hat mich weiter gebracht. Dieses Tool kannte ich nicht, 
zum Glück habe ich noch eine Virtual Box.

Ich habe nun die Fuses für den ATMega168PB im Datenblatt nachgeschaut 
(f9, fb, 46 von txt nach low). Meine Idee ist, sie zu verifizieren. 
Damit mache ich hoffentlich noch nichts kaputt.
Also mein Command lautet:
avrdude -p m168 -P /dev/cu.SLAB_USBtoUART -c avr911 -U hfuse:v:0xFB:m

Leider bekomme ich damit eine Liste von möglichen unterstützten Devices 
(hex Codes) allerdings kann er die Device ID nicht auslesen:

avrdude: error: programmer did not respond to command: enter prog mode
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.97s

avrdude: Device signature = 0x000000 (retrying)
(noch 2x)
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Auch mit -F funktioniert es nicht, in allen Fällen ist alles, was zurück 
kommt NULL.
Auch in meiner virtual Box unter Win7 habe ich dieses Verhalten. (Der 
selbe Befehl, nur halt den com Port angepasst).
Auf dem Xplained Board blinken während des Vorgangs kurz die LEDs aber 
mehr passiert nicht.
Ich bin im Übrigen direkt mit dem 6-Pol. Stecker vom Programmer auf dem 
ISP Port des Xplained
Ich dachte, die Dinger sollen einsteigerfreundlich sein?

von J. H. (joho62)


Lesenswert?

Hast Du denn den Programmer mal auf "STK500v2" umgestellt?
Das soll bei avrdude laut techn. Manual so sein.
Es gibt noch ein weiteres Programm bei myAVR, das ProgTool.
Da kann man im Hardwaretab alles bequem einstellen und auch
verifizieren (Programmer, Ziel-AVR, Spannungsversorgung etc.)

von Stefan M. (stefatronik)


Lesenswert?

Ja stimmt guter Hinweis. Entgegen dem FW Tool vom Hersteller wird der 
Stick vom ProgTool nicht gefunden. Was kann das sein? Der COM Port ist 
richtig...

von Stefan F. (Gast)


Lesenswert?

> Leider bekomme ich damit eine Liste von möglichen unterstützten
> Devices (hex Codes).

Das AVR910 Protokoll ist steinalt. Es unterstützt eine ganze Reihe von 
"neuen" Mikrocontrollern nicht.

Manche Hersteller der Programm8eradapter haben das Protokoll um einige 
gängige µC Typen erweitert (zum Beispiel In-Circuit). Aber da diese 
nicht standarisiert sind, macht das jeder Hersteller anders. 
Dementsprechend brauchst du dann eine vom Hersteller bereitgestellte 
avrdude.conf. Dabei ist wiederum ärgerlich, dass das Dateiformat 
zwischendurch mal geändert wurde. Die modifizierte avrdude.conf wird 
daher unter Umständen nicht mit deiner avrdude Version zusammen passen. 
Verwendet im zweifelsfall die Software, die der Hersteller des 
Programmieradapters dazu bereit stellt.

Das STK500v2 Protokoll unterstützt mehr Mikrocontroller Typen, daher 
rate ich dazu, es zu bevorzugen.

von J. H. (joho62)


Angehängte Dateien:

Lesenswert?

Wenn das Prog-Tool den Programmer nicht sieht, ist er wohl hinüber.
Das sollte so wie auf dem Bild aussehen.

von Stefan M. (stefatronik)


Lesenswert?

Also folgendes konnte ich mit einem zweiten Rechner rausfinden:
Am Mac wird der Programmer nie gefunden, egal ob OST oder Win7 Virtual 
Box, ob STK500 oder dieses AVR911.

Am Windows Rechner findet er das Tool aber nicht den Controller. Ich 
habe zwei dieser Xplained Dinger die wohl jetzt in den Müll fliegen.
Die Verbindung stelle ich über das 6-polige Flachbandkabel her, es 
blinken auch beide LEDs auf dem Xplained, trotzdem wird der Mega 168pb 
nicht erkannt.

Irgendwie ziemlich unbefriedigend, dass direkt eine Vielzahl an Fehlern 
vorzuliegen scheint.
Gibt es hier Leute, die irgendeine Kombination aus Programmer und OSX 
und µC ans Laufen bekommen haben?

von Stefan F. (Gast)


Lesenswert?

Die Anleitung zu dem Xplained Board enthält Hinweise zu ein paar 
Fallstricken:

If not exiting debug mode by selecting "Disable debugWIRE and Close" in 
the Debug menu, the DWEN fuse will be enabled and the target will still 
be in debug mode, i.e. it will not be possible to program the target 
using ISP.

Kann es sein, dass du vorher mal debuggt hast und vergessen hast, den 
Debug Wire wieder zu deaktivieren?

Ansonsten würde ich mal die Reset Leitung prüfen. Verbinde sie fest mit 
GND, schalte erst danach die Stromversorgung ein und sieh nach, ob dann 
das Programmieren geht. Wenn das der Fall ist, hast du einen der 
folgenden Fehler:

- An der Reset ist ein zu großer Kondensator
- An der Reset Leitung ist ein zu kleiner Pull-Up Widerstand (sollte >= 
1k Ohm sein)
- An der Reset Leitung hängt eine andere Signalquelle, die stört.
- Du hast ein Programm installiert, dass den Controller so gründlich zum 
Absturz bringt, dass die SPI Schnittstelle blockiert
- Du hast die Taktfrequenz per Fuse oder Software auf unter 1Mhz herab 
gesetzt und dein Programmer kann sich nicht automatisch entsprechend 
entschleunigen.

Beim STK500v2 Protokoll kann man mit der avrdude Option -P200 eine ganz 
niedrige ISP Taktfrequenz erzwingen. Aber nicht jeder Programmieradapter 
kann das. Beim AVR911 Protokoll gibt es diese Möglichkeit nicht.

Bevor du die Boards wegwirfst, solltest du erstmal prüfen, ob sie 
überhaupt defekt sind. Du könntest zum Beispiel zum Vergleich irgend 
einen jungfräulichen ATtiny oder ATmega auslesen, der ganz sicher von 
deinem programmer unterstützt wird.

von Stefan M. (stefatronik)


Lesenswert?

Also ich habe mich zum Xplained Board direkt (also mit diesem mEDGB 
Interface über die eingebaute USB Buchse) über Atmel Studio verbinden 
können. Die Fuses sind DWEN disable, SPIEN enabled und alle zusammen von 
LOW nach HI =E0 DF FF.
Ich habe mal einen Tiny "hardwired" an den SPI Anschluss des mysmartusb.
Läuft mit avrdude unter Windows 10, unter Win7 in der virtual Box und 
unter OSX.
Okay, also hatte ich mehrere Probleme:
* diese xplained Dinger sind ziemlicher Schrott; lassen sich offenbar 
nicht über ISP programmieren. Ich hätte zwei Stk. abzugeben falls jemand 
will für sagen wir 5€/st. Über den mEDGB Kram klappt es aber wenn ich 
eine Schaltung um den Controller herum entwickeln will, macht es für 
mich keinen Sinn mit einem anderen Interface zu programmieren, das ich 
zudem nicht in meine Schaltung integrieren kann.
* Am Xplained sind die Fuses DWEN = False und SPIEN = True gesetzt, ich 
sehe also wirklich keinen Grund, warum die Sau nicht antwortet!
* Mein Dragon hat es offenbar auch gepackt. Unter keinem der beiden 
Windows Systeme konnte ich mit meinem Tiny plaudern

Gut, danke für die Hilfe ich bin ein Stück weiter - nämlich so weit zu 
wissen, dass meine Hardware wohl ungeeignet ist.

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.