PSoC Курс: 1.Вступ

PSoC (Programmable System-on-Chip)  – це програмована система на кристалі від компанії Cypress, тобто електронна схема яка виконує функції певного пристрою, розміщена в одному корпусі мікросхеми, та конфігуруюється розробником. Починаючи із цієї статті буде описано як працювати із PSoC Cypress.

В даний час існує 4 серії PSoC

  1. PSoC 1: використовує 8 бітне пропрієтарне ядро М8С. Для роботи потрібне середовище PSoC Designer. Цей напрям більше не розвивається, тому розглядатись не буде.
  2. PSoC 3: використовує процесорне ядро 8051, має розвинену цифрову і аналогову периферію.
  3. PSoC 4: використовує процесорне ядро Cortex M0, що дозволило знизити споживання струму.
  4. PSoC 5PL: використовує процесорне ядро Cortex M3, найпотужніший мікроконтроллер із всіх серій Cypress.

Архітектура PSoC 4

Як видно із архітектури PSoC складається з чотирьох основних блоків :

  • процесорної частини;
  • програмованих аналогових блоків;
  • програмованих цифрових блоків;
  • портів вводу виводу.

На відміну від класичних мікроконтроллерів (PIC, AVR, STM32, та ін.), PSoC не має фіксованих апаратних блоків (таймери, компаратори, UART), розробник сам вибирає потрібні компоненти і створює свою конфігурацію із програмованих аналогових та цифрових блоків. Наприклад розробник зібрав схему із елементів логічних елементів і при цьому не використав процесорне ядро мікроконтроллера. Тобто сконфігурована система має тільки необхідні для роботи модулі, специфічні для певного завдання.

Плати для навчання

Цей курс буде проводитись на CY8CKIT-042 PSoC 4 Pioneer Kit , але можуть бути використані інші плати. Кожна така плата має на вбудований програматор, тому для роботи не потрібні додаткові пристрої.

Середовище розробки

Для розробки використовується PSoC Creator, який можна завантажити з офіційного сайту. На момент написання статті, остання версія PSoC Creator 3.3 SP3. Розробка проекту починається із створення схеми, для цього із каталогу компонентів (Component Catalog) вибирається потрібний компонент і переноситься на схему. Після цього потрібно зайти у властивості компонента(контекстне меню) та змінити параметри на потрібні. На малюнку показаний приклад налаштування аналогового-цифрового перетворювача.

Далі потрібно з’єднати компоненти між собою створивши тим самим свою схему. Існують основні компоненти (Cypress Component Catalog) за допомогою яких конфігурується робота пристрою та допоміжні ( на схемі відображаються синім кольором) які призначені для відображення з’єднань між виводами мікросхеми та зовнішніми елементами. (наприклад показати що до входу на який підключено ADC  підключено резистор). Ці компоненти називаються “Off-Chip” компонентами. Допоміжні компоненти ігноруються середовищем та компілятором і призначені тільки для покращення інформативності схеми. Якщо компоненти прості, наприклад компаратори, лічильники, то після компіляції проекту можна завантажувати його в мікросхему. Якщо використані складніші компоненти(ADC, DMA..), потрібні зробити їхню ініціалізацію, а також запустити їх в main.c Це відбувається за допомогою API функцій, які доступні після того як розробник  зробив генерацію проекту Build – Generate Aplication. Після цього стають доступні файли *.h в яких є потрібні для роботи API функції. Використовуючи їх можна створювати свою програму.

Після з’єднання і налаштування компонентів, потрібно підключити сконфігуровану схему до портів вводу/виводу. В PSoC периферія не закріплена за пінами, тому це дозволяє спростити друковану плату. Переходимо в меню налаштувань портів, для цього клікаємо на файл з розширенням *.cydwr, та призначаємо входи і виходи схеми на порти вводу/виводу:

Як тільки все налаштовано, написана програма, можна завантажувати *hex файл в мікросхему.

Якщо після конфігурацію пристрій не працює, потрібно перевірити наступні пункти:

  1. Чи коректно налаштовані виводи мікроконтроллера?
  2. Чи включені всі компоненти?
  3. Чи правильно вибраний workspace?
  4. Чи запрограмована плат?
  5. Чи дозволені потрібні переривання?