Tym razem przyszła kolej na projekt edukacyjny, projekt otwarty, żyjący, w którym zawsze coś się może wydarzyć i coś nowego pojawić.
Do stworzenia tego projektu skłoniło mnie poszukiwanie zestawów uruchomieniowych, które by spełniały moje różne oczekiwania / zachcianki. Pierwszym była płytka stykowa i AT90S8515 wyciągnięty z karty „Fun” – jak ktoś się zajmował TVSat towie co to za karta, potem było ATTiny25, a potem już pełnoprawny zestaw AVT3510 z ATmegą32, która nota bene od razu poszła na półkę, a w jej miejsce wjechała ATmega1284P. W tym zestawie poeksperymentowałem z oczywistymi zabawami z diodą, wyświetlaczem z obsługą czy obsługą klawiatury. Nowością w stosunku do stykówki było RTC, a jako, że w tym czasie Mirek na YT właśnie publikował filmy o RTC na PCFie, a u mnie w zestawie był Microchip MCP79410I to z filmem „w ręku” krok po kroku portowałem bibliotekę z PCFa na MCP i zadziałało. W tym zestawie był jeszcze port odbiorczy podczerwieni, MAX232, karta SD, złącze ISP i JTAG, termometr na DS1B20, diody LED oraz karta SD, ale brakowało mi przejściówki USB <-> UART czy programatora, trzeba było używać zewnętrzny, w który wraz z BB się zaopatrzyłem (ATB USBAsp v. 4.1), ale coś mi brakowało, nie było jak podłączyć np. OLEDa, nie było graficznych wyświetlaczy.
Z racji niedosytu potem zakupiłem AVT5311 – tu już lepiej, pojawiły się pewne nowe funkcje, złącze pod wyświetlacz zgodny z KS0107, dwa kwarce do wyboru, możliwość zainstalowania mniejszej ATmegi zgodnej z seria ATmega8, FT232R,ULN2803, termometr zgodny z LM50, zewnętrzny ADC, dwa rejestry na 74HC595, ale dalej zewnętrzny programator i dalej jeszcze coś brakuje, z drugiej strony na środku takie fajne złącze ze wszystkimi sygnałami, można by dobudować własne płytki, no ale ono jest na środku, wszystko przesłania, w dodatku firmowy kwarc 8MHz trochę za mały, a RTC za ubogi, na szczęście zgodny pinout z tym co w poprzedniej, no to lutownica w rękę (i tak była w ręku bo wybrałem zestaw do samodzielnego montażu) i podmiana, chip zegara, kwarc 8MHz na 16MHz, a kwarc zegarkowy do taktowania ATmegą na podstawkę pod wymienne kwarce.
I tak doszliśmy do momentu gdy projektowałem
sterownik do odbiornika KF, przy okazji koledzy z wspomnianego forum zapytali, czy bym ich trochę nie poduczył, bo sami coś czasami grzebali w Andruino
ale widząc jak upycham tyle funkcji w ATmegę328 stwierdzili, że może jednak lepiej programować w C.
Projekt płytki edukacyjnej AVR No więc trochę wyprzedzając koncepcję Mirka, i zabierając mu chleb stwierdziłem, że przygotuję dla nich parę wykładów i coś sobie porobimy wspólni, najpierw były wykłady ze starej dobrej cyfrówki, algebra Boole’a, bramki, budowanie z bramek przerzutników RS, JK, potem z nich D czy T, potem z przerzutników rejestry czy liczniki, dalej układy dwójkowy i 16 przeliczanie, no ale co z programowaniem – mówię musicie zaopatrzyć się w zestawy, najlepiej te same co u mnie czyli AVT5311 i jedziemy, okazało się, że na magazynie w AVT pozostało tylko 3 sztuki a nas było z 10 osób, co robić?
Powstał zatem pomysł zbudowania własnej płytki, ale co tam dać, burza mózgów, no to dajmy na pewno jak w AVT duży i mały procek, dajmy przełączany kwarc, potem wpadł pomysł dania jeszcze klawiatury matrycowej, a może także i analogową tam wklecić, no to jeszcze dodajmy programator od Fischl’a, ale przydał by się RS i może FT, no ale jak FT i programator to trzeba by huba USB, no to jaki hub będzie łatwy w implementacji i łatwo dostępny, wyszło że trzyportowiec, no to co trzeci port zostawić „martwy”, nie wyprowadźmy go jako przelotkę … itd., itd.
Koniec końców powstała wersja 1 projektu, zrobiliśmy losowanie w jakim kolorze zrobić soldermaskę – padło, że nikt jeszcze nie miał nic na żółtej, to zrobimy żółtą (z perspektywy czasu ponieważ żółta mogła być u chińczyka zamówiona wyłącznie z białymi napisami to była pomyłka). No ale układ się poprawiał, na etapie uruchamiania znalazłem kilka może nie błędów ale niedociągnięć, np. pin RESET z uP połączyłem z pinem RESET FT232, co skutkowało przy np. wgrywaniu nowego wsadu resetem także FT i zrywaniem połączenia, bardzo niefunkcjonalnie to działało, w podświetleniu do wyświetlacza typu „nokia” gdzie zapala się je stanem niskim pozostawienie nogi nie połączonej powodowało świeceniem na ok. 30-40%, trzeba było podciągnąć nogę rezystorem do VCC, gniazdo do wejścia Ethernet z wbudowanym transformatorem było trudno dostępne w handlu (teraz nic nie jest dostępne to inna sprawa), no i tak poprawiając te niedoróbki powstała wersja 2, ale ona nawet nie trafiła do produkcji PCB, bo wyszły kolejne mankamenty, a przy okazji Mirek wystartował z kursem ESP, na który się zapisałem (z braku czasu jeszcze go nie zacząłem !!!) i powstała koncepcja dorobienia jakby modułu rozszerzeń na której wyląduje ESP więc przydało by się wyprowadzić z płytki napięcie 3.3V do złącza na akcesoria, zniknął także port JTAG, zmieniły się piny pod wyświetlacz „zegarkowy” bo ten z : okazał się łatwiej dostępny niż ten bez, dodałem buforowanie do programatora, całkowicie przebudowałem przetwornik audio do zabaw z ADC, teraz jest to przetwornik szczytowy o regulowanym wzmocnieniu i z przesuniętą składową stało, więc brak sygnału audio to 2,5V na jego wyjściu, do potencjometru do zabaw z ADC dałem wymienny rezystor, aby można było uzyskać inne zakresy a nie tylko 0..5V aby mogło to działać z ESP, przełączniki typu DIPSWITCH zamieniłem na normalne zworki goldpinowe, dodałem zworki SMD dla wyświetlaczy OLED bo trafiały się w handlu z zamienionymi miejscami VCC i GND i tak powstała wersja 3 a zaraz potem 3.1 projektu, do której poniżej zamieszczam dokumentację opisową oraz schemat.
Dziś, gdy rozpoczęliśmy kurs C w Mirkowej akademii w KiCad jest już kolejna wersja PCB, choć opisu nie zmieniłem, dodane są w niej kondensator 10nF na potrzeby resetu linią DTR mikrokontrolera w związku z bootloaderem, rezystor, który pojawił się wraz z dodatkową płytką o której będzie niżej między liniami MISO i MOSI za buforem programatora, aby działało programowanie po TPI oraz osobno wyprowadzona magistrala TX/RX z mikrokontrolera wraz z podstawką pod odbiornik HC-05/06, AT-09 lub MLT-BT05. Płytka roboczo ma opis v. 3.2.
Wszystkie układy jakie znajdują się na płytce to: układ zasilania ze stabilizatorami LDO 5V i 3.3V z możliwością zasilania z zasilacza nawet napięcia zmiennego (wbudowany mostek) lub ze złącza USB, programator USBAsp na ATmega8 lub 88 z buforem, 8 diod led, jedna dioda RGB, 8 diod WS2812, HUB USB TUSB2036, wyświetlacz typu zegarkowego LED, konwerter MAX232, konwerter FT232R, transoptor 4 sekcyjny LTV-487, driver ULN2803, pamięć EEPROM I2C- 24LCxx, pamięć EEPROM SPI – 25LCxx, termometr zgodny z LM50, termometr DS18B20, przetwornik ADC 18bit MCP3421, ekspander portów I2C – MCP23017, dwa rejestry 74HC595, układ audio, układ potencjometru, klawiatura matrycowa 4x4, klawiatura analogowa 5 przycisków, zegar MCP79410 lub inny zgodny pinowo, moduł Ethernet ENC28J60, buzer, przekaźniki, stały kwarc 16MHz, podstawka pod dowolny kwarc oraz podstawki pod wyświetlacze na HD44780, KS0107, PCD8544, ST7565R, SSD1306 na szynie SPI i I2C, wyjście-przelotka USB, nadajnik i odbiornik podczerwieni.
Poniżej zdjęcie jak układ prezentuje się w wersji 3.1 oraz dokumentacja do niego zarówno plik projektu KiCad jak i opisowy PDF, schemat zwłaszcza w części modułu Ethernet jest laurkowy trochę, ale wynikło to z braku miejsca i przeróbek w trakcie.
Płytka dodatkowa ESP Jak wspomniałem powyżej, w trakcie zapisałem się na kurs w akademii ATNEL dotyczący ESP, no więc pomyślałem, tyle różnych peryferii ma już pod AVRa, no to zrobię płytkę pod ESP i ją podłączę, przecież można wyprowadzić linie czy to UARTa, czy SPI czy I2C i tak część elementów na tej płytce obsłużyć bez dodatkowych kabli, oczywiście na module dodatkowym znalazły się układy translacji napięć, ale, że ze scalakami zaczynało się po woli krucho, a niektóre szyny jak I2C są dwukierunkowe to translacja wszystkich linii jest na MOSFETach, dodatkowo na tej płytce zagościło gniazdo kart SD, którego nie było w głównym projekcie. Jako moduły ESP do płytki można włożyć NODEMCU V2 lub V3 z ESP8266 i WROOM32 zgodny z ESP32-DevKit oba na 30 pinowych shildach.
Poniżej zdjęcie układ oraz dokumentacja do niego zarówno plik projektu KiCad jak i opisowy PDF.
Płytka dodatkowa ATTiny Czas mijał, na kurs ESP nie pozwalała praca a i trochę zdrowie, ale w szufladzie poniewierały się stare dobre ATTiny28 i ATTiny20, a mnie zaświtał w głowie pomysł zrobienia układu
wskaźnika wysterowania z podziałem na częstotliwości, więc stwierdziłem, że może dorobie do płytki głównej płytkę pod parę ATTiny, ale jak zwykle wspanili koledzy
podjudzili, to może dodaj tam jeszcze ATTiny 826 bo ja coś na nim robiłem i jest fajny. Koniec końców znalazło się tam miejsce dla wszystkich ATTiny programowanych albo po ISP albo po TPI. To właśnie podczas uruchamiania tej płytki okazało się, że choć najnowszy wsad Fischl’a obsługuje po szynie MOSI szynę TPI, to działa to wyłącznie na programatorach bez izolacji. Doczytałem się na elektrodzie, że gość robił programator z izolacją optyczną i trzeba było połączyć za optoizolacją szynę MISO i MOSI dodatkowym rezystorem a do tego wsad do mikrokontrolera pełniącego rolę programatora trzeba przekompilować samodzielnie z odpowiednią flagą (opis w dokumentacji i tamże odsyłacz do artykułu), ja miałem buforowanie, ale to też izolacja więc też trzeba dołożyć ten rezystor (patrz opis nowszej opracowanej płytki) i przekompilować wsad i działa.
Jak poprzednio poniżej zdjęcie układ oraz dokumentacja do niego zarówno plik projektu KiCad jak i opisowy PDF.
Płytki dodatkowe do zabawy rejestrami i ekspanderami Powstały dwie płytki, jedna pod wyświetlacz na HD44780 z wyprowadzeniami klasycznymi u góry, ale także z boku pod wyświetlacze VFD zgodne z tym standardem, druga to zabawy we wszelkiej maści wskaźniki wysterowania czy poziomu czegokolwiek, ważne, że sterowane z rejestru lub ekspandera. Nie będę się rozpisywał dokładnie, jak zwykle projekt i dokumentacja w opisie.
Na zakończenie dodam, że w żadnym z projektów nie udostępniam plików gerbera, jak ktoś chce skopiować a nie daj Boże jeszcze zacząć to sprzedawać i na tym zarabiać to niech chociaż musi się wysilić aby mieć KiCad i sobie samemu wyeksportować maski produkcyjne. Z racji kilku pytań od uczestników kursu w Akademii Atnel informuję, że wyprodukowane było tylko 10 zestawów PCB i nie dysponuje ani jednym do sprzedania, wszystko zostało rozesłane osobą, z którymi prowadziłem szkolenie.