Elektroda.pl
Elektroda.pl
X
Computer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Płytka startowa dla mikrokontrolerów ATxmegaXXA4

a_noob 09 Sty 2016 20:10 4644 6
  • Płytka startowa dla mikrokontrolerów ATxmegaXXA4

    Witam wszystkich, dziś chciałbym zaprezentować moją płytkę startową dla procesorów AVR Xmega serii A4.

    Płytka powstała, po części do zastosowań komercyjnych (sterownik do reklam świetlnych), a po części do rozpoczęcia przygody z nową rodziną mikrokontrolerów. Zakupiłem co prawda wcześniej zestaw Olimex z ATxmega128A1 (bardzo fajna - polecam), jednak docelowo potrzebowałem ciut skromniejszych zasobów, czegoś za czym nie zapłaczę jak się spali, będzie mi się łatwo naprawiało i nada się do ewentualnego wpakowania do reklamy. Projekt powstał już jakiś czas temu i do tej pory powstały już nowsze wersje/odmiany tej płytki, bardzie wyspecjalizowane, przez co ta jest najbardziej uniwersalna. Nie jest już w firmie używana (z całego urobku został tylko ten jeden egzemplarz, złożony jako pierwszy), więc mogę sobie pozwolić na jej prezentację.

    Płytka startowa dla mikrokontrolerów ATxmegaXXA4 Płytka startowa dla mikrokontrolerów ATxmegaXXA4 Płytka startowa dla mikrokontrolerów ATxmegaXXA4 Płytka startowa dla mikrokontrolerów ATxmegaXXA4
    (wyraźniejszy schemat jest w załączonych plikach w pdf'ie)

    Na płytce znajdziemy:
    - µc ATxmega16A4 (w serii A4 dostępne są modele od 16 do 128kB pamięci)
    - konwerter USB-UART FT232RL
    - pamięć EEPROM AT24C512C
    - gniazdo kart pamięci microSD
    - jeden przycisk i dioda LED do wykorzystania przez użytkownika

    Układ pracuje pod napięciem 3,3V regulowanym prze układ LM1117, do niego zaś napięcie możemy doprowadzić ze złącza USB (zamykając zworkę USB_5V) lub z listwy zaciskowej. W drugim przypadku stabilizator jest w stanie przyjąć maksymalnie 20V (wg noty katalogowej), jednak trzeba wtedy otworzyć zworkę USB_5V, inaczej pożegnamy się z FT232RL, a być może i z portem USB w komputerze. Odwrotną polaryzację na listwie zaciskowej zablokuje dioda D3, wlutowanie dodatkowej diody zamiast zworki zasilania USB może uchronić nas przed wyżej opisanym zagrożeniem.

    Z przyzwyczajenia nabranego przy AVR'ach, niewiele myśląc, dołożyłem komplet R2 C14 czuwający na resetem. Przy pierwszych testach C14 wyleciał (w załączonym schemacie i wzorze płytki już go nie ma, widać go jedynie na zdjęciach), gdyż programator nie chciał współpracować, R2 również jest zbędny, ale został bo nie zawadza. Programowanie odbywa się oczywiście przez złącze PDI, w obwodzie drukowanym na zdjęciach piny PDI oraz RESET zostały poprowadzone odwrotnie, na schemacie i we wzorze płytki połączenie jest już prawidłowe. Ponieważ nie chciało mi się ciąć ścieżek na każdej pcb z całej partii, wykonałem prostą przejściówkę do programowania.

    Na schemacie widzimy podłączone do ADC8 oraz ADC9 dzielniki napięcia R6 do R9, na płytce zaś zastąpiłem je złączami kołkowymi, zwiększa to trochę uniwersalność i możemy łatwiej podłączyć co tylko nam się podoba. Zaraz obok wyprowadzone są piny PB2 oraz PB3, czyli dwa dostępne kanały DAC.

    Projektując płytkę myślałem, że będę potrzebował dużo pamięci, stąd dodatkowy eeprom i gniazdo kart microSD. Okazało się jednak, że nie potrzebowałem i NIGDY NIE PRZETESTOWAŁEM CZY DZIAŁAJĄ POPRAWNIE W TEJ KONFIGURACJI (jakoś ciężko z czasem wtedy miałem), więc gdyby ktoś chciał wykonać tą płytkę, proszę na własną rękę porównać to z jakimś sprawdzonym schematem.

    Obok siebie na jednaj krawędzi mamy wprowadzone magistrale SPI, UART oraz I2C, każda z dodatkowymi pinami GND oraz 3,3V.
    Wszystkie niewykorzystane piny są wyprowadzone na złącza kołkowe, łącznie z tymi doprowadzonymi do gniazda karty pamięci, należy na to zwrócić uwagę przy chęci wykorzystania karty i na złączu znajdującym się obok korzystać jedynie z pinów PD0, PD1 oraz PD2.

    Załączone pliki wykonane są w KiCad'zie, schemat oraz dwa wzory pcb mają naniesione wyżej wymienione poprawki. Wzór A jest zgodny z pierwowzorem i sprawdzony w działaniu, wzór B wykonałem na potrzeby tej publikacji i ma od nowa poprowadzoną masę - jednak nie został on wyprodukowany i nie dam głowy za pełną poprawność działania... ale się starałem... Różnicę widać na poniższych obrazkach.

    Płytka startowa dla mikrokontrolerów ATxmegaXXA4 Płytka startowa dla mikrokontrolerów ATxmegaXXA4

    Mimo że płytki już przeprojektowywał raczej nie będę to propozycję zmian i udoskonaleń są mile widziane, mogą się przydać gdyby ktoś chciał wykorzystać ten projekt i zmodyfikować go do własnych potrzeb.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    a_noob
    Poziom 22  
    Offline 
    YouTube: @CatLighting
    Instagram: @CatLighting
    Facebook: @CatLighting
    Grupa FB: Maker Poland
    Specjalizuje się w: oświetlenie, reklama, tworzenie ;)
    a_noob napisał 625 postów o ocenie 332, pomógł 14 razy. Jest z nami od 2005 roku.
  • Computer Controls
  • Computer Controls
  • #3
    piotr_go
    Poziom 28  
  • #4
    tmf
    Moderator Mikrokontrolery Projektowanie
    A po co FTDI232? Mogłeś wziąć A4U, która ma USB. Jak już dałeś FTDI to trzeba było go wykorzystać jako programator PDI. Niezbyt fortunnie podłączyłeś także złącze SD - wykorzystując interfejs SPI, zamiast USART. W XMEGA jako SPI Master należy wykorzystywać USART ze względu na buforowania i współpracę z DMA. To dramatycznie przyśpiesza wymianę danych z kartą. O rezystorach wspomnieli już poprzednicy, natomiast przy złączu SD powinien być kondensator elektrolityczny rzędu 47 uF - karta impulsowo pobiera znaczne prądy, co przenosi się na cały układ i może go zakłócać, a nawet resetować MCU lub magistralę USB.
    Do sterowania tablicami reklamowymi IMHO bardziej przydatna jest XMEGA z serii A1U ze względu na interfejs dla pamięci zewnętrznej. Można sobie wyrenderować obraz, zaprogramować DMA i uśpić procesor, ew. zająć go przeliczaniem bardziej zaawansowanych efektów.
    Mnie osobiście podoba się koncepcja takiego modułu ale w formacie na płytkę stykową, dzięki czemu można łatwo podłączyć inne elementy. Zobacz jak wyglądają moduły z XMEGA z LeonInstruments i Modułowa. Osobiście z takowych korzystam i sobie chwalę.
  • #6
    trol.six
    Poziom 31  
    a_noob napisał:
    Układ pracuje pod napięciem 3,3V regulowanym prze układ LM1117, do niego zaś napięcie możemy doprowadzić ze złącza USB (zamykając zworkę USB_5V) lub z listwy zaciskowej. W drugim przypadku stabilizator jest w stanie przyjąć maksymalnie 20V (wg noty katalogowej), jednak trzeba wtedy otworzyć zworkę USB_5V, inaczej pożegnamy się z FT232RL, a być może i z portem USB w komputerze

    Może zamiast złącza ze zworką wlutować tam diode? Ja jeśli używam zworek z wyborem to trójpinowych. Wtedy mamy oddzielenie galwaniczne. Nom, chyba że ktoś ma tendencje do zwierania całej listwy. No to cóż. :)

    Mam jedną przetworniczke co używam jej do ładowania aku, to smażyłem ją regularnie. W końcu stwierdziłem że to nie ma sensu. Koszt diody jest znikomy.
  • #7
    a_noob
    Poziom 22  
    Steryd3 napisał:
    szkoda, że nie została wylana masa

    Zerknij na dwa ostatnie obrazki i przeczytaj akapit nad nimi.

    trol.six napisał:
    Może zamiast złącza ze zworką wlutować tam diode?

    Doczytaj do końca akapit, który zacytowałeś, jedno zdanie Ci zostało...

    piotr_go napisał:
    Karta SD: pull-upy w trybie spi są zbędne.

    tmf napisał:
    Niezbyt fortunnie podłączyłeś także złącze SD - wykorzystując interfejs SPI, zamiast USART. W XMEGA jako SPI Master należy wykorzystywać USART ze względu na buforowania i współpracę z DMA. To dramatycznie przyśpiesza wymianę danych z kartą. O rezystorach wspomnieli już poprzednicy, natomiast przy złączu SD powinien być kondensator elektrolityczny rzędu 47 uF - karta impulsowo pobiera znaczne prądy, co przenosi się na cały układ i może go zakłócać, a nawet resetować MCU lub magistralę USB.

    Tu kłania się moja niewiedza, podłączenie karty sd ściągnąłem ze schematu AVR-PX128A1 i zabijcie mnie, ale nie mam pojęcia czemu wstawiłem rezystory, a stwierdziłem że dławik i kondensator pominę... O możliwości wykorzystania USART'u w tym celu również nie wiedziałem. Wszystko wyszło by pewnie w praniu gdybym korzystał z karty. Dzięki za cenne uwagi.

    tmf napisał:
    A po co FTDI232? Mogłeś wziąć A4U, która ma USB. Jak już dałeś FTDI to trzeba było go wykorzystać jako programator PDI

    A no FTDI jest z co najmniej dwóch powodów. Po pierwsze płytka ma już swoje lata i w momencie jej projektowania nie było jeszcze A4U, a po drugie programy pieszę niestety tylko w Bascom'i i nie wiem jak obecna wersja, ale wcześniejsze wersje USB nie obsługiwały. No i jedyną znaną wtedy formą programatora PDI w rozsądnej cenie był AVR-ISPmkII (który to mnie się spalił przed świętami, ale przestałem płakać jak ATMEL-ICE dotarł, istny demon prędkości).

    tmf napisał:
    Do sterowania tablicami reklamowymi IMHO bardziej przydatna jest XMEGA z serii A1U(...)

    Jak już wspomniałem w pierwszym poście seria A1 marnowała by się zasobami, płytką pędziłem proste wyświetlacze tekstowe jednokolorowe, mające 8 lub 16 pixeli na wysokość, w krótszych modelach ATmega by się wyrobiła nawet.

    tmf napisał:
    Mnie osobiście podoba się koncepcja takiego modułu ale w formacie na płytkę stykową, dzięki czemu można łatwo podłączyć inne elementy.

    To już kwestia preferencji, zawsze wolałem płytki w takiej formie niż DIL, nie wiem nawet czemu. Jak korzystam z płytki stykowej to poprostu leży obok przypięta kabelkami i tyle.

    leonow32 napisał:
    ...a kurs programowania XMEGA widziałeś?

    Ależ oczywiście, że widziałem! Jeszcze w trakcie powstawania i bardzo mi się podoba, wiele niejasności mi nim rozświetliłeś i dzięki niemu poznałem, olewany wcześniej przeze mnie całkowicie, system zdarzeń. Jak się wreszcie przestanę ociągać i skrobnę trochę C to pewnie spodoba mi się jeszcze bardziej!