Среда программирования для AT89c2051
Re: Среда программирования для AT89c2051
[uquote="BOB51",url="/forum/viewtopic.php?p=4086706#p4086706"]...Если верить схеме там еще две времязависимые цепочки имеются...[/uquote]
Где они на схеме ?
[uquote="ypppu",url="/forum/viewtopic.php?p=4084175#p4084175"]...Отпаивал ULM2003, проверял - рабочая...[/uquote]
Как проверяли ?
[uquote="ypppu",url="/forum/viewtopic.php?p=4088459#p4088459"]... светодиод коротко вспыхивает и тут же гаснет...[/uquote]
А питание при этом не "проседает" ?
Где они на схеме ?
[uquote="ypppu",url="/forum/viewtopic.php?p=4084175#p4084175"]...Отпаивал ULM2003, проверял - рабочая...[/uquote]
Как проверяли ?
[uquote="ypppu",url="/forum/viewtopic.php?p=4088459#p4088459"]... светодиод коротко вспыхивает и тут же гаснет...[/uquote]
А питание при этом не "проседает" ?
- Реклама
Re: Среда программирования для AT89c2051
Касательно программатора. Лет, эдак, 10 назад, когда мне нужно было прошить AT89C2051, соорудил программатор на ATtiny2313, на которую вторым этажом (1 в 1, кроме ног 1 и 11) припаивалась панелька для прошиваемой 2051. Ну и пару транзисторов для коммутации высокого +12 вольт. Диалог через эмулятор терминала: Signature, Read, Erase, Write, Lock, Verify. Всё по минимуму.
Re: Среда программирования для AT89c2051
[uquote="Dismas",url="/forum/viewtopic.php?p=4088523#p4088523"][uquote="ypppu",url="/forum/viewtopic.php?p=4084175#p4084175"]...Отпаивал ULM2003, проверял - рабочая...[/uquote]Как проверяли ?[/uquote]На входы подавал плюс через резистор. При этом к соответствующим выходам подтягивался минус. Выходы были нагружены цепочками "светодиод последовательно с резистором". При подаче "+" на каждый IN появлялся "-" на соответствующем OUT и загорался светодиод.
[uquote="Dismas",url="/forum/viewtopic.php?p=4088523#p4088523"][uquote="ypppu",url="/forum/viewtopic.php?p=4088459#p4088459"]... светодиод коротко вспыхивает и тут же гаснет...[/uquote]
А питание при этом не "проседает" ?[/uquote]Решил вместо блока питания включить крону на 9 вольт свежую. Вдруг там как-то связь с фазой сказывается. Но нет, с батарейкой ведёт себя точно так же: реагирует только на дребезг. К батарейке прикладывал вольтметр: просадок что на холостом ходу, что при подаче сигналов на входы A, B, C нету.
[uquote="Dismas",url="/forum/viewtopic.php?p=4088523#p4088523"][uquote="ypppu",url="/forum/viewtopic.php?p=4088459#p4088459"]... светодиод коротко вспыхивает и тут же гаснет...[/uquote]
А питание при этом не "проседает" ?[/uquote]Решил вместо блока питания включить крону на 9 вольт свежую. Вдруг там как-то связь с фазой сказывается. Но нет, с батарейкой ведёт себя точно так же: реагирует только на дребезг. К батарейке прикладывал вольтметр: просадок что на холостом ходу, что при подаче сигналов на входы A, B, C нету.
Re: Среда программирования для AT89c2051
[uquote="ypppu",url="/forum/viewtopic.php?p=4088912#p4088912"]...с батарейкой ведёт себя точно так же...[/uquote]
Защитные диоды проверялись ? (С каждого выхода на вывод COM (9) ).
При проверке этот вывод куда был подключен ?
Защитные диоды проверялись ? (С каждого выхода на вывод COM (9) ).
При проверке этот вывод куда был подключен ?
Re: Среда программирования для AT89c2051
При проверке 9ый вывод подключал к плюсу батарейки, а 8ой к минусу. Сигнал на входы подавал от плюса батарейки через резистор. Светодиоды подключал между плюсом батарейки и выходом (последовательно с резистором).
Сейчас я проверил диоды между выходами и COM (9). При прямом подключения мультиметра на всех показывает 0,7 В. При обратном - на всех около 0,95 В. Правда, микросхема уже впаяна обратно на плату. Если что, могу завтра отпаять и перепроверить.
Сейчас я проверил диоды между выходами и COM (9). При прямом подключения мультиметра на всех показывает 0,7 В. При обратном - на всех около 0,95 В. Правда, микросхема уже впаяна обратно на плату. Если что, могу завтра отпаять и перепроверить.
- Реклама
Re: Среда программирования для AT89c2051
[uquote="ypppu",url="/forum/viewtopic.php?p=4088982#p4088982"]...могу завтра отпаять и перепроверить.[/uquote]
Отпаивать не надо. Задать код на входах A-1; B,C,INH-0 (подтянуты к общему через резистор),
далее мультиком измерить напряжение на соотв. выходе 4051 и на соотв. выходе 2003.
Отпаивать не надо. Задать код на входах A-1; B,C,INH-0 (подтянуты к общему через резистор),
далее мультиком измерить напряжение на соотв. выходе 4051 и на соотв. выходе 2003.
Re: Среда программирования для AT89c2051
Dismas, извиняюсь, был невнимателен, когда проверял.
Хотел сориентироваться по светодиодам видимого света, чтобы не возиться с видеокамерой, но позабыл, что у них рабочее напряжение больше, чем у ИК. Сейчас достал камеру и убедился, что у ИК светодиодов ничего не подмаргивает. Прошёлся по всем комбинациям - всё чётко включается-выключается.
Я представляю (весьма приблизительно) себе это так:
1) верхний мультиплексор в режиме "прослушки", он по каналам A, B, C выдаёт состояние фотодиодов (засвечены / не засвечены) тогда, когда приходит нужный сигнал на ногу "COM out / in";
2) нижний мультиплексор принимает с контроллера по каналам A, B, C сигнал, который ИК светодиод нужно засветить. Но когда приходит высокий уровень по каналу INH, изменять состояние выходов запрещено. В этом режиме (пока контроллер опрашивает верхний мультиплексор) светодиоды не переключаются, а фиксируются в состоянии "как было".
В итоге контроллеру требуется:
- передать на плату панели шифр светодиода (A, B, C), который требуется засветить;
- зафиксировать нижний мультиплексор, подав высокий уровнь на INH;
- считать шифр фотодиода с верхнего мультиплексора (уровни по каналам A, B, C), подав сигнал на ногу "COM out / in".
Правильно?
Теперь лучи точно появляются. А как проверить, что доходит до приёмной части? И правильно ли я вообще понимаю как это работает?Отдельно панель с ик излучателями и приёмниками.
Задать код A B C подать питание 12в, подать на вход INH "0".
Появится луч, на соотв. линии с ним проверить что доходит до приёмной части.
Я представляю (весьма приблизительно) себе это так:
1) верхний мультиплексор в режиме "прослушки", он по каналам A, B, C выдаёт состояние фотодиодов (засвечены / не засвечены) тогда, когда приходит нужный сигнал на ногу "COM out / in";
2) нижний мультиплексор принимает с контроллера по каналам A, B, C сигнал, который ИК светодиод нужно засветить. Но когда приходит высокий уровень по каналу INH, изменять состояние выходов запрещено. В этом режиме (пока контроллер опрашивает верхний мультиплексор) светодиоды не переключаются, а фиксируются в состоянии "как было".
В итоге контроллеру требуется:
- передать на плату панели шифр светодиода (A, B, C), который требуется засветить;
- зафиксировать нижний мультиплексор, подав высокий уровнь на INH;
- считать шифр фотодиода с верхнего мультиплексора (уровни по каналам A, B, C), подав сигнал на ногу "COM out / in".
Правильно?
Re: Среда программирования для AT89c2051
[uquote="ypppu",url="/forum/viewtopic.php?p=4089656#p4089656"]...- зафиксировать нижний мультиплексор, подав высокий уровнь на INH;
- считать шифр фотодиода с верхнего мультиплексора (уровни по каналам A, B, C), подав сигнал на ногу "COM out / in"...[/uquote]
Выставляя код адреса на A,B,C - выбираем, к какому светодиоду (и фотодиоду одновременно)
идёт обращение.
Линия COM out / in, в данном случае, для считывания состояния компаратора.
Линия INH для клавиатуры - входная, можно разрешить/запретить свечение выбранного светодиода,
разрешающий уровень - низкий. Или "помигать" им, не меняя кода на A,B,C.
Упрощённо 4051 выглядит так:
- считать шифр фотодиода с верхнего мультиплексора (уровни по каналам A, B, C), подав сигнал на ногу "COM out / in"...[/uquote]
Выставляя код адреса на A,B,C - выбираем, к какому светодиоду (и фотодиоду одновременно)
идёт обращение.
Линия COM out / in, в данном случае, для считывания состояния компаратора.
Линия INH для клавиатуры - входная, можно разрешить/запретить свечение выбранного светодиода,
разрешающий уровень - низкий. Или "помигать" им, не меняя кода на A,B,C.
Упрощённо 4051 выглядит так:
- Вложения
-
- 4051.jpg
- (24.93 КБ) 163 скачивания
Re: Среда программирования для AT89c2051
Только добавить следующее...
Мультиплексоры аналогового сигнала, а уровень сработки определяется компаратором и его обвязкой...

Мультиплексоры аналогового сигнала, а уровень сработки определяется компаратором и его обвязкой...
Re: Среда программирования для AT89c2051
Я так и не понял, как это всё работает, и как проверить, что доходит до приёмной части. 
Re: Среда программирования для AT89c2051
[uquote="ypppu",url="/forum/viewtopic.php?p=4091383#p4091383"]Я так и не понял, как это всё работает...[/uquote]
Да всё просто.
Вкл. светодиод, и проверить мультиком, что приходит на компаратор, и что уходит с него.
Выкл. светодиод, и снова измерить уровни сигнала там же.
При вкл. светодиоде, перекрыть пальцем луч, посмотреть как меняется сигнал до и после
компаратора.
Да всё просто.
Вкл. светодиод, и проверить мультиком, что приходит на компаратор, и что уходит с него.
Выкл. светодиод, и снова измерить уровни сигнала там же.
При вкл. светодиоде, перекрыть пальцем луч, посмотреть как меняется сигнал до и после
компаратора.
Re: Среда программирования для AT89c2051
Нашёл какую-то плавающую неисправность.
Вчера правый нижний (по моей картинке) светодиод с шифром ABC ярко светился и на ощупь заметно грелся. Хотя я на входы ничего не подавал: входы A, B, C были подтянуты к минусу. Это точно, проверял. Панель набора включал без домофонного блока, отдельно.
Сегодня решил проверить. Отпаял вывод IN4 ULM2003, отвечающий за входной сигнал - проблема прошла. Припаял вывод IN4 обратно - проблемы опять нет.
Вчера правый нижний (по моей картинке) светодиод с шифром ABC ярко светился и на ощупь заметно грелся. Хотя я на входы ничего не подавал: входы A, B, C были подтянуты к минусу. Это точно, проверял. Панель набора включал без домофонного блока, отдельно.
Сегодня решил проверить. Отпаял вывод IN4 ULM2003, отвечающий за входной сигнал - проблема прошла. Припаял вывод IN4 обратно - проблемы опять нет.
Re: Среда программирования для AT89c2051
INH закорочен на минус питания. Убрал перемычку - светодиод ABC перестал светиться.
Но почему?
Что-то я совсем не понимаю. Наверное надо тупо купить новые детальки - заменить все микросхемы.
Но почему?
Re: Среда программирования для AT89c2051
[uquote="ypppu",url="/forum/viewtopic.php?p=4093085#p4093085"]INH закорочен на минус питания. Убрал перемычку - светодиод ABC перестал светиться.
Но почему?
Что-то я совсем не понимаю. Наверное надо тупо купить новые детальки - заменить все микросхемы.[/uquote]
А разве должно быть иначе ?
Сигнал INH разрешающий, активный уровень - низкий. Пора уже и почитать datasheet на микросхему.
Но почему?
А разве должно быть иначе ?
Сигнал INH разрешающий, активный уровень - низкий. Пора уже и почитать datasheet на микросхему.
Re: Среда программирования для AT89c2051
Более точно восстановил опыт. Если A,B,С и INH подтянуты к минусу, то ни один ИК-светодиод не должен светиться (кроме нулевого, но эта нога не используется).
Когда на входы мультиплексора A,B,С подаю плюс, а на INH минус, то светится светодиод ABC. После этого, если я оторву от INH минус, то светодиод ABC продолжит светиться. Но если я коснусь вывода INH пальцем, светодиод ABC перестанет светиться. И это при запитывании платы от батарейки. Наверное внутри микросхемы мультиплексора какая-то ёмкость разряжается при касании, и я зря беспокоюсь.
Когда на входы мультиплексора A,B,С подаю плюс, а на INH минус, то светится светодиод ABC. После этого, если я оторву от INH минус, то светодиод ABC продолжит светиться. Но если я коснусь вывода INH пальцем, светодиод ABC перестанет светиться. И это при запитывании платы от батарейки. Наверное внутри микросхемы мультиплексора какая-то ёмкость разряжается при касании, и я зря беспокоюсь.
Re: Среда программирования для AT89c2051
[uquote="ypppu",url="/forum/viewtopic.php?p=4093548#p4093548"]... После этого, если я оторву от INH минус...[/uquote]
Отключить от одной шины, не значит подключить к другой.
Зафиксируйте уровень, не только оторвав от минуса, но и подключив к плюсу через резистор, ну скажем 10к.
Отключить от одной шины, не значит подключить к другой.
Зафиксируйте уровень, не только оторвав от минуса, но и подключив к плюсу через резистор, ну скажем 10к.
Re: Среда программирования для AT89c2051
Dismas, я перебрал все возможные комбинации. Прикрепляю результат опыта. На и входах и выходе компаратора в любом случае одни и те же напряжения. Неисрпавен компаратор либо транзистор, логично?
Ещё вопрос для общего понимания. Микроконтроллер считывает с ноги "Out" компаратора напряжение (уровень), чтобы понять, был ли перекрыт луч?
Ещё вопрос для общего понимания. Микроконтроллер считывает с ноги "Out" компаратора напряжение (уровень), чтобы понять, был ли перекрыт луч?
- Вложения
-
- Тестирование компаратора - таблица опыта.pdf
- (279.04 КБ) 127 скачиваний
Re: Среда программирования для AT89c2051
[uquote="ypppu",url="/forum/viewtopic.php?p=4096158#p4096158"]...Микроконтроллер считывает с ноги "Out" компаратора напряжение (уровень), чтобы понять, был ли перекрыт луч?[/uquote]
Да, именно так.
Отрезать выход мультиплексора IO от остальной схемы и замерять на нём.
Если напряжение меняется - смотреть компаратор, транзистор...
Если не меняется - смотреть мультиплексор.
Не думал, что такие пустяки вызывают такие сложности.
Да, именно так.
Отрезать выход мультиплексора IO от остальной схемы и замерять на нём.
Если напряжение меняется - смотреть компаратор, транзистор...
Если не меняется - смотреть мультиплексор.
Не думал, что такие пустяки вызывают такие сложности.
Re: Среда программирования для AT89c2051
Отпаял ножку COM OUT/IN и замерил на ней напряжения. Прикрепляю результат опыта. Мультиплексор явно "видит разницу" между засвеченным и незасвеченным фотодиодом.
На днях заказывал разные детали, в том числе компаратор и транзистор. Попробую их заменить.
На днях заказывал разные детали, в том числе компаратор и транзистор. Попробую их заменить.
- Вложения
-
- Тестирование мультиплексора - таблица опыта.pdf
- (271.16 КБ) 136 скачиваний
Re: Среда программирования для AT89c2051
Заменил компаратор и транзистор, но проблема не ушла: и не заработало, и с 3 ноги верхнего мультиплексора пропали правильные напряжения. Отпаял 3 ногу чтобы висела в воздухе - правильные напряжения вернулись. Пока сам не понял что получилось, позже разберусь. Кажется проблема осталась, и она не в транзисторе и не в компараторе.


