У сучасній електроніці, зокрема у вбудованих системах, отримали широке розповсюдження протоколи UART, I2C, SPI, USB та деякі інші. Їх принцип роботи часто досить прості, але на практиці часто виникає велика кількість проблем: синхронізація швидкостей, довжина шин, підтяжки ліній, тощо. З'єднання іноді можуть чомусь працювати некоректно.
STM32 при правильному налаштуванні забезпечує швидку і надійну комунікацію з вашими пристроями по вище згадуваним протоколам. В нашому розпорядженні є не лише блокуючі функції прийому/передачі, коли пристрій зупиняє роботу в очікуванні даних чи перевіряє їх надходження в нескінченному циклі, а і такі потужні інструменти як DMA, коли дані «самі» зчитаються/запишуться у потрібну структуру в пам'яті, або переривання, яке не потурбує виконання основної задачі, доки це не знадобиться.
Тож як працює комунікація між пристроями у вбудованих системах? Як реалізовано це в STM32? В якому випадку які рішення краще використовувати? Що слід робити, якщо живлення здійснюється від батарейки і потрібно якомога сильніше зберігати енергію? Ці та інші питання розглядатимемо на воркшопі, а також вирішимо кілька практичних задач.
План воркшопу:
- UART, I2C, SPI, CAN, USB - особливості роботи, фізичні принципи, відмінності.
- Способи комунікації UART, I2C, SPI на прикладі echo-програм.
- Робота з різними пристроями на шині.
- Робимо USB HID-пристрій.