Последовательный периферийный интерфейс SPI
Меры предосторожности при работе с EEPROM
К сожалению, у EEPROM-памяти есть один недостаток: во время работы при пониженном напряжении питания хранящиеся в ней данные могут быть повреждены. Это может произойти по двум причинам:
1. Обычная процедура записи в EEPROM требует некоторого минимального напряжения питания; если напряжение питания ниже этой величины, запись не может быть выполнена.
2. Микроконтроллер сам может выполнять команды некорректно, если напряжение питания будет ниже некоторой величины. Чтобы избежать повреждения данных, хранящихся в EEPROM, достаточно воспользоваться одним из трех следующих решений:
- удерживать микроконтроллер в состоянии сброса все время, пока напряжение питания находится ниже нормы. Это решение реализуется внешней схемой защитного сброса - супервизоора питания. В некоторых моделях семейства AVR уже имеется встроенный детектор пониженного напряжения питания (Brown-out Detector).
|
|
- удерживать микроконтроллер в «спящем» режиме (Power Down), пока напряжение питания находится ниже нормы. Поскольку в этом режиме микроконтроллер не может выполнять никаких команд, такое решение эффективно защищает служебные регистры EEPROM от непреднамеренной записи.
- хранить константы во FLASH-памяти программ, если они не должны меняться во время работы программы. Микроконтроллер не может самостояельно производить запись в FLASH-память, соответственно, при напряжении питания ее содержимое не будет повреждено.
Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) имеет два назначения. Прежде всего, через него может быть осуществлено программирование микроконтроллера (так называемый режим последовательного программирования).
Вторым назначением интерфейса является организация высокоскоростного обмена данными между микроконтроллером и различными периферийными устройствами, такими как цифровые ЦАП/АЦП, Flash-ПЗУ и др. Посредством этого интерфейса также может производиться обмен данными между несколькими микроконтроллерами AVR. Использование интерфейса SPI в качестве высокоскоростного канала связи и рассматривается в данной главе.
При обмене данными по интерфейсу SPI микроконтроллер AVR может работать как в режиме Master, так и в режиме Slave. При этом пользователь может задать следующие параметры:
- скорость передачи (четыре программируемых значения):
- формат передачи (от младшего разряда к старшему или наоборот);
Дополнительной возможностью подсистемы SPI является «пробуждение» микроконтроллера из режима Idle при поступлении данных.