UrfinJ » 24 мар 2011, 22:20
SVEN
Как я понял, до сих не получилось с LPT3.
То, что мы говорили выше, это относится непосредственно к программированию, то есть написанию своих программ и внедрению сторонних драйверов для прямого доступа к портам LPT. Это совершенно другое, там смещение адреса, доступ к байтам и тд.
У вас проблема другая - надо подключить программатор к порту и залить готовую прошивку. LPT1 на материнке сгорел, куплена плата, которая определяется как LPT3. Правильно? И что делать?
1) У LPT1 адрес - 378, у LPT3 - 3BC, можно просто поменять этот физический адрес в проге для программатора.
2) Обычно в прогах используются только 2 адреса - LPT1 и LPT2, остальные LPT отключены за ненадобностью.
В БИОС отключить LPT1, чтобы не мешал, потому что горелый, посмотреть после перезагрузки, появился ли порт, если он один, значит порт горелый на материнке отключен, определился порт LPT1 на вставленной карте, это хорошо. Проверяем адрес - он должен быть 378.
Следует заметить - в ассемблере порт пишется как 378h, в языке С и С++ как х378. В проге наверное это как просто 378 или 0378 ? Не суть важно, просто подсказка, есть чумные программеры, которые требуют написать порт в соответствии со стандартом.
Наверное прога под Вин? Если под ДОС, то..
В любом случае, надо знать, прога программатора гарантированно работает под Вин9х,МЕ.
Под Вин2000 и выше может не работать. Что делать?
Недавно мне надо было залить прошивку в редком и специфическом аппарате, ну никак в ХР SP3 не получается, даже в режиме эмуляции ДОС, возникает ошибка. Вот тут и нужен прямой доступ к портам.
Много испробовал, но лучшим оказался SuperDos, идеальный вариант, просто перезагружает комп в Dos7.0 или в ВинХр, очень просто, не надо вникать что прописывать в конфиге, он сам все делает. Просто СУПЕР, все получилось сразу. Просто запускаешь СуперДос, потом прогу программатора, заливаешь прошивку, закрываешь прогу, нажимаешь - выйти из СуперДос, комп перезагружается сам и вот снова ВинХр. Просто и быстро. А уж хотел ДОС 6.22 заливать...
А чтобы не спалить порт, надо всегда ставить развязку, для LPT и COM - это в каждую линию данных последовательно ставить резисторы 330-470 Ом, а лучше 1 кОм, чтобы ток короткого замыкания не превышал 10-20 мА, на которые они рассчитаны. Так что если даже неправильная была распайка, ничего не сгорит. Для COM порта это 2 резистора, для ЛПТ порта 8 резисторов. Скорость там низкая по умолчанию, так что нарастание-спад фронта импульса играет ничтожную роль.
Все простые программаторы нарисованы без этих резисторов, чтобы не отпугнуть начинающих большим количеством деталей.
Недавно отругал ноутбучников по этой теме, те стали переделывать свой программатор, ворчали.
Если еще есть вопросы - отвечу)))