Forum: Mikrocontroller und Digitale Elektronik USB->SPI Bootloader


von Elias S. (computergarf)


Lesenswert?

Ich würde gern mal erfahren was ich tun muss um einen MC(2.) über den 
ersten der via Uart mit dem pc verbunden ist, über einen bootloader zu 
programmieren. Mein Problem: Was muss ich aus der Hex(uart) im ersten MC 
machen damit ich über den SPI anschluss den 2.MC programmieren 
kann.(bitte um Tipps bei der programmierung in bascom)

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

bitte erläutere doch mal etwas genauer wie das ablaufen soll!
A) im zweiten µC sitzt ein Bootloader der die Daten über SPI vom ersten 
µC entgegen nimmt? Dann braucht der erste µC die Daten von der UART ja 
nur durchreichen.
B) der erste µC soll den zweiten direkt über das ISP-Protokoll 
beschreiben, auch das geht, wobei dann natürlich das entsprechende 
Protokoll impementiert werden muss.

Sascha

von Elias S. (computergarf)


Lesenswert?

Ich hatte mich bissl Falsch ausgedrückt. Also:
Man hatt USB. Danach kommt ein Wandler zu UART. UART geht dann an den 
ersten Mikrocontroller und über UART werden HEX strings übertragen und 
die Aufgabe des ersten MCs ist das er die HEX über SPI auf den 2.MC 
überträgt(der 2.soll programmiert werden). Ich weiß nicht:
Wie kann ich mit den HEX-Strings den 2.MC programmieren(Flash) und wie 
kann ich das anstellen.
Mit den Bootloader hatte ich mich falsch ausgedrückt,das könnt ihr 
wieder vergessen(der erste sollte nur die Funktion von einer Art 
eines“Bootloaders“ besitzen
).

von Stefanus (Gast)


Lesenswert?

Dann Google mal nach "avr isp programming interface".

Das dritte Ergebnis ist die Application Note "AVR910: In-System 
Programming". Lies das mal.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Warum so umständlich?
Erst USB auf UART Wandler, dann nen Controller der nen anderen proggt.

Entweder den einen Controller weglassen, denn dieser Bootloader hier 
frisst direkt die .hex Datei:
http://sourceforge.net/projects/kavr/files/

Oder den UART Wandler weglassen und einen USBasp fest auf die Platine 
bauen.

von Martin Wende (Gast)


Lesenswert?

Ich möchte aber nicht auf den einen einen Bootloader, weil ich ein 
mobiles Gerät haben möchte wo ich dann alle MCs in einen Sockel(das ist 
der 2.mc) stecken möchte und den dann programmieren ich möchte nicht auf 
jedem einen Bootloader.

von Elias S. (computergarf)


Lesenswert?

Ich möchte einen mobilen Programmer haben. Und ich möchte nicht auf 
jeden MC, den ich programmieren will, einen Bootloader machen sondern 
den nur ganz normal über SPI programmieren

von Elias S. (computergarf)


Lesenswert?

USBasp is eine gute Idee, aber hat noch jemand vielleicht etwas 
ähnliches, aber mit USB->UART->MC->ISP.
Vielen Dank für eure Hilfe!

von Sascha W. (sascha-w)


Lesenswert?

Warum sagst du nicht gleich: Ich will einen AVR-Programmer selber bauen.

Dann kommst du zu den o.g. Ergebnissen.
Die Schnittstelle Richtung PC frisst aber nicht direkt eine HEX-Datei! 
Die Schnittstelle zum PC stellt vielmehr ein bestimmtes Protokoll bereit 
(STK500, AVRISP, ...). Die Software am PC liest dann die HEX-Datei und 
sendet die Daten in entsprechende Kommandos verpackt zum Programmer.
Du könnstest natürlich die Software im Programmer so anpassen, das der 
auch direkt eine HEX-Datei nimmt, wobei sich das Problem ergibt das die 
Kommandos zum Programmieren des Ziel-AVR an dessen Typ angepasst werden 
müssen (z.B. Pagegröße des Flash). Das wird dem Programmer im Normalfall 
von der PC-Software über das o.g. Protokoll mitgeteilt.

Sascha

von Jim M. (turboj)


Lesenswert?

> Ich möchte einen mobilen Programmer haben.

Definiere "mobil". Mit einem JtagKey2 und avrdude auf einem Netbook bin 
ich schon recht mobil, und avrdude gibts IMO auch für den Raspberry Pi.

von Max H. (hartl192)


Lesenswert?

Du willst also einen "Programmer To-Go" bauen?

von Elias S. (computergarf)


Lesenswert?

Könntest du mir das ein bisschen genauer erklären

von Elias S. (computergarf)


Lesenswert?

Mobil = kleines Board

von Max D. (max_d)


Lesenswert?

Es gab mal irgendwo einen Progger der hat von ner SD-Karte autark 
angeschlossene AVRs beschrieben. Ich find nur grade die Seite nicht, 
vlt. hat ja jemand noch nen Link für den TO .....

EDIT: gefunden: 
http://mdiy.pl/uprog-maly-szybki-przenosny-programator-avr-z-sd/?lang=en


Viel mobiler wirst du nicht werden

: Bearbeitet durch User
von Max H. (hartl192)


Lesenswert?

Det TO hat immer nur uC geschrieben.
Welchen uC verwendes du?

: Bearbeitet durch User
von Elias S. (computergarf)


Lesenswert?

Atmega 8

von Elias S. (computergarf)


Lesenswert?

Aber mein eigentliches Problem ist das ich nicht weiß wie sich eine HEX 
ändern muss (wandeln muss) das man mit spi einen mc programmieren kann

von Elias S. (computergarf)


Lesenswert?

Das ist meine Vorstellung. Hier auf Seite 10 mit Serieller 
Schnittstelle. Das kann ich selbst später noch mit einen Wandler noch 
ändern.

von Elias S. (computergarf)


Lesenswert?

Hättet ihr dazu eine Software für Atmega 8 (oder anderen). (wenn möglich 
in Bascom)

von Stefan F. (Gast)


Lesenswert?

Du hast die Appnote 910 immer noch nicht gelesen. Denn da wird exakt so 
eine Schaltung beschrieben. Dazu gehört sogar ein Beispiel-Quelltext, 
der im übrigen in sehr vielen preisgünstigen ISP-Programmern 1:1 drin 
ist.

Kauf doch einfach einen fertigen ISP Programmer.

Zum Beispiel den: 
http://shop.in-circuit.de/products/Home/Programmieradapter/18/ICprog-AVR2-0

Der ist genau so aufgebaut, wie Du es Dir vorstellst. Er hat einen 
USB-zu-seriell Chip und einen AVR Mikrocontroller und er enthält die 
Firmware aus der Appnote AVR910.

Sowas findest Du auch zu Hauf bei Ebay.

von Stefan F. (Gast)


Lesenswert?

Die PC Software zum AVR910 findest Du unter dem Namen AVR911. Oder 
alternativ (bevorzugt) avrdude oder "AVR OSP II".

Schau mal, andere können den AVR910 auch nachbauen: 
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html

von Elias S. (computergarf)


Lesenswert?

Und hat einer von dem Assembler 
Code(http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/avr910_2313_v38b.asm) 
noch einen Bascom-Code?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Elias Seidel schrieb:
> Aber mein eigentliches Problem ist das ich nicht weiß wie sich eine HEX
> ändern muss (wandeln muss) das man mit spi einen mc programmieren kann

Dann LESE:
1. -> http://de.wikipedia.org/wiki/Intel_HEX
2. -> ein x beliebiges AVR Datenblatt unter "Serial Programming"

Wissen wird nicht auf dem Silbertablett gereicht sondern durch lesen und 
versuchen erarbeitet.

von Max H. (hartl192)


Lesenswert?

OT: Eine kurze Frage: Beim ARV wird manchmal vom Programmieren mit SPI 
gesprochen. Hat man dann einen SPI Bootloader, wird SPI mit ISP 
verwechselt, oder wird das ISP programming über eine Schnittstelle wie 
SPI oder ähnlich gemacht.

von Stefanus (Gast)


Lesenswert?

Die Programmierschnittstelle heisst ISP, das steht auch in den 
datenblättern und in der Sch*** Appnote 910, die Du wohl immer noch 
nicht gelesen hast.

Lies das jetzt mal!!!

von Max H. (hartl192)


Lesenswert?

Stefanus schrieb:
> das steht auch in den
> datenblättern und in der Sch*** Appnote 910, die Du wohl immer noch
> nicht gelesen hast.
Falls du mich mienst: Natürlich habe ich die nicht gelesen, arbeit nur 
mit PIC.
Also ist das mit dem "SPI" nur ein Zahlendreher (mit Buchstaben).

von Sascha W. (sascha-w)


Lesenswert?

M. H. schrieb:
> Stefanus schrieb:
>> das steht auch in den
>> datenblättern und in der Sch*** Appnote 910, die Du wohl immer noch
>> nicht gelesen hast.
> Falls du mich mienst: Natürlich habe ich die nicht gelesen, arbeit nur
> mit PIC.
> Also ist das mit dem "SPI" nur ein Zahlendreher (mit Buchstaben).
nein das ist kein 'dreher'
ISP heist die Schnittstelle => In System Programming
                               -  -      -
Elektrisch ist die wie eine SPI-Schnittstelle aufgebaut TAKT, 
DATEN_REIN, DATEN_RAUS

Sascha

von Max H. (hartl192)


Lesenswert?

Sascha Weber schrieb:
> Elektrisch ist die wie eine SPI-Schnittstelle aufgebaut TAKT,
> DATEN_REIN, DATEN_RAUS
Ok. Danke.

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.