Аппаратный счетчик импульсов на I2C для Ардуино.
- Сообщения: 7
- Зарегистрирован: Чт ноя 29, 2018 21:52:42
Хочу собрать автомобильный компьютер на Ардуине. Среди функций: часы, GPS логгер, возможность вводить и запоминать данные о заправке с клавиатуры, считывать уровень топлива с штатного датчика и т.д. Как часть алгоритма, нужно получать данные с датчика скорости, т.е. счетчик импульсов. Т.к. нагрузка на контроллер большая, то, вероятно, программные варианты будут пропускать импульсы. По этому хотелось бы счетчик выполнить аппаратно, чтобы считывать с него данные в любое удобное время. Как вариант I2c или что-то подобное. Какие варианты можно рассмотреть?
- Реклама
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
PCF8583/PCF8563
Смысл микрухи в том, что она может считать импульсы по осциляторному входу.
В режиме счетчика можно вытаскивать насчитанное по I2C с защелкиванием результата из всех регистров при чтении первого.
Смысл микрухи в том, что она может считать импульсы по осциляторному входу.
В режиме счетчика можно вытаскивать насчитанное по I2C с защелкиванием результата из всех регистров при чтении первого.
DS1672 вот спецмикросхема.
- Сообщения: 7
- Зарегистрирован: Чт ноя 29, 2018 21:52:42
не знаю, есть ли это в ардуине, но в мегах точно есть:
1) завести сигнал на ногу прерывания, можно даже само прерывание не включать, а только флаг его иногда проверять (с частотой не ниже частоты максимальной скорости) и сбрасывать.
2) можно один из таймеров под счетчик отдать...
1) завести сигнал на ногу прерывания, можно даже само прерывание не включать, а только флаг его иногда проверять (с частотой не ниже частоты максимальной скорости) и сбрасывать.
2) можно один из таймеров под счетчик отдать...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Реклама
- Сообщения: 7
- Зарегистрирован: Чт ноя 29, 2018 21:52:42
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3541338#p3541338"]не знаю, есть ли это в ардуине, но в мегах точно есть:
1) завести сигнал на ногу прерывания, можно даже само прерывание не включать, а только флаг его иногда проверять (с частотой не ниже частоты максимальной скорости) и сбрасывать.
2) можно один из таймеров под счетчик отдать...[/uquote]
Вот как раз насчет максимальной скорости и есть сомнения, а если контроллер будет занят, тогда импульс потеряется, счетчик будет врать в минус.
А насчет таймеров - не знаю, я недавно с микроконтроллерами разбираюсь. Можно ссылку?
Добавлено after 2 minutes 21 second:
Насчет тех двух таймеров. Посмотрел даташиты. Судя по ним, это часы. Счетчики кварца с декодерами под дату и время. Как перевести их в режим просто счета я не нашел...
К тому же DS1672 только под 3.3 вольта, там еще питание надо отдельно городить. Может я что-то недочитал?
1) завести сигнал на ногу прерывания, можно даже само прерывание не включать, а только флаг его иногда проверять (с частотой не ниже частоты максимальной скорости) и сбрасывать.
2) можно один из таймеров под счетчик отдать...[/uquote]
Вот как раз насчет максимальной скорости и есть сомнения, а если контроллер будет занят, тогда импульс потеряется, счетчик будет врать в минус.
А насчет таймеров - не знаю, я недавно с микроконтроллерами разбираюсь. Можно ссылку?
Добавлено after 2 minutes 21 second:
Насчет тех двух таймеров. Посмотрел даташиты. Судя по ним, это часы. Счетчики кварца с декодерами под дату и время. Как перевести их в режим просто счета я не нашел...
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Питание отдельно городить нет необходимости. Там два пина питания . Основной и бекап батарея с возможностью зарядки.
Счетчик 32 битный. Может работать автономно и только по требованию можно проверить что он там насчитал и сбросить.
Что мешает завести сигнал для счета на OSCIN.
Счетчик 32 битный. Может работать автономно и только по требованию можно проверить что он там насчитал и сбросить.
Что мешает завести сигнал для счета на OSCIN.
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
Почему не выбрали более мощный контроллер?Tehnikr писал(а):Т.к. нагрузка на контроллер большая, то, вероятно, программные варианты будут пропускать импульсы.
Они разные есть. И с аппаратным подсчетом импульсов и с частотой тактирования 400 МГц и больше.
- Сообщения: 2406
- Зарегистрирован: Ср фев 23, 2011 12:12:31
[uquote="Мурик",url="/forum/viewtopic.php?p=3541623#p3541623"]Почему не выбрали более мощный контроллер?[/uquote]
Потому что адурина. Для более мощного надо самому хоть что то уметь делать...
Потому что адурина. Для более мощного надо самому хоть что то уметь делать...
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
[uquote="AndTer",url="/forum/viewtopic.php?p=3541750#p3541750"]Потому что адурина...[/uquote] потому и не хватает ресурсов.
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
может, и на ней всё это сделать можно, но для этого всёравно нужны знания. Так что вперед - читать даташит на свой контроллер, к там и ардуина может уже и не понкдобится.
Добавлено after 23 minutes 4 seconds:
т.к. аппаратный PWM у тебя не задействован, то и таймеры (кроме того, что миллис считает) скорее всего свободны, почитай про таймер 1, (попробуй обратиться к его регистрам напрямую, как к переменным) прикинь, на какую ногу ардуины выведен его счетный вход. этот таймер 16 битный, а потому даже при частоте импульсов 1кГц его можно раз.в минуту опрашивать. таймер считает покругу, это значит что его можно не сбрасывать, а просто вычитать старые показания из новых (если при этом разность ляжет в 16 битную переменную,ито и в случае переполнения таймера ошибки не будет).
Добавлено after 23 minutes 4 seconds:
т.к. аппаратный PWM у тебя не задействован, то и таймеры (кроме того, что миллис считает) скорее всего свободны, почитай про таймер 1, (попробуй обратиться к его регистрам напрямую, как к переменным) прикинь, на какую ногу ардуины выведен его счетный вход. этот таймер 16 битный, а потому даже при частоте импульсов 1кГц его можно раз.в минуту опрашивать. таймер считает покругу, это значит что его можно не сбрасывать, а просто вычитать старые показания из новых (если при этом разность ляжет в 16 битную переменную,ито и в случае переполнения таймера ошибки не будет).
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Адуринки тоже РАЗНЫЕ бывают.
Соответственно и задачи под соответствующие платформы.
В принципе подход верный - обработчик периферийными задачами реального времени заниматься не дложен - дело "головы" считать и команды выдавать (даже не интерфейсом пользователя заниматься - на то своя "видеокарта" должна бысть по-максимуму).
Только вот для подобных конструкций...
Знание только адуринки явно маловато будет...
Ибо периферию надо также САМОМУ творить из разношерстных подручных МК ВСЕХ типовых семейств (то, что наиболее удобно из имеющегося в доступности) да предпочтительно под ассемблером...
А такой вариант даже Мурик вряд-ли решится сделать.

Соответственно и задачи под соответствующие платформы.
В принципе подход верный - обработчик периферийными задачами реального времени заниматься не дложен - дело "головы" считать и команды выдавать (даже не интерфейсом пользователя заниматься - на то своя "видеокарта" должна бысть по-максимуму).
Только вот для подобных конструкций...
Знание только адуринки явно маловато будет...
Ибо периферию надо также САМОМУ творить из разношерстных подручных МК ВСЕХ типовых семейств (то, что наиболее удобно из имеющегося в доступности) да предпочтительно под ассемблером...
А такой вариант даже Мурик вряд-ли решится сделать.
- Сообщения: 7
- Зарегистрирован: Чт ноя 29, 2018 21:52:42
Вообще, тут да, скорее принципиальный вопрос. Задачи реального времени - независимая аппаратная реализация. А насчет мощности, мне кажется ее тут за глаза, при правильной реализации. Запросил значение десятка датчиков, отправил их на экран, точнее.2 экрана и скинул на SD карту.
Добавлено after 1 minute 31 second:
Про таймеры почитаю, про счетчик тоже.
Добавлено after 1 minute 31 second:
Про таймеры почитаю, про счетчик тоже.
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
Периферия (по отношению к процессорному ядру) аппаратная и находится внутри МК, а не программная. Речь не про внешние микросхемы по отношению к МК.BOB51 писал(а):Ибо периферию надо также САМОМУ творить из разношерстных подручных МК ВСЕХ типовых семейств
Медленно (разработка) и не переносимо между МК с разными ядрами.BOB51 писал(а):да предпочтительно под ассемблером...
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Tehnikr",url="/forum/viewtopic.php?p=3542174#p3542174"]А насчет мощности, мне кажется ее тут за глаза, при правильной реализации. Запросил значение десятка датчиков, отправил их на экран, точнее.2 экрана и скинул на SD карту.[/uquote]
А что уже работает? Просто в начале еще говорилось про часы, GPS, клавиатуру, шансы все это реализовать начинающему, не важно на чем, меньше 1%.
А что уже работает? Просто в начале еще говорилось про часы, GPS, клавиатуру, шансы все это реализовать начинающему, не важно на чем, меньше 1%.
- Сообщения: 7
- Зарегистрирован: Чт ноя 29, 2018 21:52:42
Часы работают и макетка датчика уровня топлива. GPS - там тоже просто, сам модуль дорогой, еще не купил. В ближайших планах сд карта и отдельный экран под часы, жду модули.
Добавлено after 5 minutes 9 seconds:
Вообще, основная задача - gps логер + точный датчик скорости + рассчет реального расхода топлива. Скорость + пробег будут считаться на совместных данных gps и датчика пробега.
Добавлено after 5 minutes 9 seconds:
Вообще, основная задача - gps логер + точный датчик скорости + рассчет реального расхода топлива. Скорость + пробег будут считаться на совместных данных gps и датчика пробега.
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
Ардуина не панацея. Меня забавляет такое отношение. Типа ардуина палочка выручалочка. Этакая замена диспетчеров, RTOS, алгоритма. Можно ничего не знать, не изучать. Воткнул и забыл. А вот хренушки.
Хочешь создать нормальный рабочий девайс, изволь изучать азы. Конструктор любой собрать может. А вот эксклюзив...
Хочешь создать нормальный рабочий девайс, изволь изучать азы. Конструктор любой собрать может. А вот эксклюзив...
у ардуины есть преимущество, которое особо ценят новички: куча ( и доступность) библиотек под всякую периферию и настраиваются они довольно просто...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


