Драйвер i2c для oled ssd1306

N|Драйвер i2c для oled ssd1306.

Драйвер i2c для oled ssd1306

Радиомодуль ESP14 с stm8s и esp8266.

Микроконтроллер stm8s был создан для сложных условий эксплуатации. В радомодуле ESP14 есть этот базовый микронконтроллер stm8s003 с 8 Кбайт памяти flash, 1 Кбайт ram, 128 байт eeprom.

Из презентаций, документации, форумов выяснил, что семейство stm8s/a/f были разработаны для промышленных и автомобильных применений. “На борту” имеется несколько охранных таймеров. Имеется автоматическое переключение на внутренний hsi генератор в случаях сбоя внешненего кварцевого резонатора. Имеется уникальная аппаратная реализация провреки состояния внутренних регистов. Каждый регистор имеет “теневую” копию, в который записаны инверстные биты. При сбоях микроконтроллер формирует внутренний сброс и восстанавливает работоспособность после сбоя.

На рынке микроконтроллеры stm8s имеют низкую стоимость. Можно создавать датчики с низкой себестоимостью. Микроконтроллер включает в себя периферию: UART, IrDA, LIN, SPI, I2C, ADC-10 bit, TIM, PWM, GPIO.

Интерфейс i2c

N|Сигналы линий scl,sda.

Драйвер i2c oled пытался использовать несколько раз. Простые реализации драйвера работали ненадёжно.

Требования к драйверу i2c:

  • выполнения кода без блокирования основой программы;
  • в фоне необходимо выполнять другие задачи;
  • выявление ошибок на линиях scl,sda;
  • воcстановление обмена информации после ошибок i2c.

Конфигурация stm8s

N|Конфигурация stm8s.

Компания ST- рекомендует использовать конигуратор Stm8CubeMx [1] для настройки тактирования, пинов микроконтроллера. Удобный визуальный редактор-генератор документации. На выходе получаются файлы документации и очень удобно иметь под рукой справочную информацию по проекту.

  1. STM8Cube configuration and report tool. //[электронный ресурс] .- (http://www.st.com/en/development-tools/stm8cubemx.html)

Рекомендации производителя. Примеры i2c для stm8s.

По сслыке можно скачать описание использовая драйвер i2c для stm8s. Производитель в документе “STM8S003/103/903 Errata sheet” описал проблемы работы i2c и возможные варианта обхода ошибок.

В AN3281 [2] имеется каталоги с примерами проектов использования i2c, с учётом ошибок микроконтроллера:

  • STM8S_I2C_Master_interrupt (обработка передачи и приёма данных по шине i2c в прерывании i2c_irq)
  • STM8S_I2C_Master_poll (обработка передачи и приёма с использованием таймаутов таймера)
  • STM8S_I2C_Slave (пример использования микроконтроллера как slave-устройство)

Все проекты собрал и проверил. Успешно заработал проект STM8S_I2C_Master_poll!

Удалось научиться восстанавливать управление oled ssd1306 после отсоединения питания VDD, сигнала SCL, SDA.

  1. STM8 optimized I2C examples (AN3281) //[электронный ресурс] .- (http:// www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm8-embedded-software/stsw-stm8004.html)

 Ссылки :