slave | ||
.gitignore | ||
demo.c | ||
gpio.c | ||
gpio.h | ||
i2c.c | ||
i2c.h | ||
main.c | ||
pwm.c | ||
pwm.h | ||
README.md |
8. Устройство управления контроллером ШИМ.
Описание
Устройство представляет из себя 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-экраны, термометры, акселерометры, сенсорные панели, электронные блоки питания и т.д.