-
1. Data: 2018-12-15 18:38:54
Temat: Arduino Due - brak automatycznego kasowania
Od: Atlantis <m...@w...pl>
Kwestia o którą chcę zapytać nie jest żadnym poważnym problemem, pytam
bardziej z ciekawości. Mianowicie wpadło w moje ręce Arduino Due, będące
częścią pewnego projektu. Podczas eksperymentów podjąłem próbę wgrania
zaktualizowanego kodu, podpinając go przez "programming port" (konwerter
USB-UART zrobiony na atmega16u2, tak jak w innych płytkach Arduino).
Okazało się jednak, że przy próbie wgrania kodu wywala się błąd o
niemożliwości znalezienia płytki na tym interfejsie. Z ciekawości
spróbowałem wgrać przez natywny port USB - tutaj zadziałało bez problemu.
Sprawa jednak mnie zainteresowała i zacząłem eksperymentować. Szybko
odkryłem przyczynę - okazało się, że przed wgraniem softu konieczne jest
ręczne skasowane flasha przyciskiem ERASE - po takiej operacji płytka
przechodzi w tryb bootloadera i flashowanie przez UART przebiega normalnie.
Zdziwiło mnie to, bo inaczej zapamiętałem zachowanie tej płytki. Wyjąłem
więc z pudełka swoje własne Due i zrobiłem test. Tym razem wszystko
przebiegało normalnie - nie trzeba było wciskać przycisku, plytka
flashowała się automatyczne.
I teraz mnie zastanawia - tak z czystej ciekawości - możliwa przyczyna.
Inna rewizja płytki? Różnica pomiędzy oryginałem i możliwą podróbką?
Inny soft w konwerterze na a16u2? A może jakieś dziwne uszkodzenie,
które jakimś cudem w ogóle nie przeszkadza w korzystaniu z konwertera
UART-USB? Bo po wgraniu programu zaczyna on działać normalnie.
-
2. Data: 2018-12-15 22:27:44
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: a...@m...uni.wroc.pl
Atlantis <m...@w...pl> wrote:
> Kwestia o kt?r? chc? zapyta? nie jest ?adnym powa?nym problemem, pytam
> bardziej z ciekawo?ci. Mianowicie wpad?o w moje r?ce Arduino Due, b?d?ce
> cz??ci? pewnego projektu. Podczas eksperyment?w podj??em pr?b? wgrania
> zaktualizowanego kodu, podpinaj?c go przez "programming port" (konwerter
> USB-UART zrobiony na atmega16u2, tak jak w innych p?ytkach Arduino).
>
> Okaza?o si? jednak, ?e przy pr?bie wgrania kodu wywala si? b??d o
> niemo?liwo?ci znalezienia p?ytki na tym interfejsie. Z ciekawo?ci
> spr?bowa?em wgra? przez natywny port USB - tutaj zadzia?a?o bez problemu.
>
> Sprawa jednak mnie zainteresowa?a i zacz??em eksperymentowa?. Szybko
> odkry?em przyczyn? - okaza?o si?, ?e przed wgraniem softu konieczne jest
> r?czne skasowane flasha przyciskiem ERASE - po takiej operacji p?ytka
> przechodzi w tryb bootloadera i flashowanie przez UART przebiega normalnie.
>
> Zdziwi?o mnie to, bo inaczej zapami?ta?em zachowanie tej p?ytki. Wyj??em
> wi?c z pude?ka swoje w?asne Due i zrobi?em test. Tym razem wszystko
> przebiega?o normalnie - nie trzeba by?o wciska? przycisku, plytka
> flashowa?a si? automatyczne.
>
> I teraz mnie zastanawia - tak z czystej ciekawo?ci - mo?liwa przyczyna.
> Inna rewizja p?ytki? R??nica pomi?dzy orygina?em i mo?liw? podr?bk??
> Inny soft w konwerterze na a16u2? A mo?e jakie? dziwne uszkodzenie,
> kt?re jakim? cudem w og?le nie przeszkadza w korzystaniu z konwertera
> UART-USB? Bo po wgraniu programu zaczyna on dzia?a? normalnie.
Kwestia bootloadera. a16u2 po prostu wystawia port, bootlader
musi rozpoznac czy to programowanie czy komunikacja przez port.
Wieksze MCU maja wlasny bootlader ktory dziala tylko w specjalnych
okolicznosciach (tak by wykluczyc konflikt z protokolem uzywanym
przez program). Typowe rozwiazania to specjalny pin uaktywniajacy
programowanie. Popularne tez jest uruchomianie bootloadera gdy
procek jest pusty (po ERASE). Arduino ma wlasny bootloader
ktory z punktu widzenia procka jest czescia programu, ale
srodowisko Arduino tak organizuje zapis zeby raz zapisany
bootloader pozostal na stale we flashu. Jak rozumiem w Due
mozna sie obyc bez bootloadera z Arduino i pewnie dostales
takie Arduino bez bootloadera Arduino (albo z bootloaderm
okrojonym do USB). Programujac przez UART programowales
bootloaderm procka (a nie bootloaderm Arduino ktory czeka
na program po kazdym resecie). Jak wykasujesz caly flash
(czyli bootloader Arduino) w swoim Due to tez bedzie sie
tak zachowywac.
--
Waldek Hebisch
-
3. Data: 2018-12-15 23:49:32
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
a...@m...uni.wroc.pl <a...@m...uni.wroc.pl> napisał(a):
> Kwestia bootloadera. a16u2 po prostu wystawia port,
Wystawia również RESET oraz ERASE. Dlatego normalnie nie trzeba nic
naciskać.
> bootlader
> musi rozpoznac czy to programowanie czy komunikacja przez port.
Bootloader albo jest aktywny albo nie jest, niczego nie rozpoznaje.
> Wieksze MCU maja wlasny bootlader ktory dziala tylko w specjalnych
> okolicznosciach (tak by wykluczyc konflikt z protokolem uzywanym
> przez program). Typowe rozwiazania to specjalny pin uaktywniajacy
> programowanie. Popularne tez jest uruchomianie bootloadera gdy
> procek jest pusty (po ERASE).
Tak właśnie jest tutaj. Jest atmelowski bootloader w ROM uaktywniający się
po wyczyszczeniu pamięci.
> Arduino ma wlasny bootloader
> ktory z punktu widzenia procka jest czescia programu, ale
> srodowisko Arduino tak organizuje zapis zeby raz zapisany
> bootloader pozostal na stale we flashu. Jak rozumiem w Due
> mozna sie obyc bez bootloadera z Arduino i pewnie dostales
> takie Arduino bez bootloadera Arduino (albo z bootloaderm
> okrojonym do USB).
W Due nie stosuje się bootloadera Arduino, jest zbędny.
>.Jak wykasujesz caly flash
> (czyli bootloader Arduino) w swoim Due to tez bedzie sie
> tak zachowywac.
Nie ma bootloadera Arduino we Flashu.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
4. Data: 2018-12-15 23:50:54
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Atlantis <m...@w...pl> napisał(a):
> I teraz mnie zastanawia - tak z czystej ciekawości - możliwa przyczyna.
> Inna rewizja płytki? Różnica pomiędzy oryginałem i możliwą podróbką?
> Inny soft w konwerterze na a16u2?
Tak bym obstawiał. Soft niewysterowujący linii ERASE. Ewentualnie brak
podłączenia tej linii do Atmegi, jedynie do przycisku.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
5. Data: 2018-12-17 12:51:36
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: Atlantis <m...@w...pl>
On 15.12.2018 23:49, Grzegorz Niemirowski wrote:
> Tak właśnie jest tutaj. Jest atmelowski bootloader w ROM uaktywniający
> się po wyczyszczeniu pamięci.
Hmm... To jest ten sam bootloader, który był wykorzystywany w
mikrokontrolerach AT91SAM7 od Atmela (SAM-BA)?
Rozumiem, że istnieje jakieś konsolowe narzędzie do flashowania, z
którego korzysta Arduino i które mógłbym sobie podpiąć pod Makefile?
Wiesz może co to za narzędzie i czy jest też kompatybilne ze starą
rodziną SAM7?
-
6. Data: 2018-12-17 14:27:19
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Atlantis <m...@w...pl> napisał(a):
> Hmm... To jest ten sam bootloader, który był wykorzystywany w
> mikrokontrolerach AT91SAM7 od Atmela (SAM-BA)?
Tak, ten sam.
> Rozumiem, że istnieje jakieś konsolowe narzędzie do flashowania, z
> którego korzysta Arduino i które mógłbym sobie podpiąć pod Makefile?
> Wiesz może co to za narzędzie i czy jest też kompatybilne ze starą
> rodziną SAM7?
To narzędzie to właśnie SAM-BA. Arduino używa AVRDUDE do AVRów, a do ARMów
Atmela właśnie SAM-BA. Nie wiem czy jest kompatybilne ze starą rodziną ale
chyba tak. W każdym razie jeśli masz Arduino IDE to masz na dysku też to
narzędzie.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
7. Data: 2018-12-17 18:08:24
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: a...@m...uni.wroc.pl
Grzegorz Niemirowski <g...@p...onet.pl> wrote:
> a...@m...uni.wroc.pl <a...@m...uni.wroc.pl> napisa?(a):
> > Kwestia bootloadera. a16u2 po prostu wystawia port,
>
> Wystawia r?wnie? RESET oraz ERASE. Dlatego normalnie nie trzeba nic
> naciska?.
>
> > bootlader
> > musi rozpoznac czy to programowanie czy komunikacja przez port.
>
> Bootloader albo jest aktywny albo nie jest, niczego nie rozpoznaje.
W Due faktycznie. Ja pisalem ogolnie, w Uno i paru innych wariantach
bootloader robi wiecej. Czy chcesz to nazwac "rozpoznaje" to twoja
sprawa. W kazdym razie musi podjac decyzje.
> > Wieksze MCU maja wlasny bootlader ktory dziala tylko w specjalnych
> > okolicznosciach (tak by wykluczyc konflikt z protokolem uzywanym
> > przez program). Typowe rozwiazania to specjalny pin uaktywniajacy
> > programowanie. Popularne tez jest uruchomianie bootloadera gdy
> > procek jest pusty (po ERASE).
>
> Tak w?a?nie jest tutaj. Jest atmelowski bootloader w ROM uaktywniaj?cy si?
> po wyczyszczeniu pami?ci.
>
> > Arduino ma wlasny bootloader
> > ktory z punktu widzenia procka jest czescia programu, ale
> > srodowisko Arduino tak organizuje zapis zeby raz zapisany
> > bootloader pozostal na stale we flashu. Jak rozumiem w Due
> > mozna sie obyc bez bootloadera z Arduino i pewnie dostales
> > takie Arduino bez bootloadera Arduino (albo z bootloaderm
> > okrojonym do USB).
>
> W Due nie stosuje si? bootloadera Arduino, jest zb?dny.
Racja. Mnie zmylilo ze sa (nieoficjalne) warianty gdzie bootloader
jest "bardziej zbedny" niz w Due ale go wrzucaja...
--
Waldek Hebisch
-
8. Data: 2018-12-17 18:14:15
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
a...@m...uni.wroc.pl <a...@m...uni.wroc.pl> napisał(a):
> W kazdym razie musi podjac decyzje.
Jaką decyzję? Ma się po prostu nie zawiesić jak dostanie coś niezgodnego ze
swoim protokołem.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
9. Data: 2018-12-17 19:07:50
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: a...@m...uni.wroc.pl
Grzegorz Niemirowski <g...@p...onet.pl> wrote:
> a...@m...uni.wroc.pl <a...@m...uni.wroc.pl> napisa?(a):
> > W kazdym razie musi podjac decyzje.
>
> Jak? decyzj?? Ma si? po prostu nie zawiesi? jak dostanie co? niezgodnego ze
> swoim protoko?em.
No wlasnie: musi stwierdzic czy to co dostaje jest zgodne z protokolem.
W Uno zgodnosc obejmuje timeout, a jak nie ma nowego programu to
uruchamia stary.
--
Waldek Hebisch
-
10. Data: 2018-12-17 19:13:35
Temat: Re: Arduino Due - brak automatycznego kasowania
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
a...@m...uni.wroc.pl <a...@m...uni.wroc.pl> napisał(a):
> No wlasnie: musi stwierdzic czy to co dostaje jest zgodne z protokolem.
> W Uno zgodnosc obejmuje timeout, a jak nie ma nowego programu to
> uruchamia stary.
Ten bootloader jest uruchamiany po wykasowaniu programu. Timeout nie ma
sensu bo i tak starego programu już dawno nie ma.
--
Grzegorz Niemirowski
https://www.grzegorz.net/