www.elektronik.si
ATmega328 - arduino bootloader

www.elektronik.si -> Arduino sekcija

Avtor: MajciKraj: Ilirska Bistrica PrispevekObjavljeno: Tor Okt 16, 2018 7:42 pm    Naslov sporočila:  ATmega328 - arduino bootloader
----------------------------------------------------------------------------
Zivjo,

z arduinom imam že nekaj izkušenj, zdaj pa je v planu izdelava namenskega vezja za sobni termostat s 5 tipkami in zaslonom. Zaradi velikosti želim uporabiti čim v TQFP ohišju. Preko I2C bo komuniciral z master arduinotom in zaslonom.

Normalno ima arduino 16MHz kristal. Ali je za delovanje nujno potreben oziroma ali je možno omogočit frekvenco čipa 8Mhz in bo to delovalo brez zunanjega kristala?
Kaj se bo zgodilo s I2C komunikacijo?

Ali je možno naložit arduino bootloader na čim iz spodnje povezave?

https://si.farnell.com/microchip/atmega328pb-an/mcu-8bit-20mhz-tqfp-32/dp/2774972?st=ATmega328

Lep pozdrav

Avtor: Peter123Kraj: Lj. PrispevekObjavljeno: Tor Okt 16, 2018 9:25 pm    Naslov sporočila:  
----------------------------------------------------------------------------
I2C je načeloma za kratke povezave.
Če želiš daljše kable 5m + potem je ena od možnosti RS485.

Avtor: arksiKraj: Dolenjska PrispevekObjavljeno: Sre Okt 17, 2018 8:09 am    Naslov sporočila:  Re: ATmega328 - arduino bootloader
----------------------------------------------------------------------------
Majci je napisal/a:
.....Normalno ima arduino 16MHz kristal. Ali je za delovanje nujno potreben oziroma ali je možno omogočit frekvenco čipa 8Mhz in bo to delovalo brez zunanjega kristala?
Kaj se bo zgodilo s I2C komunikacijo?.....


Za zaneslijivo komunikacijo je "zelo priporočljivo" imeti kristal, da dosežeš čim bolj točno točen takt procesorja.
V nastavitvah FUSE bitov (za nastavljenje potrebuješ ustrezen programator) lahko spremeniš frekvenco procesorja na notranji oscilator 8MHz. Vendar omenjeni notranji oscilator ni prav preveč točen in lahko niha navzgor ali navzdol, zato se ga uporablja za kakšne nezahtevne operacije v krmilniku.

Majci je napisal/a:
.....
Ali je možno naložit arduino bootloader na čim iz spodnje povezave?

https://si.farnell.com/microchip/atmega328pb-an/mcu-8bit-20mhz-tqfp-32/dp/2774972?st=ATmega328
Lep pozdrav


Mislim, da ja. Potrebuješ ustrezen programator. Pri nakaterih novih procesorjih je botloader že tovarniško naložen v procesor.

Avtor: Peter123Kraj: Lj. PrispevekObjavljeno: Sre Okt 17, 2018 8:58 am    Naslov sporočila:  
----------------------------------------------------------------------------
Mega 328 v smd ohišju se direktno uporablja v Arduino NANO:
https://store.arduino.cc/usa/arduino-nano
Tako da se ga da sprogramirat v Arduino bootloader kar lahko storiš preko arduino okolja preko druge arduino plošče.

Avtor: matjayKraj: Ljubljana PrispevekObjavljeno: Sre Okt 17, 2018 10:51 am    Naslov sporočila:  
----------------------------------------------------------------------------
Tale program zna naložiti hex v arduino preko usb.
http://www.hobbytronics.co.uk/arduino-xloader

LP
Matjaz

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Sre Okt 17, 2018 12:31 pm    Naslov sporočila:  
----------------------------------------------------------------------------
matjay je napisal/a:
Tale program zna naložiti hex v arduino preko usb.
Ja preveden program, kar pomeni, da mora biti bootloader že naložen, ne pa bootloaderja.

Majci je napisal/a:
Normalno ima arduino 16MHz kristal. Ali je za delovanje nujno potreben oziroma ali je možno omogočit frekvenco čipa 8Mhz in bo to delovalo brez zunanjega kristala?

Da.

Majci je napisal/a:
Kaj se bo zgodilo s I2C komunikacijo?
Delala bo, čeprav timingi ne bodo tako natančni, kar pomeni, da lahko pride do napak pri prenosu podatkov.
Ja in Arduino IDE mora vedeti, da dela kontroler na 8MHz!

Majci je napisal/a:
Ali je možno naložit arduino bootloader na čip iz spodnje povezave?

Da.

Programator za nalaganje bootloaderja stane <2$ (išči USBASP ali AVRISP).

Avtor: matjayKraj: Ljubljana PrispevekObjavljeno: Sre Okt 17, 2018 2:17 pm    Naslov sporočila:  
----------------------------------------------------------------------------
To je pa opis kako se naloži bootloader.
https://www.youtube.com/watch?v=jgHIFWPUe_M

LP
Matjaz

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Sre Okt 17, 2018 2:37 pm    Naslov sporočila:  
----------------------------------------------------------------------------
matjay je napisal/a:
To je pa opis kako se naloži bootloader.
Toda ne z Xloaderjem!

Avtor: joze PrispevekObjavljeno: Sre Okt 17, 2018 5:09 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Lp.

Kaj bootloader-ju je vseeno na kakšnji frekvenci je ATmega?

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Sre Okt 17, 2018 8:24 pm    Naslov sporočila:  
----------------------------------------------------------------------------
joze je napisal/a:
Kaj bootloader-ju je vseeno na kakšnji frekvenci je ATmega?
Ne!

Avtor: arksiKraj: Dolenjska PrispevekObjavljeno: Čet Okt 18, 2018 8:04 am    Naslov sporočila:  
----------------------------------------------------------------------------
Jaka57 je napisal/a:
matjay je napisal/a:
To je pa opis kako se naloži bootloader.
Toda ne z Xloaderjem!


Tako kot pravi Jaka.
Za nalaganje bootloader-ja je potreben programator. Lahko je USBasp, lahko pa tudi kakšen drug.

Če bo Majci spreminjal še takt mikrokontrolerja, bo moral s programatorjem v fuse bitih nastaviti še notranji takt na 8MHz. Če bo potem hotel programirati preko UART-a i s taktom 8 MHz, po potrebno spremeniti tudi bootloader.

p.s. Jaka, preveri, če nisem kaj kiksnil Wink.

p.s.2. Zakaj forum "deformira" povezavo ne E-bay? Kakšno novo pravilo?

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Čet Okt 18, 2018 11:46 am    Naslov sporočila:  
----------------------------------------------------------------------------
arksi je napisal/a:
p.s. Jaka, preveri, če nisem kaj kiksnil Wink.

p.s.2. Zakaj forum "deformira" povezavo ne E-bay? Kakšno novo pravilo?
Ne nič nisi kiksnil, dodal bi še, da mora biti bootloader preveden za nastavljeno frekvenco mege.

Kako misliš, da deformira eBay povezave?

Avtor: arksiKraj: Dolenjska PrispevekObjavljeno: Čet Okt 18, 2018 9:29 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Jaka57 je napisal/a:

Kako misliš, da deformira eBay povezave?


Hotel sem dati povezavo na Ebay za programator, pa mi v povezavi na programator samodejno naredi smeškota (proti koncu povezave). Sicer povezava celo deluje.....

Takole:
f:0" target="_blank">https://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin-Cable-USB-ATMEGA8-ATMEGA128-Arduino/310506909410?epid=5024462624&hash=item484ba76ee2:g:WxoAAOSwuyNbF7-h:rk:2Razzf:0

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Čet Okt 18, 2018 10:18 pm    Naslov sporočila:  
----------------------------------------------------------------------------
arksi je napisal/a:
Hotel sem dati povezavo na Ebay za programator, pa mi v povezavi na programator samodejno naredi smeškota (proti koncu povezave). Sicer povezava celo deluje.....

Takole:
f:0" target="_blank">https://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin-Cable-USB-ATMEGA8-ATMEGA128-Arduino/310506909410?epid=5024462624&hash=item484ba76ee2:g:WxoAAOSwuyNbF7-h:rk:2Razzf:0

Zakaj pa ne uporabljaš gumba Povezava?
Z uporabo le tega bi potem tako izgledala tvoja povezava .

Tudi sama tvoja povezava je prekleto čudna, ali se ne začenjajo (normalne) povezave s http(s)......?

Avtor: gustinmi PrispevekObjavljeno: Tor Feb 26, 2019 1:47 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Arduino čipi pridejo iz tovarne na dva načina: z naloženim bootlodear-jem (cena cca 4$) in brez njega (cca 2$). Tudi če so brez bootloaderja, imajo potrditvene zastavice nastavlje (FUSE) tako, da zahtevajo 16 MHZ uro. Če želiš, lahko spreminjaš te FUSE nastavitve; seveda lahko ponastaviš, da čip deluje na 8MHZ, toda najpreš potrebuješ programator, s katerim boš spremenil FUSE in s katerim boš namestil svoj bootloader. Programator je najcenene kar delujoč arduino nano ali uno, ki ga poženeš v načinu Arduino ISP programator.
To pomeni, da za prvi zagon rabiš čip ATMEGA328PU, 16 MHZ kristal par kondenzatorjev in en Arduino board. Na arduino board naložiš arduino programator in nato na breadboardu narediš vezje z čipom in 16 MHZ kristalom. Nato s programatorjem naložiš nove zastavice na čip (zamenjaš kristal) in voila - lahko nastaviš delovanje v 8 MHZ načinu. Jaz sem sledil temu: https://www.instructables.com/id/Arduino-UNO-as-AtMega328P-Programmer/

Kontaktiraj me če potrebuješ dodatno pomoč.

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Tor Feb 26, 2019 2:05 pm    Naslov sporočila:  
----------------------------------------------------------------------------
gustinmi je napisal/a:
.....Nato s programatorjem naložiš nove zastavice na čip (zamenjaš kristal) in voila - lahko nastaviš delovanje v 8 MHZ načinu. Jaz sem sledil temu: https://www.instructables.com/id/Arduino-UNO-as-AtMega328P-Programmer/.......
Drži, toda bootloader, ki je naložen, je preveden za delovanje na 16MHz in če želiš uporabljati mego328 /8MHz v Arduino okolju, brez ekstra programatorja, je potrebno ponovno sprogramirati bootloader za to frekvenco.

Arduino čipov ni, so samo take ali drugačne Arduino plošče, na katerih so, pač, določeni MCUji!

Avtor: BranezKraj: Koprivnica (HR), Hoče (SLO) PrispevekObjavljeno: Tor Feb 26, 2019 2:21 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Jaka57 je napisal/a:
...
Arduino čipov ni, so samo take ali drugačne Arduino plošče, na katerih so, pač, določeni MCUji...
...in kvarci z določeno frekvenco.

Avtor: gustinmi PrispevekObjavljeno: Tor Feb 26, 2019 2:22 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Hvala za opozorilo.

Avtor je spraševal, kako zamenjat, da vse teče z uro 8MHZ. Najlažji način, je sestavit svoj Arduino, saj je kristale dol odspajkat precej težko in nepredvidljivo opravilo, v primeru, da je PCB iz več kot 2 plasti pa tudi skoraj sigurno obsojeno na neuspeh.

Z "arduino čipom" sem mislil karkoli, ki ima AVR mikroprocesorsko arhitekturo:

ATMEGA328PU npr.. Ali pa tudi ATTINY85.

"Arduino" je pa razvojna ploščica s takim čipom, hvala za popravek.

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Tor Feb 26, 2019 2:57 pm    Naslov sporočila:  
----------------------------------------------------------------------------
gustinmi je napisal/a:
...... saj je kristale dol odspajkat precej težko in nepredvidljivo opravilo, v primeru, da je PCB iz več kot 2 plasti pa tudi skoraj sigurno obsojeno na neuspeh.........
Tole pa definitivno ne pije vode, pa lahko ima plošča žnj plasti!

Avtor: gustinmi PrispevekObjavljeno: Tor Feb 26, 2019 3:17 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Seveda imaš spet prav, ne drži..

Odgovoril sem glede na lastne izkušnje, kako je najlažje zmanjšati frekvenco čipa, ki poganja Arduino razvojno ploščico. Ugotovil sem, da je zelo poučno, če si sam sestaviš svojo arduino ploščico, tako da si kupiš nek AVR čip, kristal, dva kondenzatorja in prototipni breadboard + neko že delujočo arduino prototipo ploščico, ki jo uporabiš kot "Arduino ISP programmer." Točno to imam na mizi pred sabo, in zadeva deluje uspešno. Lahko zamenjam frekvenco, naložim svoj bootloader, berem FUSE nastavitve, menjam način delovanja EEPROMA ipd.

Imel sem v mislih, da je ta poučni proces boljši, kakor pa odspajkavat SMD kristale na 5$ vrednih kitajskih ploščicah XX_ino. (verjetno je več možnosti za uspeh, na originalnih arduino ploščah, kjer se držijo designa)

Glede problema več plasti plasti sem imel v mislih tole: če ima kristal nožice lotane na PADE na notranjem sloju, potem je verjetnost hladnega lota velika. Pri kristalu ki niha s frekvenco 16 MHZ, lahko to pomeni nestabilno delovanje.

Vse se da odspajkat in zamenjat, to je tudi moje področje kjer zelo uživam, želel sem podeliti mojo izkušnjo, ki je tudi uspela.

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Tor Feb 26, 2019 4:29 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Če je lotanje tvoje področje, potem bi moral vedeti, da pri pravilnem lotanju ne bo prišlo do hladnega lota, pri nepravilnem pa ni važno ali je to THT element ali pa SMD.
Sestavljanje Arduino plošče v lastni režiji vzame bistveno več časa, kot pa samo lotanje kristala.

In še nekaj, ISP programmer uporabljam samo za nalaganje botloaderja in eventuelno spreminjanje FUSE bitov, drugače pa samo USB->TTLserial (FTDI) ploščico.
In pri spreminjanju frekvence kristala je potrebno tudi bootloader prevesti za to frekvenco, če želiš programirati direktno iz Arduino IDE preko Tx, RX portov.

Arduino plošča kot programator pa tako ali tako ni smiselna, saj je pri , kjer večinoma kupujemo tozadevne zadeve, USBAsp programator cenejši od samega Arduina.

Sicer pa sto ljudi sto čudi, enemu paše tako drugemu drugače, eni vidijo v nečem smisel, drugi ga pač ne in to je to.

Recimo, jaz pri vseh Arduino ploščah , ki nimajo Opti bootloaderja, naložim le tega.

Avtor: gustinmi PrispevekObjavljeno: Tor Feb 26, 2019 4:46 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Vse drži, kot praviš, toda jaz kot začetnik sem naredil sledečo napako :

Pri USB->TTLserial (FTDI) je treba ful pazit, da na začetku spusti t.i. reset signal na RST pin arduino čipa, da se čip resetira, ker šele to trigne bootloader. Jaz sem kupil 2 konektorja, obadva brez te opcije. Imela sta sicer pravi čip CH340, vendar je reset pin bil floating, ni bil zvezan na kabel. Tako sem moral na roke stisnit RST gumb, da se je sketch naložil.

Za bootloader je treba sploh konceptualno dobro spoznat arduino IDE, arduino, arduino ISP. Tukaj sem odkril, da arduino nano ploščica stane manj kot 2$. To je manj kot katerikoli USBAsp programator.

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Sre Feb 27, 2019 12:13 am    Naslov sporočila:  
----------------------------------------------------------------------------
Zopet si hiter.
En cel kup jih je pod 2$, recimo 1.6$ je tudi manj kot 2$ USBASP.

Ja, USB->TTL mora imeti proti Arduinu aktiven DTR pin.

Avtor: RGorazdKraj: Ig PrispevekObjavljeno: Čet Feb 28, 2019 8:51 am    Naslov sporočila:  
----------------------------------------------------------------------------
Elektropionirčki...

vsak Arduino je lahko tuidi ISP programator.

https://www.arduino.cc/en/tutorial/arduinoISP

Avtor: gustinmi PrispevekObjavljeno: Čet Feb 28, 2019 11:27 am    Naslov sporočila:  
----------------------------------------------------------------------------
Citiram:
vsak Arduino je lahko tuidi ISP programator.


Točno tako. Zato sem predlagal, da se uporabi kot osnovno orodje pri nalaganju bootloaderja. Kupiš en Arduino board in imaš ISP programator za katerikoli AVR čip. Da se ne komplicira z USBASP kablom itd ...

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Čet Feb 28, 2019 12:15 pm    Naslov sporočila:  
----------------------------------------------------------------------------
RGorazd je napisal/a:
......vsak Arduino je lahko tuidi ISP programator....
Seveda, saj o tem smo elektropionirčki malo više pisali....
Toda recimo, Arduino nano je dražji od USBAsp programatorja, samo za to gre.
No pri gustinmiju pa gre še za učenje samo, s čimer se tudi strinjam, saj sem napisal "Vsako tele.....".

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group