| slave | ||
| .gitignore | ||
| main.c | ||
| README.md | ||
8. Устройство управления контроллером ШИМ.
TODO:
-
Перетащить проект в Microchip Studio, вынести все .h и .c файлы по проекту
Описание
Устройство представляет из себя I2C ведущее устройство.
Управляет устройством из задания 7. Имеет 6 кнопок:
-
Включить ШИМ.
-
Выключить ШИМ.
-
Увеличить частоту на 25% от текущего.
-
Уменьшить частоту на 20% от текущего.
-
Увеличить скважность на 10% от текущего.
-
Уменьшить скважность на 10% от текущего.
Пояснения к заданию
-
Состояние ШИМ брать с Master устройста и передавать на Slave устройство.
-
Отправляемые команды - 16 бит, число с фиксированной запятой (12 бит целое, 4 - дробная часть).
Набор команд
| Команда | Описание |
|---|---|
| 0x01: | Включить ШИМ. |
| 0x02: | Выключить ШИМ. |
| 0x03: | Увеличить частоту на 25% от текущего. |
| 0x04: | Уменьшить частоту на 20% от текущего. |
| 0x05: | Увеличить скважность на 10% от текущего |
| 0x06: | Уменьшить скважность. на 10% от текущего |
Описание регистров для I2C
| Регистр | Описание |
|---|---|
| TWBR | Отвечает за задание битрейта передачи данных. Его значение вычисляется по следующей формуле: ((F_CPU / I2C_FREQ) - 16) / 2. Формула производит округление результата. |
| TWCR | Регистр управления. Содержит в себе биты управления. |
| TWDR | Отвечает за передаваемые или принимаемые данные. В этом регистре хранится один байт данных в памяти. |
| TWAR | Cодержит адрес устройства, по которому микроконтроллер может быть доступен в сети I2C. |
| TODO: | N/A |
Описание флагов
| Флаг | Описание |
|---|---|
| TWINT | Флаг TWINT (TWI Interrupt Flag), показывающий, что операция TWI была выполнена. |
| TWEN | флаг TWEN (TWI Enable), включающий работу TWI интерфейса. |
| TWEA | флаг TWEA (TWI Enable Acknowledge), чтобы включить ответное подтверждение (ACK). |
| TODO: | N/A |
Иформация по TW
TWI (Two-Wire Interface) - это двухпроводный последовательный интерфейс для обмена данными, основанный на коммуникационном стандарте I2C (Inter-Integrated Circuit). TWI был разработан компанией Atmel (теперь Microchip Technology) и является улучшенной версией I2C.
TWI обеспечивает ориентированную на сообщения линию связи с возможностью мастер-ведомый обмен. Обычно в TWI существует одно устройство, которое устанавливает шину (master), и одно или несколько устройств, которые подключаются к шине в качестве активных (ved) узлов.
TWI работает со скоростями передачи данных от 100 кбит/с до 400 кбит/с, хотя некоторые устройства могут поддерживать скорость в 1 Мбит/с.
Принцип работы TWI основан на использовании двух проводов - SDA (Serial Data) и SCL (Serial Clock). SDA - это линия для передачи данных, а SCL - это линия для синхронизации передачи данных. Модулем TWI можно передавать данные и исполнять команды чтения/записи, после чего мастер подтверждает успешность операции.
TWI нашел широкое применение во многих устройствах, таких как датчики, LCD-экраны, термометры, акселерометры, сенсорные панели, электронные блоки питания и т.д.