sobota, 10 listopada 2018

ATSAML21 - budujemy płytkę developerską dla Legendy z rdzeniem Cortex M0+.

Ponieważ ATSAM-y są mało znane na naszym rynku a stanowią kawałek historii rozwoju nurtu ARM-owego i są spuścizną po firmie ATMEL. Postanowiłem pochylić się nad nimi i spróbować je bliżej poznać. Dodatkowym pretekstem było pojawienie się bardzo ciekawego środowiska firmy SEGGER, które wspiera wszystkie popularne serie ATSAM-ów. Środowisko to jest dostępne dla systemu Linux, mojego bazowego systemu. Aby rozpocząć przygodę z ATSAM-ami potrzebuję płytkę developerską. Zatem radośnie przystępuję do jej tworzenia. Tym razem przybliżę w jaki sposób i jakimi narzędziami tworzę takie projekty. Jestem zdania , że robienie własnych płytek jest nie tylko świetną i twórczą zabawą ale przybliża nas znacząco do poznania danego mikrokontrolera. Precz z lenistwem i kupowaniem gotowych płytek :)

Wątki dotyczące ATSAM-ów będę kontynuował na tym blogu ponieważ jest to linia produktowa firmy Microchip i głupio byłoby to rozdzielać pomimo,  że jest to ARM a nie PIC. Chociaż w PIC-ach też czekamy na pojawienie się wersji z rdzeniem ARM ,więc wszystko staje się względne.

Tworzenie własnej płytki developerskiej nie jest trudne, szczególnie mając na uwadze dostępne narzędzia takie np. EasyEda. Dzięki tej aplikacji naprawdę szybko i prosto można zrobić projekt. Takie programy jak Eagle, KickCad są fajne ale EasyEda bije je na głowę intuicyjnością i prostotą co skutkuje szybkością tworzenia projektów. Dodatkową zaletą jest to, że jest to aplikacja webowa, nie musimy martwić się o aktualizacje a projekty możemy rzeźbić wszędzie w zasięgu internetu np w autobusie jadąc do pracy :) Dla mnie ta aplikacja była objawieniem , bo przechodząc na nią z Eagle , po prostu nabrałem dodatkowej ochoty na robienie projektów :)

Na początku pokażę jak z grubsza wygląda u mnie proces wykonania projektu czyli od pomysłu do gotowej płytki , potem przejdziemy do szczegółów :

1. Znajduję obiekt zainteresowania czytaj mikrokontroler, szukam jego wersji w obudowie 48 pin (uważam ją za optymalną do płytek developerskich).

2. Wyszukuję w dokumentacji producenta zalecanych połączeń zewnętrznych, tutaj posiłkuje się również schematami dostępnych płytek developerskich .

3. Identyfikuję na podstawie dokumentacji lub innych podpowiadaczy takich jak np Atmel Start czy MCC pinologi peryferiów : SPI, I2C i UART. W przyjętym szablonie płytki developerskiej na , którym mam dwa złącza typu PICbus potrzebujemy 2xSPI , 2xI2C, 2xUART, potrzebujemy również informacji o pinach dla przerwań zewnętrznych i ewentualnie PWM-ów 

4. Rysowanie schematu elektrycznego w EasyEda, nie zdarzyło mi się jeszcze aby nie było jakiegoś elementu bibliotecznego, w Eagle natomiast co chwila trzeba było wyszukiwać w necie bibliotek na czym wytapiało się niepotrzebnie czas. Ponieważ robiąc pierwszy projekt dla PIC32MM niejako stworzyłem sobie szablon płytki , na którym bazuję w kolejnych projektach ,znacznie skraca mi to czas tworzenie nowego projektu. W zasadzie jedyną rzeczą z grubsza, która może podlegać zmianom to wyświetlacz i gniazdo do programowania MCU.
Poniżej przykład ostatnio zrobionego w konwencji szablonu, projektu dla EFM32TG11 firmy Silicon Labs.


5 . Tworzenie kompozycji płytki czyli rozmieszczenie elementów. Ponieważ mam już gotowy szablon z poprzednio projektowanych płytek dlatego jest mi łatwiej rozmieszczać elementy.

6. Rozmieszczenie ścieżek łączących elementy. W tym punkcie podpieram się autorouterem, który jest w/g mnie o wiele lepszy i szybszy niż ten np. w Eagle.

7. Na koniec drobne poprawki ręczne w prowadzeniu ścieżek , rozmieszczaniem napisów.

8. Wygenerowanie pliku Gerber i wysłanie projektu do płytkarni. W aplikacji EasyEDA zrobimy to w bardzo prosty sposób

Przejdźmy zatem do szczegółów. Mikrokontroler jaki mnie interesuje to ATSAML21G18B. w obudowie TQFP48 .Zalecane podłączenia zewnętrzne znajdziemy w datasheet od strony 1090 jedna z propozycji wygląda tak :

Dodatkowo zerkamy na schemat płytki developerskiej od producenta SAM L21 Xplained Pro Evaluation Kit
W części zasilania analogowego widzimy symbol cewki , która jest filtrem zakłóceń dla wyższych częstotliwości . Na schemacie płytki jest to element o symbolu BLM18PG471SN1 firmy Murata nazwany perełką ferrytową. Jest to  mikraśny element w obudowie 0603 ,dostępny na naszym rynku.
Niewątpliwie przyda nam się schemat sekcji Reset :


A poniżej podłączenie interfejsu do programowania z wykorzystaniem pełnego gniazda JTAG, choć warto zauważyć, że programujemy tylko w trybie SWD  czyli tak naprawdę to potrzebujemy 3 piny + 2 zasilanie. Do programowania w środowisku SEGGER-a użyję J-Link EDU mini



Wszystkie powyższe schematy znajdziemy w datasheet , są dobrze opisane i nie ma żadnego problemu z ich zrozumieniem to jest w końcu dokumentacja od byłej firmy ATMEL, która jest znana z przyjaznych użytkownikom dokumentacji.

Teraz przejdziemy do fazy szukania pinologi dla peryferiów SPI, I2C i UART.
Tutaj z pomocą przychodzi ATMEL START  czyli webowa aplikacja do konfigurowania mikrokontrolerów byłej firmy ATMEL. Aplikacja jest bardzo prosta i szybko można się połapać o co caman. Poniżej efekt działania aplikacji i przykładowa podpowiedź na których pinach możemy skonfigurować wybrane  peryferia, prościej się już nie da.



Tutaj mała dygresja, w ATSAM-ach znajdziemy moduły zwane SERCOM - Serial Communication Interface. Jest to moduł , który możemy skonfigurować jako jeden z trzech interfejsów SPI lub I2C lub USART. W wybranym przeze mnie ATSAML21G18B mamy 6 modułów SERCOM co oznacza , że możemy mieć do dyspozycji 6 x SPI lub 6 x I2C lub 6 x USART lub pomieszane dowolnie peryferia z ograniczeniem do 6 szt łącznie.

Kolejnym aspektem będzie ustalenie pinologi dla przerwań zewnętrznych i PWM, potrzebuję tego do złącz PICbus . Na płytce mam dwa złącza, więc potrzebujemy 2 x przerwania i 2 x PWM. Ponownie podpieramy się aplikacją webową ATMEL START. Miło , że Microchip nie skasował tej nazwy doceniając pracę inżynierów ATMELA. Warto tu zauważyć, że to unikalne narzędzie bo niespotykane u  innych producentów w postaci webowej.

Poruszanie się po ATMEL START jest bardzo intuicyjne , zajęło mi dosłownie małą chwilunię aby się tutaj odnaleźć i zakumać o co biega.

Musimy jeszcze tylko rozpoznać na jakich nóżkach wiszą kwarce i możemy przejść do rysowania schematu w EasyEDA.


W międzyczasie dotarło do mnie, że potrzebuję jeszcze 2 x SPI do sterowania wyświetlaczem i modułem kart SD. Dlatego muszę dokonać zmian w konfiguracji peryferiów. Przydałoby się 8 modułów SERCOM no ale nie ma co narzekać bo 6 szt to i tak sporo. Zatem przyjmuję na zasadzie kompromisu taką konfigurację peryferiów : 3 x SPI + 2 x USART + 1 x I2C.
Ostatecznie w projekcie przyjmę następującą pinologię :


Przechodzimy do rysowania schematu w EasyEDA .Symbol naszego modelu procka bez problemu znalazłem w bazie użytkowników aplikacji, co oznacza, że nie tylko ja wpadłem na pomysł podziałania z ATSAM-ami.

W projekcie postanowiłem wykorzystać wyświetlacz TFT 2.2 lub 2.8 oparty o ILI9341, czyli większy niż w projekcie dla Silicon Labs i PIC32MM. Będzie jakieś urozmaicenie no i znacznie większa rozdzielczość na poziomie 240x320, która umożliwi nam większe szaleństwa graficzne.





Wyświetlacz dostaniemy bez problemu na mocno azjatyckim portalu na literę A, na naszym rynku też znajdziemy. Biblioteki do tego jeszcze nie mamy ale piny są funkcjonalnie identyczne jak w ILI9163, więc pewnie za dużo się nie narobimy tworząc tę bibliotekę. W przypadku 2.8" mamy dodatkowo dotyk ale też jakieś narzekania w necie, że nie wiadomo jak ten dotyk uruchomić.

Pierwsze przymiarki do schematu , tutaj trzeba się skupić jak saper na polu z minami i kapustą bo jeden mały błąd i spierniczymy płytkę :



Po sprawdzeniu poprawności schematu powoli będę się zabierał do kolejnego etapu czyli rozmieszczania elementów na płytce. Tu będzie trochę fajnej zabawy, zdolności artystyczne mile widziane.


Powoli zbliżam się do finału ...
W linkach plik Gerber z projektem płytki, w takim formacie oddajemy do płytkarni i cieszymy się efektem.

Płytka w realu wygląda tak :



Pozdrawiam
picmajster.blog@gmail.com




Linki :
ATSAML21G18B - datasheet
Plik Gerber z projektem płytki

Brak komentarzy:

Prześlij komentarz