eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Arduino Due - brak automatycznego kasowania
Ilość wypowiedzi w tym wątku: 11

  • 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/

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: