Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 3. Периферийные устройства и прерывания 57 дартным величинам - рекомендуемое в документации отклонение составляет не более 0,2%, иначе за помехозащищенность линии фирма ответственности не несет. Существуют специальные кварцы для удобного формирования частот, кратных стандартным скоростям передачи RS-232 (например: 1 , 8432 МГц, 4,608 МГц и др.), к гут от орые позволяют сформировать скорости передачи с Нулевой. ошибкой. Они мо­ применяться там, где необходима исключительная стабильность и помехоза­ щ ны и х щ енность линии. Заметим, что в большинстве случаев в АVR точность встроен­ генераторов тактовой частоты при «умолчательной» частоте 1 МГц позволяет обеспечить более или менее нормальную работу порта UART лишь при скоростях 1 200 бит/с и менее (чем выше тактовая частота, тем выше может быть и это значе­ ние скорости) . Но пользоваться UART в таком режиме неудобно, помехоустойчи­ вость при нестабильном генераторе резко падает, потому UART мы всегда будем подключать только в режиме тактирования от внешнего кварца. UART удобен для обмена данными на сравнительно большие расстояния при связи между собой устройств разной природы. Большинство устройств в пределах одной платы или конструктива (память, датчики, внешние АЦП) имеют иные интерфейсы для обмена данными . Их мы сейчас и рассмотрим . Ин те . рфе й с SPI Идея передачи информации побитно с определенными интервалами времени лежит в основе всех последовательных интерфейсов, они различаются только способами синхронизации. В интерфейсе SPI (Serial Peripheral Interface, последовательный пе­ риферийный интерфейс) синхронизирующие импульсы передают по отдельной, специально выделенной линии. Это облегчает задачу синхронизации (не требуется специально задавать скорости обмена), но требует большего числа сигнальных проводов - не менее трех (см. врезку «Примечание» в предыдущем разделе) . В по­ давляющем большинстве случаев необходим еще один - четвертый - провод, который присутствует всегда при подключении более чем двух микросхем к одно­ му интерфейсу, но иногда требуется и при одиночном подключении. Сначала рассмотрим функции этого четвертого провода. Очевидно, что при под­ ключении более чем двух устройств к одной линии, им нужно как-то «разбираться» между собой, иначе может получиться невесть что, когда два или более устройства «захотят» вдруг одновременно что-то передать . Притом непонятно, кому именно передаваемая информация предназначается. Эта проблема решается по-разному: в самом общем случае каждому устройству присваивается индивидуальный адрес - так работает интерфейс I 2 c (о нем будет рассказано далее в этой главе), аналогично можно устроить многоканальный обмен по UART (его расширенный вариант USART специально приспособлен для такого обмена). В других случаях адрес заменяется выводом «выбор кристалла» (Chip Select, CS - как и в случае RESET , правильно обозначать его со значком инверсии, потому что выбор производится в отрицательной логике - при подаче низкого уровня) . Конечно, аппаратно реализовать этот способ проще, чем идентификацию многих битов адреса, потому он получил широкое распространение с давних времен, при-

RkJQdWJsaXNoZXIy MTExODQxMg==