eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Mikrokontrolery 32b Silabs
Ilość wypowiedzi w tym wątku: 8

  • 1. Data: 2020-10-08 17:30:42
    Temat: Mikrokontrolery 32b Silabs
    Od: Piotr Gałka <p...@c...pl>

    Przegryzam się (od absolutnego zera - nigdy nie miałem bliższego
    kontaktu z 32 bitami) przez datasheety procków Silabsa:
    Tiny-Gecko, Jade-Gecko, Pearl-Gecko. Moim celem jest zaprojektowanie
    płytki do testów.

    Czytam, czytam i jak na razie nie natknąłem się na odpowiedź na
    podstawowe według mnie pytania. Ale czytam 'jak leci' nie szukając
    odpowiedzi na konkretne pytania. A sobie pomyślałem, że może ktoś po
    prostu wie to zaoszczędzi mi szukania.

    Temat 1.
    W Xmegach do programowania podłączałem się pod PDI - dwa piny (w tym
    jeden był Reset).

    Tutaj są DBG_SWCLKTCK i DBG_SWDIOTMS o których wyczytałem, że po resecie
    są aktywne.
    Skoro te nogi dają się też użyć inaczej to:
    - ta 'aktywność' nie może trwać wiecznie,
    - nie może być wyłączana jakimś rozkazem po tym łączu bo przecież w
    docelowym urządzeniu nikt tam nic nie będzie wysyłał.

    Jak i kiedy ta aktywność 'się wyłącza'.
    Na obecnym etapie usiłuję przede wszystkim ustalić, czy do złącza do
    programowania muszę też doprowadzać linię reset, czy może wystarczy
    rozpoczynać programowanie odpowiednio szybko po włączeniu zasilania.
    Tylko, że normalnie to już kilkadziesiąt ms po zasileniu, urządzenia
    działają pełną parą więc może tego czasu jest za mało na działania 'ręczne'.

    Jakoś nie zadbali, aby pin Reset był w pobliżu tych dwu linii (w Tiny
    szczególnie).

    Ktoś może wie czy tą linią reset też trzeba zarządzać z programatora?

    Temat 2.
    W datasheet Jade 12:
    https://pl.mouser.com/datasheet/2/368/efm32jg12-data
    sheet-1666221.pdf

    strona 99 - piny USARTa 0 (US0_CLK, US0_CS, US0_CTS, USO_RTS, USO_RX,
    USO_TX) mogą być podłączone praktycznie do każdej nogi. Ale zastanawia
    mnie przesunięcie tych nóg na listach o 1.
    Dla kolejnych linii UARTa dla tego samego numerka identyfikującego
    wybrany pin obudowy przypisane są kolejne piny wokół procesora.

    To mi sugeruje, że być może można tego UARTa obracać wokół obudowy
    scalaka ale zawsze poszczególne piny w jednakowym porządku względem siebie.

    Czy piny UARTa muszą być 'w ustalonym porządku' czy jest pełna dowolność?
    P.G.


  • 2. Data: 2020-10-08 18:58:56
    Temat: Re: Mikrokontrolery 32b Silabs
    Od: Zbych <a...@o...pl>

    On 08.10.2020 17:30, Piotr Gałka wrote:
    > Przegryzam się (od absolutnego zera - nigdy nie miałem bliższego
    > kontaktu z 32 bitami) przez datasheety procków Silabsa:
    > Tiny-Gecko, Jade-Gecko, Pearl-Gecko. Moim celem jest zaprojektowanie
    > płytki do testów.

    Nie używałem nic od Silabs, ale SWD jest zaprojektowane przez ARMa i
    niezależne w dużej mierze od producenta uC.

    > Tutaj są DBG_SWCLKTCK i DBG_SWDIOTMS o których wyczytałem, że po resecie
    > są aktywne.
    > Skoro te nogi dają się też użyć inaczej to:
    > - ta 'aktywność' nie może trwać wiecznie,

    Trwa wiecznie, chyba że twój program zmieni konfigurację SWD po starcie
    uC. Po ponownym resecie SWD wróci.

    The SW Debug Port is routed as an alternate function and the SWDIO and
    SWCLK pin connections are enabled by default with internal pull up and
    pull down resistors, respectively. It is possible to disable these pin
    connections (and disable the pull resistors) by setting the SWDIOTMSPEN
    and SWCLKTCKPEN bits in GPIO_ROUTEPEN to 0.

    To widziałeś?
    https://www.silabs.com/documents/public/application-
    notes/an0062.pdf
    > Na obecnym etapie usiłuję przede wszystkim ustalić, czy do złącza do
    > programowania muszę też doprowadzać linię reset, czy może wystarczy
    > rozpoczynać programowanie odpowiednio szybko po włączeniu zasilania.

    Linia reset nie jest niezbędna. Według dokumentacji (AAP Window)
    przydaje się do zdejmowania blokady debugowania, lub odzyskiwania
    kontroli nad SWD jeśli twój program go wyłącza szybko po starcie.
    Jeśli tego nie robisz, to programowanie można rozpocząć w dowolnym momencie.

    Sprawdź też czy wygodniej/taniej do programowania nie będzie użyć
    bootloadera.
    https://www.silabs.com/documents/public/application-
    notes/an0003-efm32-uart-bootloader.pdf


  • 3. Data: 2020-10-08 20:02:58
    Temat: Re: Mikrokontrolery 32b Silabs
    Od: Piotr Gałka <p...@c...pl>

    W dniu 2020-10-08 o 18:58, Zbych pisze:

    > Nie używałem nic od Silabs, ale SWD jest zaprojektowane przez ARMa i
    > niezależne w dużej mierze od producenta uC.

    Nie wiedziałem, że określa się to SWD. Piny są SWCLK i SWDIO (data
    input/output). Wspólne w nazwach jest SW (Serial Wire).

    > Trwa wiecznie, chyba że twój program zmieni konfigurację SWD po starcie
    > uC. Po ponownym resecie SWD wróci.

    Dzięki za info. Głupio mi, że nie wpadłem na to, że tak to też przecież
    może być (nigdy nie popełniłem żadnego programu na mikrokontroler).
    Czyli jeśli nie wykorzystam tych pinów do czegoś innego i w związku z
    tym procesor nie będzie miał powodu zaczynać swojej pracy od
    przełączenia ich na co innego to mogę nie podłączać resetu do gniazdka
    programowania. To mi pasuje bo 3 dziurki daje się ustawić w trójkąt i
    nie ma wątpliwości jak włożyć kabelek. Ustawienie 4 dziurek w sposób
    jednoznaczny zajęło by więcej miejsca i dawało by mniejszą pewność
    kontaktowania wszystkich pinów.

    > The SW Debug Port is routed as an alternate function and the SWDIO and
    > SWCLK pin connections are enabled by default with internal pull up and
    > pull down resistors, respectively. It is possible to disable these pin
    > connections (and disable the pull resistors) by setting the SWDIOTMSPEN
    > and SWCLKTCKPEN bits in GPIO_ROUTEPEN to 0.

    Ten fragment musi pochodzić z czegoś innego niż datasheet. Zapewne z
    reference manuala. Na razie przejrzałem datasheet rodziny Tiny i
    przeglądam Jade, a w planie mam jeszcze Pearl. Robię to powoli, bo robię
    sobie jednocześnie ściągę (spreadsheet) co do którego pinu w wybranych
    wstępnie obudowach mogę podłączyć - przyda się przy robieniu schematów i
    płytek.
    Na razie zwróciłem uwagę, na zupełnie inny zakres możliwości podłączania
    Tiny i Jade. Nie podoba mi się że w Jade QFN48 zostawili 4 nogi NC. Może
    przez to mi brakować nóg, a w BGA nie chcę wchodzić.

    >
    > To widziałeś?
    > https://www.silabs.com/documents/public/application-
    notes/an0062.pdf

    Pobrałem sobie prawie wszystkie appnoty które w nazwie nie miały żadnych
    krzaczków (jeszcze nie znalazłem czasu aby zajrzeć).
    Teraz sprawdziłem, że te co pobrałem kończą się na 0060, potem jedna 136
    i dalej już nr ponad 800.
    Czyli odpowiedź: Nie widziałem.
    Jestem zdziwiony, że jak u Silabsa wybiorę konkretną rodzinę i potem
    noty aplikacyjne i zamiast kilku podstawowych zażyczę sobie wszystkich
    to tej 0062 nie ma na liście.

    Wielkie dzięki.

    Tytuł sugeruje, że jest to dokładnie to co będzie mi potrzebne bo
    zapewne nie za długo będziemy ustalali z bratem jakie uniwersalne
    rozkazy ująć w programatorze, abym potem korzystając z nich mógł
    programować te procesory.

    > Linia reset nie jest niezbędna. Według dokumentacji (AAP Window)
    > przydaje się do zdejmowania blokady debugowania, lub odzyskiwania
    > kontroli nad SWD jeśli twój program go wyłącza szybko po starcie.
    > Jeśli tego nie robisz, to programowanie można rozpocząć w dowolnym
    > momencie.

    Dzięki za potwierdzenie tego na co wpadłem po Twojej odpowiedzi wyżej.

    > Sprawdź też czy wygodniej/taniej do programowania nie będzie użyć
    > bootloadera.
    > https://www.silabs.com/documents/public/application-
    notes/an0003-efm32-uart-bootloader.pdf

    Wiem, że jest tam jakiś bootloader i na pewno też go sprawdzimy.
    Tę notę akurat mają wśród 'wszystkich' więc ją miałem.

    Podejrzewam, że to co nas przede wszystkim będzie interesowało, to czy
    za pomocą tego bootloadera da się zaprogramować wszystko (włącznie z
    bootloaderem).

    Ostatnio doszliśmy w Xmegach do etapu, że (w uproszczeniu) najpierw
    ładujemy program testowy w obszar 'zwykły' a potem on ładuje dane
    (personalizujące urządzenie) do bootloadera i zabezpiecza obszar
    bootloadera i dopiero potem ładowny jest docelowy program, który
    nadgrywa program testowy.
    P.G.


  • 4. Data: 2020-10-08 22:13:32
    Temat: Re: Mikrokontrolery 32b Silabs
    Od: Zbych <a...@o...pl>

    Piotr Gałka wrote on 08.10.2020 20:02:
    >
    > Podejrzewam, że to co nas przede wszystkim będzie interesowało, to czy
    > za pomocą tego bootloadera da się zaprogramować wszystko (włącznie z
    > bootloaderem).

    Fabrycznego bootloadera raczej się nie pozbędziesz.


  • 5. Data: 2020-10-09 09:03:10
    Temat: Re: Mikrokontrolery 32b Silabs
    Od: Bool <n...@n...com>

    W dniu 2020-10-08 o 20:02, Piotr Gałka pisze:
    > Podejrzewam, że to co nas przede wszystkim będzie interesowało, to czy za pomocą
    tego bootloadera da
    > się zaprogramować wszystko (włącznie z bootloaderem).

    "Wbudowanego" bootloadera nie dasz rady zmienić, ale nic nie stoi na przeszkodzie aby
    napisać swój i
    ładować główny soft do flasha pod odpowiedni adres. Dla programu głównego trzeba
    wtedy przesunąć
    adresy przerwań, w Cortex-M3 z tego co pamiętam robi się to dość prosto. W Cortex-M0
    wymaga to
    więcej zachodu, bo nie ma odpowiedniego rozkazu do tego.

    Co do SWD to jest tak jak Zbych napisał. Wszystkie ARMy które znam działają tak, że
    jak nie zmienisz
    funkcji pinów SWD w swoim sofcie na np. zwykłe GPIO, to będzie on działał zawsze jako
    SWD.
    Zwykle producenci dają taką możliwość i sam z tego korzystałem.



  • 6. Data: 2020-10-09 10:32:22
    Temat: Re: Mikrokontrolery 32b Silabs
    Od: Piotr Gałka <p...@c...pl>

    W dniu 2020-10-09 o 09:03, Bool pisze:

    > "Wbudowanego" bootloadera nie dasz rady zmienić, ale nic nie stoi na
    > przeszkodzie aby napisać swój i ładować główny soft do flasha pod
    > odpowiedni adres. Dla programu głównego trzeba wtedy przesunąć adresy
    > przerwań, w Cortex-M3 z tego co pamiętam robi się to dość prosto. W
    > Cortex-M0 wymaga to więcej zachodu, bo nie ma odpowiedniego rozkazu do
    > tego.

    Przyjmuję do 'akceptującej wiadomości'.
    Mam za małe (faktycznie zerowe) doświadczenie z tym co się dzieje w
    prockach, aby podejmować jakąkolwiek dyskusję. Poza tym jedyne
    informacje jakie obecnie posiadam dotyczą w zasadzie tylko Xmega.

    Obiło mi się gdzieś, że tego bootloadera można skasować, ale że nie
    pamiętam źródła to równie dobrze mogło to być jedynie wewnętrzne, niczym
    nie uzasadnione przekonanie, że tak przecież 'musi być'.
    P.G.


  • 7. Data: 2020-10-09 14:56:06
    Temat: Re: Mikrokontrolery 32b Silabs
    Od: Piotr Gałka <p...@c...pl>

    W dniu 2020-10-09 o 10:32, Piotr Gałka pisze:

    >> "Wbudowanego" bootloadera nie dasz rady zmienić,
    [...]

    > Obiło mi się gdzieś, że tego bootloadera można skasować,

    Już wiem, gdzie mi się obiło. Fragment z EFM32JG12 Family Data Sheet:
    -------------
    3.10.4 Bootloader
    All devices come pre-programmed with a UART bootloader. This bootloader
    resides in flash and can be erased if it is not needed.
    -------------
    P.G.


  • 8. Data: 2020-10-10 09:48:03
    Temat: Re: Mikrokontrolery 32b Silabs
    Od: Bool <n...@n...com>

    W dniu 2020-10-09 o 14:56, Piotr Gałka pisze:
    > W dniu 2020-10-09 o 10:32, Piotr Gałka pisze:
    >
    >>> "Wbudowanego" bootloadera nie dasz rady zmienić,
    > [...]
    >
    >> Obiło mi się gdzieś, że tego bootloadera można skasować,
    >
    > Już wiem, gdzie mi się obiło. Fragment z EFM32JG12 Family Data Sheet:
    > -------------
    > 3.10.4 Bootloader
    > All devices come pre-programmed with a UART bootloader. This bootloader resides in
    flash and can be
    > erased if it is not needed.
    > -------------

    Faktycznie, w przypadku niektórych EFM32 ten bootloader może być nadpisany.

    https://www.silabs.com/documents/public/application-
    notes/an0003-efm32-uart-bootloader.pdf

    "Can be overwritten to maximize available flash area (EFM32 Series 0 and EZR32 Series
    0 only) or be
    disabled by a lock bit in the lock bit page (EFM32 Series 1 only)."




strony : [ 1 ]


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: