Arduino: "upload" vs. "upload using programmer"

In de IDE van de Arduino kan ik, onder "sketch", kiezen uit "upload" of "upload using programmer". Wat is het verschil? Wanneer is welke van beide aangewezen?

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

'Upload using a programmer' wordt gebruik voor een ISP programmer. Voordeel hiervoor is dat je de bootloader niet nodig hebt, dat scheelt snel 2K.
Meestal via een AVRISP(2) of een USBISP programmer.

'Upload' is via de seriele/USB interface. Het is simpeler en sneller. Alleen heb je wel een bootloader nodig.

Zo een bootloader is een stukje software in de target controller die firmware kan binnenhalen via usb of een seriele poort.

Die zit bij arduino's altijd ingebouwd, maar is meestal niet aanwezig bij losse controllers af fabriek. In dat laatste geval kun je alleen nog dmv een programmer updaten.

En dan kun je ook de bootloader wissen om bijv meer ruimte vrij te maken voor je 'sketch'.

De arduino software reset de controller via de rts pin op de seriele poort.

Daarna is de bootloader enkele seconden actief en kan via een commando de sketch laden.
(Zie stk500 protocol)

Als de vertraging een probleem is of je controller start niet door omdat er iets op de seriele poort zit kan je de bootloader ook verwijderen.

GMT+1
High met Henk

Special Member

ik heb een originele AVRISP MK2
en die doet het niet met de arduino IDE.

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???
bprosman

Golden Member

HmH , je drivers goed geladen ? Onder W10 was dat volgens mij even een dingetje maar hier doet hij het prima.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Dat is ongebruikelijk, hij staat in het menu en ik heb ze jarenlang zonder problemen onder osx gebruikt.
Is er een specifieke reden dat je dit probleem in dit topic wilde vermelden ? [edit: ik was te traag. Dit was een reactie op HmH ]

Ontopic; De Arduino omgeving en hardware is in beginsel gericht op het gebruik van een bootloader.
Maar als dat om enige reden geen (handige-) optie is dan is er dus de mogelijkheid een aparte programmer te gebruiken.
Voor veel Arduino's kan die programmer een andere Arduino zijn, maar of dat buiten de bekende acht bit Atmels ook zo eenvoudig gaat durf ik niet te zeggen.

Op 30 december 2018 12:05:49 schreef High met Henk:
ik heb een originele AVRISP MK2
en die doet het niet met de arduino IDE.

Dit is wel heel weinig info :)

Welke melding krijg je? Poort niet gevonden? Kon de progger niet geinitialieerd worden ? of ....?

Probeer eens via de command line (er van uitgaande dat je een uno hebt)

code:

avrdude -c avrispmkii -p m328p

of

code:

avrdude -c avrisp2 -p m328p

wat is daarvan de output?

High met Henk

Special Member

in de atmel studio deed hij het prima, maar de arduino IDE deed het niet: het was dus geen driver issue.

heb er hier ooit topic over gehad: https://www.circuitsonline.net/forum/view/139451#highlight=a...ino+avrisp

zie nu dat het over bootloader laden ging trouwens.

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

Een compleet ander prograama is meestal ook een andere driver. Kans dat die hetzelfde is lijkt me klein...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Bij mij werkt de AvrIsp-MK2 (orginele) ook niet meer in de Arduino ide nadat Atmel studio 7 de firmware heeft geupdate van de Mk2.
Heb van allerlei tips en tricks van het web geprobeerd om hem weer aan de praat te krijgen onder de Arduino ide, maar niet gelukt.
Is niet een hele grote ramp, bootloader is er ook op andere manieren in te krijgen, maar wel jammer.

High met Henk

Special Member

Arduino IDE heeft in zijn lijst Atmel AVRISP MKII staan
Ik heb een originele ATMEL AVRISP MKII
Ik heb de originele Jungo drivers voor de hardware, welke OOK in W7 gezien worden en dus werken in AVR studio.

Als ik het kan vinden, neem ik het spulletje wel mee naar Rosmalen, kunnen anderen eens kijken.

Edit: post van 2n3055 kwam terwijl ik nog moest versturen: Dat zou het probleem wel verklaren ja!

[Bericht gewijzigd door High met Henk op 30 december 2018 14:10:01 (14%)]

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

Dat is wel degelijk een driver probleem.

De ATMEL AVRISP MKII werkt met proprietary JUNGO drivers. Daar zijn licenties voor nodig die ATMEL (denk ik) ooit betaald heeft, en daardoor toegang heeft gekregen naar de API functies voor die JUNGO drivers.

Maar AVRDUDE (en dus ook arduino) kan daar niet bij. Die doet niet aan proprietary drivers, en gebruikt libusb drivers voor de ATMEL AVRISP MKII.

Dat kan goed gaan als je de libusb drivers installeert voor de ATMEL AVRISP MKII, maar dan kan Atmel studio en niet meer bij.

En je kunt ook de libusb driver installeren als filter drivers, dus bovenop de jungo drivers. Dan werken ze allebei.
[edit]Heb ik ooit werkend gehad op windows vista. Of dat ook kan op W10 weet ik niet[/edit]

Maar feitelijk is het niet erg slim geweest van ATMEL om zo een driver drama te creëren. Er zijn meer dan genoeg alternatieven.

Op 30 december 2018 16:34:41 schreef deKees:

En je kunt ook de libusb driver installeren als filter drivers, dus bovenop de jungo drivers. Dan werken ze allebei.
[edit]Heb ik ooit werkend gehad op windows vista. Of dat ook kan op W10 weet ik niet

libusb filter driver doet de AvrIsp-Mk2 inderdaad weer werken met Arduino en ook nog met Atmel Studio.
Getest met win10-64B,libusb 1.2.4.0, Arduino ide 1.9.0 beta en Atmel Studio 7.0.1645