Управление МК ATmega32 через LPT-порт DB-25.
Добавлено: Вс дек 08, 2013 12:48:36
Решил собрать одно устройство, которое:
а) управляет восемью LED-индикаторами VD1..VD8 (в перспективе вместо них будут силовые транзисторные или симисторные ключи, гальванически развязанные через оптопары от МК, они будут коммутировать нагрузку);
б) получает сигналы от восьми кнопок SB1..SB8 (в перспективе это будут дискретные (релейные) датчики), если будут протяженные провода - сделаю защиту входов МК, пока пусть так;
в) управляется с LPT-порта J1 компьютера (но также может работать автономно), т.е. пересылает данные от компьютера в МК и от МК в компьютер;
г) разъем J2 нужен для подключения USB-программатора (перепрошивать МК), предполагаю, что это будет внутрисхемным программированием.
Программа на компьютере будет моя собственная, написана на Delphi.
Обратите внимание на:
а) все нули в схеме гальванически связанны между собой;
б) все управление в МК и от МК выполнено активной единицей (потом может быть изменю на активный ноль, пока пусть будет так).
Принцип работы устройства такой:
Пользователь на компьютере, в специальном приложении (моей разработки), путем своих действий, программно сгенерировал некое бинарное значение, которое пересылается через LPT-порт в МК, где программа МК (моя собственная, написанная на языке ассемблера) его получает и, исходя из его бинарного содержимого (путем побитного анализа), выполняет определенный алгоритм с индикаторами (силовыми ключами), но исходя из сигналов с кнопок (датчиков). А также устройство должно с частотой не более 1 Гц (один раз в секунду) передавать информацию от МК в компьютер через LPT-порт (обратная связь) о состоянии кнопок и индикаторов.

Посмотрите на мою схему, нормально я все сделал? Будет так работать?
1) Правильно ли я сделал внутрисхемное программирование?
2) Как программа на компьютере будет видеть, подключено ли устройство к компьютеру?
3) Как устройство будет видеть, что оно подключено к компьютеру?
4) Пока слабо представляю, как будет различаться прием и передача для МК и LPT-порта.
Проект в Протеусе (в симуляции пока не работает):
а) управляет восемью LED-индикаторами VD1..VD8 (в перспективе вместо них будут силовые транзисторные или симисторные ключи, гальванически развязанные через оптопары от МК, они будут коммутировать нагрузку);
б) получает сигналы от восьми кнопок SB1..SB8 (в перспективе это будут дискретные (релейные) датчики), если будут протяженные провода - сделаю защиту входов МК, пока пусть так;
в) управляется с LPT-порта J1 компьютера (но также может работать автономно), т.е. пересылает данные от компьютера в МК и от МК в компьютер;
г) разъем J2 нужен для подключения USB-программатора (перепрошивать МК), предполагаю, что это будет внутрисхемным программированием.
Программа на компьютере будет моя собственная, написана на Delphi.
Обратите внимание на:
а) все нули в схеме гальванически связанны между собой;
б) все управление в МК и от МК выполнено активной единицей (потом может быть изменю на активный ноль, пока пусть будет так).
Принцип работы устройства такой:
Пользователь на компьютере, в специальном приложении (моей разработки), путем своих действий, программно сгенерировал некое бинарное значение, которое пересылается через LPT-порт в МК, где программа МК (моя собственная, написанная на языке ассемблера) его получает и, исходя из его бинарного содержимого (путем побитного анализа), выполняет определенный алгоритм с индикаторами (силовыми ключами), но исходя из сигналов с кнопок (датчиков). А также устройство должно с частотой не более 1 Гц (один раз в секунду) передавать информацию от МК в компьютер через LPT-порт (обратная связь) о состоянии кнопок и индикаторов.
Посмотрите на мою схему, нормально я все сделал? Будет так работать?
1) Правильно ли я сделал внутрисхемное программирование?
2) Как программа на компьютере будет видеть, подключено ли устройство к компьютеру?
3) Как устройство будет видеть, что оно подключено к компьютеру?
4) Пока слабо представляю, как будет различаться прием и передача для МК и LPT-порта.
Проект в Протеусе (в симуляции пока не работает):