Страница 1 из 2
Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Пт янв 04, 2019 19:28:18
Tehnikr
Хочу собрать автомобильный компьютер на Ардуине. Среди функций: часы, GPS логгер, возможность вводить и запоминать данные о заправке с клавиатуры, считывать уровень топлива с штатного датчика и т.д. Как часть алгоритма, нужно получать данные с датчика скорости, т.е. счетчик импульсов. Т.к. нагрузка на контроллер большая, то, вероятно, программные варианты будут пропускать импульсы. По этому хотелось бы счетчик выполнить аппаратно, чтобы считывать с него данные в любое удобное время. Как вариант I2c или что-то подобное. Какие варианты можно рассмотреть?
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Пт янв 04, 2019 20:10:15
Dimon456
PCF8583/PCF8563
Смысл микрухи в том, что она может считать импульсы по осциляторному входу.
В режиме счетчика можно вытаскивать насчитанное по I2C с защелкиванием результата из всех регистров при чтении первого.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Пт янв 04, 2019 21:09:41
vanyap1
DS1672 вот спецмикросхема.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 06:22:12
Tehnikr
Ок, спасибо, буду изучать.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 07:31:41
Ivanoff-iv
не знаю, есть ли это в ардуине, но в мегах точно есть:
1) завести сигнал на ногу прерывания, можно даже само прерывание не включать, а только флаг его иногда проверять (с частотой не ниже частоты максимальной скорости) и сбрасывать.
2) можно один из таймеров под счетчик отдать...
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 08:10:26
Tehnikr
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3541338#p3541338"]не знаю, есть ли это в ардуине, но в мегах точно есть:
1) завести сигнал на ногу прерывания, можно даже само прерывание не включать, а только флаг его иногда проверять (с частотой не ниже частоты максимальной скорости) и сбрасывать.
2) можно один из таймеров под счетчик отдать...[/uquote]
Вот как раз насчет максимальной скорости и есть сомнения, а если контроллер будет занят, тогда импульс потеряется, счетчик будет врать в минус.
А насчет таймеров - не знаю, я недавно с микроконтроллерами разбираюсь. Можно ссылку?
Добавлено after 2 minutes 21 second:
Насчет тех двух таймеров. Посмотрел даташиты. Судя по ним, это часы. Счетчики кварца с декодерами под дату и время. Как перевести их в режим просто счета я не нашел...

К тому же DS1672 только под 3.3 вольта, там еще питание надо отдельно городить. Может я что-то недочитал?
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 08:17:46
Dimon456
neo-m8 - часы, GPS и горизонтальная скорость.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 09:32:55
vanyap1
Питание отдельно городить нет необходимости. Там два пина питания . Основной и бекап батарея с возможностью зарядки.
Счетчик 32 битный. Может работать автономно и только по требованию можно проверить что он там насчитал и сбросить.
Что мешает завести сигнал для счета на OSCIN.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 15:05:05
Мурик
Tehnikr писал(а):Т.к. нагрузка на контроллер большая, то, вероятно, программные варианты будут пропускать импульсы.
Почему не выбрали более мощный контроллер?
Они разные есть. И с аппаратным подсчетом импульсов и с частотой тактирования 400 МГц и больше.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 17:17:28
AndTer
[uquote="Мурик",url="/forum/viewtopic.php?p=3541623#p3541623"]Почему не выбрали более мощный контроллер?[/uquote]
Потому что адурина. Для более мощного надо самому хоть что то уметь делать...
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 19:39:44
Мурик
На ардуине все само делается?
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Сб янв 05, 2019 20:19:39
Ivanoff-iv
[uquote="AndTer",url="/forum/viewtopic.php?p=3541750#p3541750"]Потому что адурина...[/uquote] потому и не хватает ресурсов.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 08:25:06
Ivanoff-iv
может, и на ней всё это сделать можно, но для этого всёравно нужны знания. Так что вперед - читать даташит на свой контроллер, к там и ардуина может уже и не понкдобится.
Добавлено after 23 minutes 4 seconds:
т.к. аппаратный PWM у тебя не задействован, то и таймеры (кроме того, что миллис считает) скорее всего свободны, почитай про таймер 1, (попробуй обратиться к его регистрам напрямую, как к переменным) прикинь, на какую ногу ардуины выведен его счетный вход. этот таймер 16 битный, а потому даже при частоте импульсов 1кГц его можно раз.в минуту опрашивать. таймер считает покругу, это значит что его можно не сбрасывать, а просто вычитать старые показания из новых (если при этом разность ляжет в 16 битную переменную,ито и в случае переполнения таймера ошибки не будет).
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 09:09:16
BOB51
Адуринки тоже РАЗНЫЕ бывают.
Соответственно и задачи под соответствующие платформы.
В принципе подход верный - обработчик периферийными задачами реального времени заниматься не дложен - дело "головы" считать и команды выдавать (даже не интерфейсом пользователя заниматься - на то своя "видеокарта" должна бысть по-максимуму).
Только вот для подобных конструкций...
Знание только адуринки явно маловато будет...
Ибо периферию надо также САМОМУ творить из разношерстных подручных МК ВСЕХ типовых семейств (то, что наиболее удобно из имеющегося в доступности) да предпочтительно под ассемблером...
А такой вариант даже
Мурик вряд-ли решится сделать.

Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 09:58:30
Tehnikr
Вообще, тут да, скорее принципиальный вопрос. Задачи реального времени - независимая аппаратная реализация. А насчет мощности, мне кажется ее тут за глаза, при правильной реализации. Запросил значение десятка датчиков, отправил их на экран, точнее.2 экрана и скинул на SD карту.
Добавлено after 1 minute 31 second:
Про таймеры почитаю, про счетчик тоже.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 11:58:59
Мурик
BOB51 писал(а):Ибо периферию надо также САМОМУ творить из разношерстных подручных МК ВСЕХ типовых семейств
Периферия (по отношению к процессорному ядру) аппаратная и находится внутри МК, а не программная. Речь не про внешние микросхемы по отношению к МК.
BOB51 писал(а):да предпочтительно под ассемблером...
Медленно (разработка) и не переносимо между МК с разными ядрами.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 12:22:53
Reflector
[uquote="Tehnikr",url="/forum/viewtopic.php?p=3542174#p3542174"]А насчет мощности, мне кажется ее тут за глаза, при правильной реализации. Запросил значение десятка датчиков, отправил их на экран, точнее.2 экрана и скинул на SD карту.[/uquote]
А что уже работает? Просто в начале еще говорилось про часы, GPS, клавиатуру, шансы все это реализовать начинающему, не важно на чем, меньше 1%.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 12:52:22
Tehnikr
Часы работают и макетка датчика уровня топлива. GPS - там тоже просто, сам модуль дорогой, еще не купил. В ближайших планах сд карта и отдельный экран под часы, жду модули.
Добавлено after 5 minutes 9 seconds:
Вообще, основная задача - gps логер + точный датчик скорости + рассчет реального расхода топлива. Скорость + пробег будут считаться на совместных данных gps и датчика пробега.
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 13:04:44
Demiurg
Ардуина не панацея. Меня забавляет такое отношение. Типа ардуина палочка выручалочка. Этакая замена диспетчеров, RTOS, алгоритма. Можно ничего не знать, не изучать. Воткнул и забыл. А вот хренушки.
Хочешь создать нормальный рабочий девайс, изволь изучать азы. Конструктор любой собрать может. А вот эксклюзив...
Re: Аппаратный счетчик импульсов на I2C для Ардуино.
Добавлено: Вс янв 06, 2019 19:51:30
Ivanoff-iv
у ардуины есть преимущество, которое особо ценят новички: куча ( и доступность) библиотек под всякую периферию и настраиваются они довольно просто...