-
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)."