реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> 4х канальный счетчик импульсов
AlexTech
сообщение Dec 28 2005, 06:12
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 2-12-05
Пользователь №: 11 688



Все оказалось не так просто sad.gif
Поскольку кулер управляется ШИМом, причем по земле (uln2803a), то соответственно часть времени с тахометра просто нет сигнала. Как бороть чего-то никак не придумывается...

Сообщение отредактировал AlexTech - Dec 28 2005, 06:12
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 28 2005, 07:35
Сообщение #17


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(AlexTech @ Dec 28 2005, 08:12) *
Все оказалось не так просто sad.gif
Поскольку кулер управляется ШИМом, причем по земле (uln2803a), то соответственно часть времени с тахометра просто нет сигнала. Как бороть чего-то никак не придумывается...


Считать то, что можно посчитать, результат домножать на некоторый коэффициент K (который может быть не постоянным, а изменяться взависимости от кол-ва принятых импульсов)..
Go to the top of the page
 
+Quote Post
AlexTech
сообщение Dec 28 2005, 07:46
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 2-12-05
Пользователь №: 11 688



Да не... Там совсем какая-то лажа получается.
При соотношении ШИМА(счетчик - байт) 80 крутим, 175 нет - подсчитывает 25-30 оборотов (реально ~350)
При соотношении 250 крутим, 5 нет - подсчитывает 1-3 (реально ~900)

В общем некогда вчера было разбираться, но что-то не так, то-ли я накосячил, то-ли что...
Go to the top of the page
 
+Quote Post
Laksus
сообщение Dec 29 2005, 04:13
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 146
Регистрация: 16-05-05
Пользователь №: 5 069



___________________________________________________
(defunct @ Dec 27 2005, 19:11)
Считать-то он успеет, а вот от ошибок не застрахуешься при такой реализации.
Представьте ситуацию, когда один тахометр вызвал прерывание, мы порт прочитали, низкий уровень еще удерживается и в этот момент приходит сигнал от другого тахометра.. и все приплыли - перывания нет, импульс пропущен.
___________________________________________________
(prottoss Dec 27 2005, 14:35)
А никаких ошибок при такой частоте входных импульсов и не будет (вернее погршность будет низкая для данного типа устройства) - по любому прерыванию процессор анализирует состояния ВСЕХ линий. Итого время исполненя прерывания (при 8 МГц) - 2..5 мкс - вполне нормально.
___________________________________________________

"...по любому прерыванию процессор анализирует состояния ВСЕХ линий...." Вот именно, речь
идет о том, что при
"... если такой вариант: 4 выхода тахометров -> на 4 любые ноги и через диоды на один вход внешнего прерывания. ..."
будут возникать биения между сигналами. И погрешность будет
определятся не сколько частотой сигналов, а больше их скважностью.
При довольно большой скважности и близких частотах - прерываний вообще не будет.

Для увеличения точности необходимо увеличить скважность импульсов,
например применив RC цепочки (смотри схемку Прикрепленный файл  SHEM_4_COUNT.zip ( 6.34 килобайт ) Кол-во скачиваний: 126
).
(На практике я эту схемку не применял. Но, по моему, должно работать.)
__________
__________
Все оказалось не так просто
Поскольку кулер управляется ШИМом, причем по земле (uln2803a), то соответственно часть времени с тахометра просто нет сигнала. Как бороть чего-то никак не придумывается...
__________
Ну тут без схемы и осциллограм сигналов подсказать, что либо не получиться.

2005 12 29
Александр
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 29 2005, 12:21
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Laksus @ Dec 29 2005, 11:13) *
Для увеличения точности необходимо увеличить скважность импульсов,
например применив RC цепочки


Согласен, так будет намного лучше


--------------------
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 29 2005, 18:53
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Что вы этим выиграете? Если прерывания итак можно защелкивать по фронту. Если сильно не хочется использовать контроллер с нужным кол-вом входов внешних прерываний, то можно пожертвовать прерывание от компаратора ну и от УАРТа

Сообщение отредактировал slog - Dec 29 2005, 18:58


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 29 2005, 19:05
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(slog @ Dec 30 2005, 01:53) *
Что вы этим выиграете? Если прерывания итак можно защелкивать по фронту. Если сильно не хочется использовать контроллер с нужным кол-вом входов внешних прерываний, то можно пожертвовать прерывание от компаратора ну и от УАРТа


Мы же не знаем, ЧТО использует автор топика и какая схема с этим ЧТО. Может быть есть в схеме и задействованный компаратор и УСАРТ МК.


--------------------
Go to the top of the page
 
+Quote Post
archi2000
сообщение Jan 7 2006, 22:53
Сообщение #23


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 30-09-05
Пользователь №: 9 098



Без схемы и той программы, которая есть у автора разобраться трудно.
Однако Атмел имеет приоритет прерываний.
Эти четыре вектора нужно так написать, чтобы внутри вектора после подсчета импульса опять разрешались прерывания. Вобщем вложенные прерывания получатся.
Если на ножке было событие, а прерывания запрещены, то устанавливается флаг прерывания и Атмел ждет комманды разрешения прерываний. Если импульсы с небольшой частотой, то они могут приходить на ножки одновременно и МК их просуммирует без пропусков.
Однако считаем - на один вектор 100 тактов с учетом спрятать СТАТУС и все регистры в стек и запретить прерывания с более высоким приоритетом, а глобально прерывания разрешить.
Частота кварца 16 МГц максимальная.
16 000 000/100/4 канала=40кГц максимальная частота импульсов по одному каналу счета.
Пока обрабатываешь Int0 прерывания запрещены.
Запрещаешь внутри этого вектора Int0 и разрешаешь прерывания
Если на Int1 был импульс не выходя из Int0 вызывается Int1 и импульс добавится в теле этого прерывания.
Опять же в теле Int1 запрещаем все с более высоким приоритетом и разрешаем глобально прерывания и работаем с Int2.
Вектора в даташите расположены согласно приоритетов.
И для отладки нужно 4 перестраиваемых RC генератора импульсов на инверторах, осциллограф и частотомер.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01422 секунд с 7
ELECTRONIX ©2004-2016