Historia tej klasy układów sięga 2002 roku. Wtedy firma Cypress rozpoczęła sprzedaż pierwszej generacji tych układów. W kwietniu 2013 roku Cypress wypuścił na rynek czwartą generację układów - PSoC 4. Zawierają one 32-bitowy procesor z rdzeniem ARM Cortex-M0 z programowalnymi blokami analogowymi (wzmacniacze operacyjne i komparatory), programowalnymi blokami cyfrowymi (tak zwane bloki UDB, oparte na architekturze układów PLD) i blokami komunikacji szeregowej (dla interfejsów takich jak SPI, UART, I²C) oraz blokami czasowymi - licznikami, timerami i modulatorami PWM. Wszystkie te bloki mogą być ze sobą łączone w programowalny sposób, dzięki czemu możliwe jest połączenie niemalże dowolnego fizycznego pinu wyjściowego układu PSoC z dowolnym blokiem funkcjonalnym zintegrowanym w układzie.
Układy PSoC składają się generalnie z rdzenia, konfigurowalnych bloków analogowych i cyfrowych oraz zestawu programowalnych połączeń wewnętrznych pomiędzy tymi blokami i pinami zewnętrznymi. Konfigurowalne bloki, zwłaszcza analogowe i PLD, w PSoC są największą różnicą w porównaniu z innymi mikrokontrolerami dostępnymi na rynku.
PSoC przypomina układ ASIC: blokom można przypisać szeroki zakres funkcji i łączyć je ze sobą na różne sposoby. Jednakże w przeciwieństwie do układów ASIC do stworzenia niestandardowej konfiguracji, nie jest wymagany specjalny proces produkcji, tylko specjalny kod startowy, który jest tworzony przez środowiska programistyczne takie jak PSoC Designer czy PSoC Creator.
PSoC przypomina układ FPGA: po włączeniu zasilania system musi zostać skonfigurowany, ale konfiguracja ta odbywa się poprzez ładowanie instrukcji z wbudowanej pamięci Flash. W układzie tym znaleźć można także bloki logiki programowalnej - UDB.
PSoC najbardziej jednak przypomina mikrokontroler połączony z układem PLD z dodatkowymi, programowalnymi blokami analogowymi. Kod jest wykonywany w celu interakcji z określonymi przez użytkownika funkcjami peryferyjnymi (zwanymi „komponentami”), wykorzystującymi automatycznie generowane interfejsy API i procedury przerwań. PSoC Designer lub PSoC Creator generują kod konfiguracji startowej. Obie integrują interfejsy API, które inicjują wybrane przez użytkownika komponenty na potrzeby użytkowników w interfejsie graficznym typu Studio-Studio.
Układy PSoC używane są w prostych urządzeniach, takich jak elektryczne szczoteczki do zębów, ale także w złożonych systemach, jak dekodery telewizyjne. Jednym ze słynniejszych zastosowań układów PSoC jest system sterowania odtwarzaczem muzycznym Apple iPod - układ ten odpowiedzialny był za kontrolę dotykowego, pojemnościowego kółka-przycisku na środku urządzenia.
W 2014 roku Cypress rozszerzył rodzinę PSoC poprzez zintegrowanie modułu transceivera Bluetooth Low Energy z układem opartym na PSoC 4 Cortex-M0 w pojedynczej, monolitycznej kości. W 2016 roku Cypress zaprezentował nową serię układów PSoC 4, oznaczoną literą S. Jest ona wyposażony w procesor z rdzeniem ARM Cortex-M0+. Rodzina ta jest cały czas rozwijana i poszerzana o nowe układy.
Najnowszymi produktami Cypressa, jeśli chodzi o układy PSoC jest rodzina układów PSoC 4700 oraz nowoczesne układy PSoC 6 do zastosowań w systemach Internetu Rzeczy (IoT).
Rodzina PSoC 4700 dodaje zaawansowane technologie sensorowe do portfolio produktów z linii 32-bitowych mikrokontrolerów z rdzeniem ARM Cortex-M0 i M0+. Umożliwia to tworzenie innowacyjnych rozwiązań nowej generacji. Rodzina ta obejmuje także serię PSoC 4700S, która ma wsparcie dla sensorów indukcyjnych, zapewniających niezawodne i w pełni wodoodporne interfejsy użytkownika.
Główne cechy układów z linii PSoC 4700S:
- 32-bitowy mikrokontroler:
- Rdzeń ARM Cortex-M0+
- Zegar rdzenia do 48 MHz
- Do 32 KB pamięci Flash
- Do 4 KB pamięci SRAM
- Programowalne bloki analogowe
- Pojedynczy, 10-bitowy przetwornik analogowo-cyfrowy (ADC) o częstotliwości próbkoania do 16,8 kHz
- Dwa komparatory o zredukowanym poborze mocy
- Dwa 7-bitowe przetworniki cyfrowo-analogowe (DAC) z wyjściem prądowym. Mogą pracować wspólnie jako jeden DAC o rozdzielczości 8 bit
- Blok MagSense do detekcji metalowych przedmiotów
- Blok CapSense, wsparcie dla systemów pomiaru pojemności, w tym przycisków pojemnościowych itp.
- Programowalne bloki cyfrowe
- Pięć konfigurowalnych, 16-bitowych timerów/liczników/modulatorów PWM
- Dwa bloki komunikacji szeregowej. Każdy z nich skonfigurować można do pracy jako interfejs I²C, SPI lub UART.
Układ dostępny jest w szerokiej gamie obudów:
- WLCSP na 25 kulkach
- 24-pinowy QFN
- 48-pinowy TQFP
Układy mogą mieć do 36 pinów wejścia/wyjścia ogólnego przeznaczenia, w tym 16 pinów Smart I/O.
Układy z rodziny PSoC 4700 umożliwiają tworzenie jeszcze bardziej kompaktowych i eleganckich interfejsów użytkownika. Dzięki systemom detekcji indukcyjnej czy pojemnościowej możliwa jest konstrukcja futurystycznych interfejsów, a dzięki doskonałym parametrom nowych PSoCów (SNR dla sensora indukcyjnego powyżej 800:1, SNR dla detekcji pojemnościowej ponad 300:1) układ tego rodzaju jest niezwykle odporny na zakłócenia czy szum. A ponadto, algorytmy automatycznego strojenia układów pozwalają na dodatkową kompensację rozrzutu produkcyjnego samych układów scalonych, jak i całych urządzeń. Dzięki temu projektowanie i uruchamianie urządzeń korzystających z tego rozwiązania, jest prostsze i tańsze, niż stosowanie konkurencyjnych rozwiązań o mniejszym stopniu integracji.
Drugą nowością w rodzinie układów PSoC jest rodzina PSoC 6. Wypełnia ona lukę między drogimi, wymagającymi dużej mocy procesorami aplikacyjnymi a mikrokontrolerami o relatywnie niskiej wydajności (MCU). Ultraenergooszczędna architektura układów PSoC 6 zapewnia wysoką wydajność przetwarzania, wymaganą przez urządzenia Internetu Rzeczy (IoT). Eliminuje to kompromisy między poborem mocy a osiąganą wydajnością obliczeniową. Układy PSoC 6 wyposażone są w dwa rdzenie: jeden to wydajny ARM Cortex-M4, a drugi to Cortex-M0+ o niskim poborze mocy. To, który z rdzeni w danej chwili pracuje, zależne jest od wymagań - potrzebnej mocy obliczeniowej i dostępnego zasilania.
Główne cechy układów z rodziny PSoC 6:
- 32-bitowy mikrokontroler:
- Pojedynczy rdzeń ARM Cortex-M4 lub dwa rdzenie, z dodatkowym Cortex-M0+
- Zegar rdzenia do 150 MHz (Cortex-M4) i 100 MHz (Cortex-M0+)
- Do 2 MB pamięci Flash
- Do 1 MB pamięci SRAM
Szeroki wybór programowalnych bloków analogowych:
Przetworniki analogowo-cyfrowe i cyfrowo-analogowe
Wbudowane wzmacniacze operacyjne i komparatory o zredukowanym poborze mocy
Blok CapSense, wsparcie dla systemów pomiaru pojemności, w tym przycisków pojemnościowych itp.
Do 12 uniwersalnych, programowalnych bloków cyfrowych
Wbudowany interfejs Bluetooth Low Energy
Układ dostępny jest w szerokiej gamie obudów do montażu powierzchniowego: BGA, MCSP, QFN, WLCSP i innych.
Nowe układy przeznaczone są do zastosowań w systemach IoT. W związku z tym układy z serii PSoC 64 wyposażono w dedykowane do tego rodzaju aplikacji systemy bezpieczeństwa. Wraz z rosnącą liczbą urządzeń łączących się z Internetem, coraz większą wagę przykłada się do bezpieczeństwa połączeń między sprzętem, aplikacjami w chmurze i serwerami, a także użytkownikami i usługami. Bezpieczne mikrokontrolery z rodziny PSoC 64 integrują w sobie znaną architekturę PSoC 6 o niskim poborze mocy i elastycznej wydajności obliczeniowej, dzięki dwóm, wbudowanym rdzeniom ARM (Cortex-M0 oraz Cortex-M4) z dobrze zorganizowanym oprogramowaniem dla platform IoT, aby zapewnić bezpieczne rozwiązanie dla systemów Internetu Rzeczy, które „po prostu działa”, jak chwali się producent.
Rdzeń Cortex-M4 w układach PSoC 64 służy do uruchamiania bogatego środowiska wykonawczego, w którym można opracować bardzo zróżnicowaną aplikację. Dostępne są biblioteki dla tej platformy, dedykowane do realizacji bezpiecznych połączeń z chmurą.
Z kolei drugi rdzeń układu PSoC 64 - Cortex-M0+ polecany jest do do ustanowienia bezpiecznego środowiska wykonawczego służącego do bezpiecznej realizacji operacji niskopoziomowych i komunikacji z lokalnie znajdującym się sprzętem - sensorami, sterownikami itp.
Dzięki takiemu podejściu deweloper ma do dyspozycji dwa odizolowane od siebie bezpieczne środowiska wykonawcze - jedno dostępne z zewnątrz, z poziomu serwerów w chmurze, a drugie odizolowane od sieci, realizujące kwestie sprzętowe. Ponadto w bezpiecznym środowisku wykonawczym znajduje się sprzętowo izolowany „root-of-trust” (najniższy poziom systemu kryptograficznego z najbardziej zaufanymi usługami). Podstawą zaufania w systemie jest kryptografia wspomagana sprzętowo, wbudowany generator rzeczywistych liczb losowych oraz zabezpieczony sprzętowo magazyn danych.
Zaufane usługi uruchamiane w tych układach wykorzystują najwyższej klasy sprzętowy root-of-trust, obejmują bezpieczne uruchamianie (bootloader), atestację, bezpieczeństwo warstwy transportowej (TLS) oraz sprzętową ochronę aktualizacji oprogramowania.
Nowym układom od Cypressa towarzyszy także aktualizacja środowiska deweloperskiego, dedykowanego do nowoczesnych mikrokonrolerów z rodziny PSoC. PSoC Creator to zintegrowane środowisko deweloperskie (IDE) dedykowane dla układów z serii PSoC. Ich specyfika związana jest ze specyfiką samych układów - IDE. Pozwala to na konfigurowanie hardware w systemie, a także edycję i kompilowanie firmware.
W systemie wbudowany jest edytor graficzny do konfiguracji peryferiów w systemie. W pakiecie znajdziemy ponad 150 gotowych, zweryfikowanych komponentów, takich jak interfejsy I²C, USB, UART, SPI, CAN, LIN oraz Bluetooth Low Energy, a także kompletne tory analogowe ze wzmacniaczami, filtrami oraz przetwornikami analogowo-cyfrowami (ADC) i cyfrowo-analogowymi (DAC). Konfigurator ten generuje dynamiczne biblioteki API, które można wykorzystać następnie we wbudowanym kompilatorze C do stworzenia firmware dla układu. Możliwe jest też eksportowanie stworzonych bibliotek do zewnętrznych środowisk programistycznych, jeśli preferujemy takie rozwiązanie.
Cypress zaprezentował niedawno nową wersję PSoC Creatora - wersję 4.2. Oprócz wielu drobnych ulepszeń i poprawek błędów, PSoC Creator 4.2 dodaje obsługę nowej linii produktów - PSoC 6, opisanych powyżej. Nowa wersja IDE pozwala na tworzenie aplikacji do układów jedno- i dwurdzeniowych. PSoC Creator 4.2 ułatwia rozwój firmware'u do aplikacji dwurdzeniowych, dzieląc kod źródłowy na osobne foldery w eksploratorze przestrzeni roboczej. Możliwa jest łatwa identyfikacja rdzenia, na którym będzie wykonywany kod źródłowy aplikacji, a ponieważ oba rdzenie mają dostęp do wszystkich urządzeń peryferyjnych i pamięci, łatwo można przenieść funkcjonalność z jednego rdzenia na drugi, po prostu przeciągając pliki do preferowanego folderu głównego.
Projekty dla nowych układów z serii 6 w PSoC Creator 4.2 budowane są automatycznie, tak jak dla starszych układów PSoC 4. Dzięki temu nie trzeba marnować czasu na utrzymywanie zależności w makefile czy odbudowywanie ich za każdym razem, gdy wprowadzimy w kodzie jakąś drobną zmianę. Rezultatem kompilacji jest jeden plik, który po prostu wykorzystujemy do zaprogramowania procesora i tyle. Debugowanie układów PSoC 6 w nowym IDE jest równie proste. Możliwe jest podłączenie się (w przypadku układów dwurdzeniowych) do dowolnego z rdzeni ARM w systemie, aby monitorować w czasie rzeczywistym jego pracę.
W PSoC Creator 4.2 znajdziemy ogromną bibliotekę sterowników dla wszystkich elementów, jakie napotkać możemy w nowej serii układów. W układach PSoC 7 dostępnych jest aż 56 różnych peryferiów cyfrowych oraz 7 peryferiów analogowych i dodatkowo systemy takie jak CapSense, USB, Bluetooth Low Energy (BLE) oraz interfejsy do podłączania pamięci szeregowej czy mikrofonów cyfrowych PDM-PCM. Sterowniki do obsługi tych peryferiów dostarczane są przez PDL (Bibliotekę Sterowników Peryferiów); jest to zestaw wydajnych, kompatybilnych z MISRA sterowników z doskonale opisaną dokumentacją, ułatwiającą implementację tych elementów w swoim oprogramowaniu. PSoC Creator 4.2 ułatwia to jeszcze bardziej, importując automatycznie z PDL te drivery, które potrzebne są w naszym projekcie do obsługi peryferiów, które wybraliśmy na etapie konfiguracji sprzętu.
Nowe zestawy uruchomieniowe
Nowe układy i zaktualizowane środowisko programistyczne to nie wszystko, co zaprezentował niedawno Cypress. Wraz z wprowadzeniem do sprzedaży nowej serii układów z rodziny PSoC do sklepów trafiła też nowa płytka deweloperska z układem PSoC 63 - PSoC 6 BLE Pioneer Kit.
Zestaw deweloperski oparty jest na niedrogiej platformie PSoC 63. W systemie znaleźć możemy mikrokontroler CY8C6347 - dwurdzeniowy układ PSoC 63, wyposażony w ARM Cortex-M4, taktowany zegarem do 150 MHz, pracujący jako główny rdzeń oraz ARM Cortex-M0+, taktowany takim samym zegarem, jako rdzeń pomocniczy. Rdzenie mają do dyspozycji 1024 KB pamięci Flash oraz 288 KB pamięci SRAM. Układ ten ma 78 pinów GPIO, wyposażony jest w siedem programowalnych peryferiów analogowych i 56 bloków cyfrowych.
Na płytce znaleźć możemy wszystkie elementy potrzebne do testowania technologii CapSense, wbudowanej w układ. Na PCB znaleźć możemy pola, które wykorzystane mogą być jako dwa przyciski, pięciopozycyjny slider oraz czujnik zbliżeniowy. W PSoC 63 zaimplementowano czwartą generację tej technologii, która pozwala na implementację wielu strategii detekcji przez czujniki pojemnościowe.
Płytka deweloperska wyposażona jest w wiele wyprowadzeń, umożliwiających podłączanie zewnętrznych peryferiów. Jednym z nich jest przygotowany przez Cypressa ekran o przekątnej 2,7 cala. Wyświetlacz ten wykonany został w technologii e-ink, dzięki czemu pobiera on niezwykle mało prądu - idealnie nadaje się do aplikacji bateryjnych. Moduł z wyświetlaczem zawiera także termistor, czujnik ruchu o sześciu stopniach swobody oraz cyfrowy mikrofon.
Moduł deweloperski PSoC 6 BLE Pioneer Kit wyposażony jest w system zasilania wykorzystujący port typu USB-C. Można przez ten port nie tylko zasilać sam testowany układ, ale także ładować akumulator litowo-jonowy, znajdujący się w module. System zasilania działać może także w drugą stronę, tzn. zasilać urządzenia podłączone do portu USB-C, jeżeli płytka deweloperska zasilana jest z innego źródła.
Jak sama nazwa wskazuje, w module tym odnaleźć można interfejs Bluetooth Low Energy (BLE). Na płytce deweloperskiej zintegrowano cały tor sygnałowy wraz z anteną. Dzięki temu system jest w pełni kompatybilny z BLE 5.0
Podsumowanie
Mimo że historia układów PSoC ma ponad 15 lat, Cypress dba o uaktualnianie tej linii układów. Najnowsze, zaprezentowane niedawno układy z serii PSoC 4 oraz 6 wykorzystują nowoczesne i popularne w przemyśle rdzenie ARM, łącząc je z programowalnymi blokami logicznymi i analogowymi, charakterystycznymi dla układów PSoC. Nowym układom towarzyszy ekonomiczna płytka deweloperska oraz aktualizacja środowiska deweloperskiego. Jeśli jeszcze nie korzystaliście z układów PSoC, to nowe układy z serii 4700 u 6x są doskonałą okazją, by je wypróbować.
Nikodem Czechowski