czwartek, 26 grudnia 2019

16 bitowy mikrokontroler dsPIC33EP128GS806 jako gateway CAN w inteligentnym budynku





Rozpoczynając przygodę z nieznanym dotąd światem, najczęściej podążamy za innymi, trzymając się sprawdzonych/gotowych rozwiązań, pomocy naukowych, zestawów uruchomieniowych. Tak i ja postąpiłem parę lat temu, rozpoczynając swoją przygodę z mikrokontrolerami 8-bitowymi skorzystałem z gotowego zestawu, który niejako musiałem dostosować do swoich bieżących potrzeb.

Dużo większą frajdę sprawia praca na własnym zestawie uruchomieniowym, a dzisiejszy dostęp do firm produkujących obwody drukowane u naszych dalekowschodnich sąsiadów oraz darmowe oprogramowanie jakim jest Easy EDA daje łatwą w przystępnej cenie drogę do realizowania własnych pomysłów.

Chcąc poszerzać swoje horyzonty, postanowiłem pójść tym tropem i tak oto powstał projekt płyty bazowej opartej na 16-bitowym MCU od Microchipa dsPIC33EP128GD806. Wybór podyktowany był projektem inteligentnego budynku, który od jakiegoś czasu za mną chodzi, a wspomniany bohater tematu, którego producent wyposażył w dwa kontrolery sieci CAN idealnie wpasowuje się w moją koncepcję rozwiązań automatyki, ponieważ widzę dużą zaletę odseparowania urządzeń na dwie niezależne magistrale CAN, ale o tym później.



Obserwując różne fora, głównie z projektami DIY można zaobserwować rosnącą tendencję wykorzystywania 32-bitowych rdzeni ARM i nie tylko, ja postanowiłem nie iść tą drogą głównie z dwóch względów, po pierwsze, trudno jest poruszać się w świecie 32 bitach pracując na rejestrach, a biblioteki takie jak HALL pozwalają "wycisnąć" z MCU tyle, na ile pozwolił sobie twórca biblioteki, dlatego uważam rejestry 16-bitowe za bardziej przyjazne dla amatora-hobbysty, szczególnie jeśli przesiada się z 8-bitów. Po drugie, wykorzystując 32 bity, finalnie mamy do dyspozycji sporo więcej MIPS ale i cena idzie często dość mocno w górę, a w większości przypadków, aż taka moc obliczeniowa nie jest nam potrzebna do większości zastosowań.

Jako układ zasilania zastosowałem przetwornicę impulsową opartą na układzie MCP16301 - układ ten w sympatycznej obudowie SOT23-6, ma szeroki zakres napięcia wejściowego w zakresie 4-30V przy sprawności na poziomie 96% oraz prądzie wyjściowym do 1A. Pracuje on w typowej aplikacji z datasheet skonfigurowanej na napięcie wyjściowe 5.0V, które zasila transceiver CAN MCP2562 a dalej trafia na stabilizator LDO TC2117-3.3V o bardzo niskim spadku napięcia i prądzie wyjściowym 0,8A co zaowocowało  już wielokrotnie podczas testowania wyświetlaczy graficznych serii ILI, które potrzebują sporo prądu na samo podświetlanie, a moja płyta bazowa pozostawała nadal w temperaturze pokojowej.
Płytę wyposażyłem w świetny wynalazek Microchip-a jakim jest nieulotna pamięć EERAM 47L16, która jest połączeniem technologi EEPROM i SRAM w jednej obudowie. Dane na bieżąco przechowywane są w części SRAM, a kiedy układ wykryje zanik zasilania, dane kopiowane są do pamięci EEPROM czerpiąc energię z zewnętrznego kondensatora. W przypadku powrotu zasilania, procedura wykonuje się automatycznie w drugą stronę. Daje to bezpieczne przechowywanie danych w korzystnej cenie.
Z lewej strony u góry, widzimy standardowe złącze do programowania ICD, natomiast prawa strona wyposażona jest w trzy bloki złączy typu GoldPIN, z wyprowadzeniami peryferiów takich jak: INT, UART, I2C oraz SPI. Pozwala to, na dowolną konfigurację własnego zestawu w sposób szybki i elastyczny. W zależności kiedy potrzebuję przetestować układ RTC, pamięć, Expander, przetwornik analogowo cyfrowy, sprowadza się do zamontowania i skonfigurowania w darmowym środowisku MPLAB-X 











3 komentarze: