Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
402 Часть 111. Практическое программирование микроконтроллеров АVR Самый очевидный из них - тот же самый, что используется для сброса Arduino при загрузке скетчей через Bootloader. Для этого в адаптере должна транслировать ся одна из дополнительных линий расширенного порта RS-232, направленных от компьютера к контроллеру: RTS или DTR. В нормальном состоянии эти линии «ви сят» в логической единице (отрицательный потенциал на выходе СОМ-порта, по ложительный на ТТL-выходе адаптера) . Подключив одну из этих линий к выводу внешнего прерывания INTO или INT 1 , вы можете перед началом коммуникаций сбросить ее в ноль, инициировав таким образом пробуждение контроллера. Не за будьте только выждать паузу, необходимую для установления после «Пробужде ния» (от 4 до 20 мс, в зависимости от тактовой частоты, - см. главу 14) . Когда кон троллер загрузится, источник пробуждения легко определяется по прерыванию, которое привело к выводу из «сию>, и контроллер вместо рутинной работы перехо дит в режим ожидания команд извне . Второй способ не требует отдельного вывода, но менее надежен. Пока обмена нет, на линии TxD со стороны адаптера (т. е. компьютера) также «висит» логическая единица, которая сбрасывается в ноль первым же стартовым битом. То есть соеди нив между собой линии RxD и внешнего прерывания INTO (или INТ l ) контроллера, вы первым посланным байтом с произвольным значением «будите» контроллер, а настоящий обмен затем начинаете спустя некоторое время, необходимое кон троллеру для выхода из «сию> . Ненадежность тут в том, что на вывод RxD , а следо вательно, и на вывод внешнего прерывания контроллера при этом могут попадать ложные стартовые импульсы: в моменты подключения и отключения адаптера от компьютера или от контроллера, запуска внешней программы, просто из-за наводок и т. п. В общем-то подобное не исключено и в первом способе, хотя и гораздо ме нее вероятно. Потому оба этих способа требуют тщательной проверки на практике, в конкретной схеме и с конкретным адаптером:.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==