Forum: Mikrocontroller und Digitale Elektronik AVR USB FUSEN


von Kahn P. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich verwende einen Bootloader von Digispark,  und den für mich 
aufregenden Baustein ATiny85, das ganze ist fein auf einem Miniboard 
arangiert:
http://digistump.com/products/1

Für mich ist es außerordentlich wichtig, das ich die Fuse so setze das 
ein
auslesen nicht mehr möglich ist, weil ich das als Schlüssel verwenden 
muss.

Avrdude.exe  kann also nicht über rs232 zugreifen, auch ein löten am 
Baustein kommt nicht infrage. (es sind sehr viele)

Es gibt eine Anleitung mit dem Raspberry auf die Fuse Register zugreifen 
zu können, es müssen also mehr als zwei Leitungen zum programmieren der 
Fuse verwendet werden ? Oder hat der Bootloader damit zu tun, wie man 
die fuse setzen kann ?

Ich habe nebst Arduino auch von Atmel das Studio installiert, kann dort 
selbst über ein AddOn Arduino projekte öffnen und Kompilen, funktiniert 
für meine Serial -Kontroller gut (Arduino Nano).  Normal entwickelte ich 
mit der Keil IDE über das JTAG AnalogDevices Parts ADuc7020/60.

Seit Wochen versuche ich nun über LibUsb  mit WinAVR das Gerät 
anzusprechen was aber nicht funktioniert , dann muss ich wohl den 
Bootloder von digispark durch den von WinAVR ersetzen ?

Ich finde keine Lösung die Fuse zu setzen, und am Ende gieße ich den 
Baustein wohl noch in Kunstharz ein, was ist dann ?
Kann doch dann auch keiner mehr auslesen ?

Ich mache das schon 35Jahre, und möchte eigentlich nicht kritiken 
sammeln bezüglich das ich soetwas verwende, oder das ich überhaupt etwas 
schreibe.

Ich würde mich jedoch freuen wenn andere den Baustein auch verwenden, es 
gibt auch positives zu berichten, z.b. das ich diesen über ein C/C++ 
Interface direkt über USB ohne Treiberzirkus mit 8K/s Auslesen und mit 
1K/s beschreiben kann, so habe ich eine bidirektionale 
Datenkommunikation erstellt mit null% CPU Last. Der AVR hingegen läuft 
auf maximum und ist bis zum rande der Möglichkeiten ausgereizt.

Es gibt einen tollen Thread wie jemand den AVR an einem Raspi anschließt
und diesen dort programmiert.

Soll ich das nachstellen und in dieser Richtung forschen ?
http://www.instructables.com/id/Programming-the-ATtiny85-from-Raspberry-Pi/


Danke für Hinweisen oder hilfestellungen
 gruß
  Karsten

von stefan us (Gast)


Lesenswert?

Fuses kann man IMHO nur über das ISP Interface ändern. Bootloader können 
das nicht.

Du brauchst einen zweiten Mikrocontroller zwischen PC und AVR, der mit 
dem ISP Interface des AVR verbunden ist (nennt man ISP Programmer). Das 
Übertragungsprotokoll ist offen dokumentiert: 
http://www.atmel.com/webdoc/protocoldocs/protocoldocs.avrispprotocol.html

von Jan H. (jan_m_h)


Lesenswert?

Du brauchst einen ISP-programmer um die Fuses zu ändern. Raspberry kann 
wie du schon bemerkt hat dafür verwendet werden.

Solltest du einen Raspberry haben ist das die beste Möglichkeit, sonst 
ist er overkill.

von stefan us (Gast)


Lesenswert?

Der AVR hat keine USB Schnittstelle, also verabschiede dich von deinem 
Traum, ihn direkt und ohne großartige Klimmzüge anzusprechen.

Es gibt größere AVR Typen mit einem U im Namen, die haben ein USB 
Interface.

von Kahn P. (Gast)


Lesenswert?

Danke der Hinweise, dies löst einige Unsicherheiten.

Den MKII Programmer werde ich mal ordern, alternativ
via Raspi als Programmer.

Ansonnsten funktioniert die USB Kommunikation sehr gut.

Danke.
 K.

von Axel S. (a-za-z0-9)


Lesenswert?

stefan us schrieb:
> Der AVR hat keine USB Schnittstelle, also verabschiede dich von deinem
> Traum, ihn direkt und ohne großartige Klimmzüge anzusprechen.

Er hat anscheinend eine Software USB Implementierung im Bootloader. 
Darüber wie standardkonform die ist, brauchen wir nicht zu streiten. 
Aber offensichtlich ist sie gut genug, um den AVR über USB direkt 
anzusprechen und z.B. eine Firmware drauf zu flashen. Das funktioniert 
in der Realität millionfach. Es ist daher vollkommen müßig darüber zu 
diskutieren ob man das besser machen könnte.

Allerdings ändert all das nichts daran, daß man die Fuses eines AVR nun 
mal nicht aus dem laufenden Programm heraus ändern kann. Ergo auch nicht 
aus dem Bootloader heraus. Dazu muß man über ISP oder JTAG (hat der 
tiny85 aber sowieso nicht) gehen.

@Karsten: du brauchst einen ISP-Adapter und irgendeine Möglichkeit, den 
tiny85 auf der Platine zu kontaktieren. Es gibt so kleine Clip-On 
Adapter die man auf das SO-Gehäuse aufclipsen kann. Oder du bastelst was 
mit Pogo-Pins. Schau dir aber vorher die Schaltung an, ob die MISO, 
MOSI, SCK und RESET Pins geeignet beschaltet sind für den ISP-Zugang.

von Kahn P. (Gast)


Lesenswert?

Hi Axel,

ales klar jetzt. Problem ist natürlich die vorhandene Verdrahtung,
nicht das die ausschließt einen "isp" zu verwenden. Ein JTag von Analog
habe ich freilich, aber ich kenne nicht die Unterschiede zum ISP 
Verfahren.

Es mangelt also an substanzieller Grundkenntniss. Ich streife den 
Bereich der
Pics und Mics immer wieder, die Kollisionen werden Herzhafter.

Und dann lasse ich mir hier die Datenblätter vorlesen, um nicht alleine 
leiden zu müssen :)


Vielen Dank der Hinweise, ich werde die frohe Kunde integrieren.

Lg.
 K.

von stefan us (Gast)


Lesenswert?

>>> Der AVR hingegen läuft auf maximum und ist bis zum
>>> Rande der Möglichkeiten ausgereizt.

>> Der AVR hat keine USB Schnittstelle, also verabschiede dich von
>> deinem Traum, ihn direkt und ohne großartige Klimmzüge anzusprechen.

> Es ist daher vollkommen müßig darüber zu diskutieren ob man das
> besser machen könnte.

Ich wollte doch bloss erklären, warum der AVR "auf maximum" läuft. Es 
kam mir so vor, als ob der TO dies als Mangel betrachtet und verbessern 
möchte.

@Karsten: habe ich Dich da missverstanden?

von Kahn P. (Gast)


Lesenswert?

Ich weiß nicht was Du verstanden hast, USB "ja" zur Kommunikation, 
wunderbar geht das, auch Programme übertragen ist kein Problem. Jedoch 
die FuseBits setzt man nicht über diese beiden Datenleitungen, dafür 
bedarf es enes spi transfers, das wusste ich nicht.

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.