Например TDA7294

Форум РадиоКот • Просмотр темы - Программная обработка Энкодера на AVR
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Сб июл 20, 2019 06:13:43

Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 84 ]  1, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 12:58:11 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Добрый день уважаемые форумчане!

Стала предо мной задача обработки двух энкодеров, обработки фотоприемника для ДУ, постоянное обновление данных регистров 74HC595 5шт. включенных последовательно, и переодический (по таймеру) выброс данных в еепром типа 24Схх

SPI и I2C программный.

Планирую применить ATmega16 . Но у нее всего 2 прерывания INT0 and INT1. Не хватает еще одного прерывания для второго энкодера...
Как можно решить эту проблему? Чтоб система работала надежно без сбоев?

Посетила идея настроить таймер на прерывание по переполнению и в нем опрашивать входы энкодеров. Но не будет ли искажений сигналов при передаче данных по SPI и I2С ?

С ув. Артем


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 13:29:17 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 17:34:25
Сообщений: 13511
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
Посетила идея настроить таймер на прерывание по переполнению и в нем опрашивать входы энкодеров.

Да, именно так.
Цитата:
о не будет ли искажений сигналов при передаче данных по SPI и I2С ?

Нет, они же работают аппаратно.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 13:30:54 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Artos писал(а):

SPI и I2C программный.
.........

Но не будет ли искажений сигналов при передаче данных по SPI и I2С ?

С ув. Артем


Нет, интерфейсы программные...


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 13:34:46 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 17:34:25
Сообщений: 13511
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А, вон оно что.
Тогда сложнее. Я бы советовал сделать опрос энкодеров в основном цикле, когда не работают прерывания. Частота там большая не нужна, говорят 500Гц достаточно. Да и если пропустить опрос - не страшно, всё равно не заметишь.
Сам, правда, не пробовал, энкодеры только приехали, на днях поковыряю, как с ними лучше обращаться.


Вернуться наверх
 
Плавкие предохранители LittelFuse. Грамотный подбор

Выбор оптимального плавкого предохранителя требует учета многих параметров. Для упрощения выбора оптимального предохранителя и автоматизации расчетов Littelfuse предлагает онлайн-утилиту. Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 13:51:01 
Друг Кота
Аватар пользователя

Карма: 53
Рейтинг сообщений: 375
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6810
Откуда: Ижевск
Рейтинг сообщения: 0
Artos писал(а):
Нет, интерфейсы программные...

Причина неиспользования аппаратных?

_________________
Docendo discimus


Вернуться наверх
 
Немногим дороже дискретного решения: новое поколение импульсных стабилизаторов Mornsun

Практически во всех радиоэлектронных устройствах массово применяются линейные понижающие стабилизаторы напряжения типа КРЕН в корпусе TO220 (другое обозначение – 78хх) и им подобные для формирования основного напряжения питания схемы.
Данные стабилизаторы позволяют без особых затрат получить нужное для каскада или узла схемы напряжение, если устройство питается от внешнего источника с более высоким напряжением. Для этого требуются… Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 13:57:41 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Для легкой переносимости на другую платформу + не понятно как инициализировать аппаратные SPI и I2C и использовать.

Работаю в CVAVR

Думаю что в момент попадания в прерывание по таймеру можно прижимать SCL к земле. А при выходе освобождать.


А еще лучше "синхронизировать" работу дэвайса .

ловим энкодеры по таймеру .

если поймали > обрабатываем данные запрещаем прерывания и вываливаем на индикацию HC595

если нет > возвращаемся на начало.

По таймеру если было зафиксировано срабатывание энкодеров > сохраняем в еепром 24Схх
Вчера пробовал скорость работы программного I2C с памятью 24С08. В принципе скорость меня устраивает.

Еще: Что если применить 93Схх ? тогда не надо I2C городить?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 14:06:48 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
А как обрабатывать дребезг контактов при использовании таймера?
Просто запрещать прерывания на "N" время если было зафиксировано срабатывание энкодера что и послужит антидребезгом?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 14:29:33 
Друг Кота
Аватар пользователя

Карма: 79
Рейтинг сообщений: 744
Зарегистрирован: Вт мар 16, 2010 23:02:27
Сообщений: 9295
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
а поставь аппаратный антидребезг на "рассыпухе" :)


Вернуться наверх
 
Prist.ru предлагает скидку всем частным лицам при покупке приборов АКИП, GW Instek, APPA (кроме осциллографов АКИП-4115/1А, GDS-71102)!

Интересные новинки уже на складе:

Осциллограф АКИП-4126Е

Многоканальные источники питания серии GPP

Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 14:33:51 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
На конденсаторе чтоль? :)


Вернуться наверх
 
Купить электронные компоненты в LCSC

Отправка со склада через 4 часа после заказа!
900 000 пользователей, 3000+ заказов в день!
Зарегистрируйтесь сегодня и получите скидку 8 долларов на первый заказ!
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 14:37:30 
Друг Кота
Аватар пользователя

Карма: 79
Рейтинг сообщений: 744
Зарегистрирован: Вт мар 16, 2010 23:02:27
Сообщений: 9295
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
на триггерах
r-s, d и прочее 8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 14:45:12 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Зачем увеличивать габариты ПП и сложность схемы если есть МК ?
При сдаче в производство главная цель стоит "Максимально минимальные" габариты ПП . Поэтому отпадает такая идея :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 14:47:44 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 17:34:25
Сообщений: 13511
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Да дребезг программно нормально отсекается. Если сами не придумаете, вот алгоритм Леонида Ивановича, раскомментирован до нельзя...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:03:52 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Интересный код! Спасибо Вам! Надо попробовать его.

Но как то сложно все реализовано... Куча переменных, зачем?
Я год назад проводил тесты с энкодером.
И написал кусок кода (сейчас попробую по памяти написать)

Код:

if (enc==0 && flags_enc==0)
{
   if (enc1==1 && flags_enc1==0)
   {
             comand_left(); // команда влево

        flags_enc = flags_enc1 = 1;
    }

}

if (enc1==0 && flags_enc_==0)
{
   if (enc==1 && flags_enc1_==0)
   {
             comand_right (); // команда вправо

        flags_enc_ = flags_enc1_ = 1;
    }

}

if ((enc1==0 && enc==0) || (enc1 && enc))
{
   flags_enc_ = flags_enc1_ =  flags_enc = flags_enc1 = 0;  // собственно сбрасываем флаги
}

delay_func(); // отсечка дребезга


Код реально работал в основном цикле программы. в качестве проверки выводил в порт меги8 "бегущий лог.1" подключив светодиоды к порту я видел как "бежит" светящийся светодиодик :)

Ну еще enc и enc1 не забыть продэфайнить в начале.

И еще можно будет убрать три переменных а использовать всего лишь 4 бита из одного байта. Тогда код вообще будет оптимальным.
Так мне кажется лучше смотрится :)


Последний раз редактировалось Artos Вт сен 04, 2012 15:17:26, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:09:56 
Друг Кота
Аватар пользователя

Карма: 104
Рейтинг сообщений: 1841
Зарегистрирован: Чт янв 10, 2008 23:01:02
Сообщений: 15108
Откуда: Московская область
Рейтинг сообщения: 0
Уже приводил эту ссылку по энкодеру(с защитой от дребезга):
http://www.microchip.su/showpost.php?p= ... stcount=32


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:14:49 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 17:34:25
Сообщений: 13511
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
О, я не видел! Интересно сделано.
Спасибо, утащил в закладки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:19:46 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Если это в мой адрес, то:

Не за что :)
Помню день сидел и думал как максимально просто написать процедуру обработки энкодера :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:21:31 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 17:34:25
Сообщений: 13511
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я КРАМу, если что :wink:
Ваш тоже утащил, но не разбирал. Скоро все проверю :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:21:50 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 28
Зарегистрирован: Вс авг 10, 2008 20:35:49
Сообщений: 410
Откуда: Евпатория
Рейтинг сообщения: 0
Здесь ещё гляньте


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:30:36 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 14:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
А никто не пробовал проводить испытания.

На какой частоте может работать порт в AVR контроллера?
буду брать 4мгц тактовую.
Нужно быстро рулить сдвиговым регистром но не постоянно, в момент изменения данных.
(статическая индикация три разряда) + вывод двоичного кода в 2х8бит в еще два регистра.
И того получается 5шт. сдвиговых регистров включенных в цепочку.

На какой частоте реально можно затактировать программный SPI?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программная обработка Энкодера на AVR
СообщениеДобавлено: Вт сен 04, 2012 15:34:58 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 17:34:25
Сообщений: 13511
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А какая разница?
У меня 595е цепочкой 14 штук, тактовая - 20МГц, никаких задержек, выплёвываю данные когда надо и всё. В любом случае логика на порядок быстрее вашего МК отработает.
То есть обычный цикл, никаких таймеров и прочего. Это ведь синхронный интерфейс получается.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 84 ]  1, , , ,  

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y