|
Выход компаратора |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Aug 26 2009, 07:06
|

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 на прием  Уж лучше софтовый выход компаратора. Меньше вычислительной нагрузки на контроллер.
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
Aug 26 2009, 08:58
|

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 сохранять не надо
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
Aug 26 2009, 09:19
|

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

|
Цитата(Rst7 @ Aug 26 2009, 13:07)  Ужос. Мало того, что в Вашем коде налицо принципиальные ошибки и дикий оверхед, так такой подход еще и принципиально приведет к дупе, если состояние компаратора (например, от помехи) будет меняться чаще, чем проц обработает прерывание  Бог с ними, с ошибками, железо бы выявило все ошибки, это эскиз. Помеху бы и для программного UART надо было бы фильтровать. Поэтому из сранительного анализа можно это исключить. А раз присутствует дикий оверхед, значит код может быть еще компактнее. А какой размер получится у программного UART ? Уж не пять строчек это точно. Исправил ошибку )))
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
Aug 26 2009, 09:29
|

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

|
Цитата Помеху бы и для программного UART надо было бы фильтровать. Поэтому из сранительного анализа можно это исключить. Неверно. Программный UART в простой реализации в независимости от сигнала на компараторе приведет к 1(от компаратора)+8(биты данных от таймера)+1(проверка стоп-бита от таймера) прерываний. А Ваш способ может привести к полной загрузке процессора. Цитата А какой размер получится у программного UART ? Уж не пять строчек это точно. При правильном подходе - немного.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 26 2009, 09:40
|

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

|
Цитата(Rst7 @ Aug 26 2009, 13:29)  Неверно. Программный UART в простой реализации в независимости от сигнала на компараторе приведет к 1(от компаратора)+8(биты данных от таймера)+1(проверка стоп-бита от таймера) прерываний. А Ваш способ может привести к полной загрузке процессора. В прерывании от компаратора надо будет запретить прерывание от компаратора и разрешить прерывание от таймера + сбросить таймер (либо в начале кадра либо в конце но надо) + теже копирование битов + сдвиг + подсчет кол-ва принятых битов. Кстати выход компаратора соединяется со входом захвата таймера, а прерывании по захвату приведенный мною выше код. Вот и аппаратная фильтрация входа. Еще с этого виртуального выхода компаратора заводим через резистор на физический вход компаратора положительную обратную связь, вот и триггер шмитта. Еще одна фильтрация.
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|