PWM(шим) декодер на Atmega8

Пока мой логический анализатор летит из китая, мне понадобилось проверить выходы каналов моего семиканального приемника Futaba R617FS на конечные точки.
“Что делать?!”, казалось бы на этот вопрос, ответ один.
Но, нужно было срочно. А под рукой был только старый, добрый Atmega8.
В интернете есть готовая реализации шим декодера (ищи “PWM decoder“), на Arduino, с контроллером Atmega328P.
Но в отличии Atmega8 от Atmega328P, последний имеет вектор прерывания “Pin Change Interrupt Request“, что переводится примерно “Запрос прерывания по смене состояния пина“. И этот вектор применяется практически к каждому пину контроллера Atmega328P.
А у Atmega8 такой фишки нет.
Будем выкручиваться своими силами.

Вспомним одну из предыдущих записей, где мы рассматривали atmega8 как генератор шим сигнала для сервомашинок. Там мы узнали, что сигнал шим для севро, имеет частоту 50 герц (период 0,02 секунды). А вес сигнала имеет длительность от 0,001с, до 0.002с.

Из этот мы возьмем следующую концепцию нашей программы.
Каждые 0.00001 секунд (100 кГц) будет производится выборка сигналов…

Стоп… 100 килогерц!? тогда нам дается максимум 160 команд между прерываниями…

Ну да ладно нам всего то один канал надо. Тогда для подсчета выбранных “высоких уровней” хватит одного регистра общего назначения, R18. Тогда мы должны будем получить максимальную длину высокого уровня 0,00256 секунд. Выходит 0,00056 секунд – это запас хода. Нас вполне устраивает такой запас.

Для соединения компьютера и контроллера удобней использовать интерфейс UART. Интерфейс соединения в промышленных сетях это вообще отдельная история. А для соединения контроллеров(периферии) на плате, либо в устройстве наиболее подходит интерфейс SPI.  Но передавать на компьютер, будем как обычно по UART.

Вывод: Для декодирования шим сигнала сервомашинок путем выборок с пинов, ресурсов Atmega8 не достаточно. Данный опыт нельзя назвать отрицательным. Мы получили положительный опыт реализации как делать нельзя!

Листинг кода Atmega8

Запись опубликована в рубрике Atmega с метками , , , , , . Добавьте в закладки постоянную ссылку.

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>