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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Выход компаратора
777777
сообщение Aug 25 2009, 18:04
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Нет ли среди обычных (не xmega) АВРок такой, у которой выход компаратора выведен наружу?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 25 2009, 18:44
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



К сожалению нет. А что Вы хотели соорудить?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Aug 26 2009, 00:17
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Rst7 @ Aug 26 2009, 03:44) *
К сожалению нет. А что Вы хотели соорудить?

Скорее всего, нужна экономия места на плате rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Aug 26 2009, 04:29
Сообщение #4


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(777777 @ Aug 25 2009, 22:04) *
Нет ли среди обычных (не xmega) АВРок такой, у которой выход компаратора выведен наружу?


Как уже сказали - нет. Но ведь можно и программно сделать. По прерыванию дергать ножкой. Правда быстродействие эквивалентного компаратора несколько упадет.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 26 2009, 06:55
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(haker_fox @ Aug 26 2009, 04:17) *
Скорее всего, нужна экономия места на плате rolleyes.gif

Нет, нужна экономия проводов. Есть мысль соорудить выносное устройство, питающееся по двум проводам и по ним же управляющееся. То есть на фоне питающего напряжения 12 В передавать сигнал UARTа с амплитудой, например, 1 В. В приборе его надо выделить и преобразовать в логический уровень после чего подать на вход UARTа.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 07:03
Сообщение #6


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Сделайте софтовый UART на прием wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
dimka76
сообщение Aug 26 2009, 07:06
Сообщение #7


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(777777 @ Aug 26 2009, 10:55) *
Нет, нужна экономия проводов. Есть мысль соорудить выносное устройство, питающееся по двум проводам и по ним же управляющееся. То есть на фоне питающего напряжения 12 В передавать сигнал UARTа с амплитудой, например, 1 В. В приборе его надо выделить и преобразовать в логический уровень после чего подать на вход UARTа.


Но установка отдельного компаратора на плате, не добавит проводов к вашему устройству. А если вы собираетесь применять это для UART, то для его скоростей задержки, связанные с формированием программного выхода компаратора не окажут большого влияния на процесс передачи данных.


Цитата(Rst7 @ Aug 26 2009, 11:03) *
Сделайте софтовый UART на прием wink.gif


Уж лучше софтовый выход компаратора. Меньше вычислительной нагрузки на контроллер.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 07:09
Сообщение #8


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Уж лучше софтовый выход компаратора. Меньше вычислительной нагрузки на контроллер.


Вы ошибаетесь.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 26 2009, 07:17
Сообщение #9


Гуру
******

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



Цитата(777777 @ Aug 26 2009, 14:55) *
Нет, нужна экономия проводов. Есть мысль соорудить выносное устройство, питающееся по двум проводам и по ним же управляющееся. То есть на фоне питающего напряжения 12 В передавать сигнал UARTа с амплитудой, например, 1 В. В приборе его надо выделить и преобразовать в логический уровень после чего подать на вход UARTа.
Сделайте на подобии того, как организовано питание датчиков в 1-ware. Т.е. в отсутствии сигнала у Вас по линии связи идет питающее напряжение. На линию питания надо будет поставить инвертор, он же будет выполнять роль компаратора/преобразователя уровня.


--------------------
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 07:27
Сообщение #10


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
На линию питания надо будет поставить инвертор, он же будет выполнять роль компаратора/преобразователя уровня.


Зачем? Для аля-1-wire и UART инвертор не нужен. Хватит делителя с + питания на прямо на соответствующий пин проца. Если питание 12В, а проц от 5ти вольт, то два резистора килоом по 10 решат вопрос.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
dimka76
сообщение Aug 26 2009, 08:58
Сообщение #11


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(Rst7 @ Aug 26 2009, 11:09) *
Вы ошибаетесь.


настраиваем прерывание от компаратора на режим Comparator Interrupt on Output Toggle.
в самом прерывании
Код
push  tmp
push  tmp_2

in      tmp,  ACSR
bst    tmp,  ACO
in      tmp_2, PORTx
bld    tmp_2, нужный разряд
out    PORTx, tmp_2

pop   tmp_2
pop   tmp
reti



17 тактов + вход в прерывание, даже SREG сохранять не надо wink.gif


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 09:07
Сообщение #12


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
настраиваем прерывание от компаратора на режим Comparator Interrupt on Output Toggle.
в самом прерывании
...
17 тактов + вход в прерывание, даже SREG сохранять не надо


Ужос. Мало того, что в Вашем коде налицо принципиальные ошибки и дикий оверхед, так такой подход еще и принципиально приведет к дупе, если состояние компаратора (например, от помехи) будет меняться чаще, чем проц обработает прерывание wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
dimka76
сообщение Aug 26 2009, 09:19
Сообщение #13


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(Rst7 @ Aug 26 2009, 13:07) *
Ужос. Мало того, что в Вашем коде налицо принципиальные ошибки и дикий оверхед, так такой подход еще и принципиально приведет к дупе, если состояние компаратора (например, от помехи) будет меняться чаще, чем проц обработает прерывание wink.gif



Бог с ними, с ошибками, железо бы выявило все ошибки, это эскиз.

Помеху бы и для программного UART надо было бы фильтровать. Поэтому из сранительного анализа можно это исключить.

А раз присутствует дикий оверхед, значит код может быть еще компактнее.

А какой размер получится у программного UART ? Уж не пять строчек это точно.

Исправил ошибку )))


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 09:29
Сообщение #14


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Помеху бы и для программного UART надо было бы фильтровать. Поэтому из сранительного анализа можно это исключить.


Неверно. Программный UART в простой реализации в независимости от сигнала на компараторе приведет к 1(от компаратора)+8(биты данных от таймера)+1(проверка стоп-бита от таймера) прерываний. А Ваш способ может привести к полной загрузке процессора.

Цитата
А какой размер получится у программного UART ? Уж не пять строчек это точно.


При правильном подходе - немного.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
dimka76
сообщение Aug 26 2009, 09:40
Сообщение #15


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(Rst7 @ Aug 26 2009, 13:29) *
Неверно. Программный UART в простой реализации в независимости от сигнала на компараторе приведет к 1(от компаратора)+8(биты данных от таймера)+1(проверка стоп-бита от таймера) прерываний. А Ваш способ может привести к полной загрузке процессора.


В прерывании от компаратора надо будет запретить прерывание от компаратора и разрешить прерывание от таймера + сбросить таймер (либо в начале кадра либо в конце но надо) + теже копирование битов + сдвиг + подсчет кол-ва принятых битов.

Кстати выход компаратора соединяется со входом захвата таймера, а прерывании по захвату приведенный мною выше код. Вот и аппаратная фильтрация входа.
Еще с этого виртуального выхода компаратора заводим через резистор на физический вход компаратора положительную обратную связь, вот и триггер шмитта. Еще одна фильтрация.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 09:50
Сообщение #16


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
В прерывании от компаратора надо будет...


Повторяю последний раз - Ваш вариант чреват непредсказуемой загрузкой процессора.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
dimka76
сообщение Aug 26 2009, 09:56
Сообщение #17


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(Rst7 @ Aug 26 2009, 13:50) *
Повторяю последний раз - Ваш вариант чреват непредсказуемой загрузкой процессора.


Я и не настаиваю. Просто сравниваю ваш и свой вариант. Окончательное решение всеравно топикстартеру принимать )))


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение Aug 26 2009, 10:18
Сообщение #18


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(777777 @ Aug 26 2009, 10:55) *
Нет, нужна экономия проводов. Есть мысль соорудить выносное устройство, питающееся по двум проводам и по ним же управляющееся.


А почему именно UART? Я тут на досуге озадачивался цифровым управлением для детской железной дороги - мне идея оч понравилась. Воплотил, есличо. smile.gif Там и про полярность можно не думать, кстати.
В аттаче -краткое описание электрической части стандарта NMRA DCC, для затравки.
Прикрепленный файл  S_91_2004_07.pdf ( 154.79 килобайт ) Кол-во скачиваний: 183
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Aug 26 2009, 10:24
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



А не проще поднять уровень сигнала управления до 3 вольт и стабилитроном сдвинуть уровень сигнала в ТТЛ диапазон.
Всего две детали стабилитрон и резистор.
Добавив один транзистор можно не поднимать уровень сигнала.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 10:27
Сообщение #20


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А не проще поднять уровень сигнала управления до 3 вольт и стабилитроном сдвинуть уровень сигнала в ТТЛ диапазон.


Уж тогда лучше поднять размах до напряжения питания. Довести до логического конца, так сказать.

Главное, в передаче через UART есть стоповый бит, т.е. на какое-то количество энергии всегда можно расчитывать - в худшем случае можно брать за расчет то, что сопротивление проводов, подводящих питание, будет в 10 раз больше, чем определяется физическим сечением/материалом.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 26 2009, 11:09
Сообщение #21


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(dimka76 @ Aug 26 2009, 12:56) *
Я и не настаиваю. Просто сравниваю ваш и свой вариант. Окончательное решение всеравно топикстартеру принимать )))

Поллингом надо, батенька. Поллингом. smile.gif
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Aug 26 2009, 11:43
Сообщение #22


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(dimka76 @ Aug 26 2009, 18:19) *
Бог с ними, с ошибками, железо бы выявило все ошибки, это эскиз.

Вряд ли. Простые ФНЧ из резистора и конденсатора проблему бы не решили. Фильтры усложнять себе дороже. Проще применить программный UART, а сотояние входной ножки анализировать поллингом. При таком подходе, чтобы там небыло на входе, процессор будет тратить времени ровно столько, сколько Вы захотите.
Если делать по предложенной Вами схеме, то от любого чиха будет вызываться прерывание. Если чихов за единицу времени очень много, то процессор поселиться и будет жить в прерывании rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

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

 


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


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