Сопряжение Атмеги с ЛПТ

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
mkivanov
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Вт май 04, 2010 13:40:28

Re: Сопряжение Атмеги с ЛПТ

Сообщение mkivanov »

YS писал(а):
Режим порта? SPP? ECP/EPP? Что и куда подаете (пины?), откуда читаете (адрес)?
ECP/EPP
подавал на регистр Status на пины 10-13. Читаю своей программой при помощи библиотеки inpout32 по адресу 889. Если корочу ноги к примеру на "0" от порта, то прога все видет, а от внешнего устройства без ничего не захотела...

YS писал(а): Так и хочется сказать RTFM, из той же таблицы истинности все ясно, да и названия ног говорящие. Изображение Вот это для кого писано?
Я имею ввиду что мне питание подавать от источника или от ЛПТ и все одно или часть того, а часть того???
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Сопряжение Атмеги с ЛПТ

Сообщение YS »

Питание - ессно от того источника, от которого питается МК и вся остальная схема. Важно, чтобы были объединены ЗЕМЛИ, иначе не от чего отсчитывать сигнал, ессно, порт ничего не видит. А вот шины +5В объединять НЕЛЬЗЯ. Да и незачем.

Т.е., должно быть так:

<---------Линия данных 1--------------->
- - - - - - - - - - - - - - -
<---------Линия данных N--------------->
_|_---------Земля------------------------_|_
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Re: Сопряжение Атмеги с ЛПТ

Сообщение DrWatson »

И не забывать о потенциальной возможности паразитного питания (которую надо исключить).
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Сопряжение Атмеги с ЛПТ

Сообщение YS »

Так человек же вроде собрался 74НС245 использовать. Высокий уровень на ~OE - и никакого паразитного питания...
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Эиком - электронные компоненты и радиодетали
mkivanov
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Вт май 04, 2010 13:40:28

Re: Сопряжение Атмеги с ЛПТ

Сообщение mkivanov »

YS писал(а):Питание - ессно от того источника, от которого питается МК и вся остальная схема. Важно, чтобы были объединены ЗЕМЛИ, иначе не от чего отсчитывать сигнал, ессно, порт ничего не видит. А вот шины +5В объединять НЕЛЬЗЯ. Да и незачем.
Т.е. можно просто объеденить землю и порту ниче не будет? Взять 74НС245 и никаких даже оптронов не брать?
DrWatson писал(а):И не забывать о потенциальной возможности паразитного питания (которую надо исключить).
А нельзя ли с этого места поподробнее???
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18649
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Сопряжение Атмеги с ЛПТ

Сообщение ARV »

mkivanov писал(а):
YS писал(а):Питание - ессно от того источника, от которого питается МК и вся остальная схема. Важно, чтобы были объединены ЗЕМЛИ, иначе не от чего отсчитывать сигнал, ессно, порт ничего не видит. А вот шины +5В объединять НЕЛЬЗЯ. Да и незачем.
Т.е. можно просто объеденить землю и порту ниче не будет? Взять 74НС245 и никаких даже оптронов не брать?
DrWatson писал(а):И не забывать о потенциальной возможности паразитного питания (которую надо исключить).
А нельзя ли с этого места поподробнее???
1. про то, что без развязки "ничего не будет" вам было сказано чуть ли не сразу - снова напоминаю на миллионы принтеров, в которых не было никакой развязки.
2. на LPT не выведено питание +5В, поэтому объединять там не чего будет. а для вашей мега-системы можно и питания объединять.
3. боязнь паразитного питания - это из области психиатрии, т.к. фактически ничего страшного в этом нет, даже если оно будет присутствовать. разве что некоторое удивление, что без питания все работает...

чего надо опасаться при работе с LPT:
- не закорачивать выходные сигналы LPT на общий и не допускать вытекающего или втекающего тока более 5 мА на каждую линию
- не соединять выходные сигналы между собой
- не подавать на входы более 5В
- избегать попадания статического электричества (ну, этого надо опасаться вообще всегда)
- избегать подключения при поданном питании на оба устройства (на комп и на девайс). желательно соединять корпуса между собой и заземлять их, но только одновременно! нельзя комп заземлять, а девайс нет (и наоборот).

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

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Сопряжение Атмеги с ЛПТ

Сообщение YS »

разве что некоторое удивление, что без питания все работает...
ЫЫЫ! Классно сказано, "некоторое удивление". :))) Помню, когда сам еще не знал об этой фишке, никак не мог понять, как бегущий огонек может продолжать работать, если питание отключено (я тогда начинал изучение МК, прошивал пятью проводками). :)))
А нельзя ли с этого места поподробнее???
Можно. Итак, паразитное питание.

На самом деле, входы микросхем устроены так, как показано во вложении. Это делается для того, чтобы защитить микросхему от гибели в случае, если на вход подадут уровень выше напряжения питания (отрабатывает верхний диод) или ниже нуля (нижний диод). Если питание отключено, а на вход подан высокий уровень, микросхема бужет запитываться через верхний диод. ЧУДО!!11! Питания на Vcc нет, а схема работает! Это и есть паразитное питание. Оно плохо прежде всего тем, что источник сигнала может не потянуть питание устройства (ибо выходы данных в большинстве случаев не рассчитаны на значительную нагрузку), и сгореть. Да и вообще в таком режиме работа схемы приобретает элемент разнообразия. Так что лучше подобное исключать.
Вложения
ucpin.GIF
(2.36 КБ) 533 скачивания
Разница между теорией и практикой на практике гораздо больше, чем в теории.
rapaks
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб июл 10, 2010 19:50:14

Re: Сопряжение Атмеги с ЛПТ

Сообщение rapaks »

Столкнулся с таокй же проблемой.
Так что, есть у кого схема сопряжения AVR-ов (ATmega8,16,..) с LPT ? Скиньте сюда пожалуйста полную схему подключения.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Сопряжение Атмеги с ЛПТ

Сообщение PB_EXPERT »

А зачем вообще понадобилось соединять МК с компом через LPT?
ИМХО лучше использовать COM или USB порт.
rapaks
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб июл 10, 2010 19:50:14

Re: Сопряжение Атмеги с ЛПТ

Сообщение rapaks »

В подробности вдаваться не буду, суть вот в чем: мне нужно, чтобы МК общалась с ПК через порты USB,COM и LPT. С первыми 2мя понятно - инфы полно в инете а вот по LPT ничего врзаумительно не могу найти. Все что удалось найти так это прямое подключение устройств типа: свтельников всяикх и моторчиков к LPT, а про МК ни слова :(

Ну так что, может кто помочь ? Есть схема подключения МК (avr-ы) к LPT ?
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Сопряжение Атмеги с ЛПТ

Сообщение YS »

Так а чего там подключать-то? Порт AVR в порт LPT, можно через буфер. Или Вам нарисовать восемь проводочков схемы? :)))
Разница между теорией и практикой на практике гораздо больше, чем в теории.
rapaks
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб июл 10, 2010 19:50:14

Re: Сопряжение Атмеги с ЛПТ

Сообщение rapaks »

Эмм.., я вообще то имел ввиду что мне хотелось бы чтобы МК общалась через LPT ипользуя только ноги RxD и TxD как делает это COM и USB порты.

Ну если не сложно, тьо выложите схемку и с 8 контактами или сколько их там будет в том способе который вы предлагаете и пожалуста опишите прицып работы тогда, а я точе тогда не пойму как там чего куда писать, в LPT стробы всякие статусы есть как с ними работать тогда ?!
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Сопряжение Атмеги с ЛПТ

Сообщение YS »

я вообще то имел ввиду что мне хотелось бы чтобы МК общалась через LPT ипользуя только ноги RxD и TxD
В принципе, если Вы эстет, томожно сделать и так. Но тогда придется софтверно реализовывать RS-232 протокол. Это есть извращение.

Варнинг! Все нижесказанное относится ТОЛЬКО к настоящему, железному LPT, впаянному в материнскую плату. С переходниками USB-LPT совсем другая история. Если кратко - ИМХО ныне они бесполезны (в смысле для использования не по назначению).

Итак, LPT.

Сразу скажу, что лично для меня использовать WinAPI для работы с LPT слишком уж геморно. ИМХО лучше поставить что-то типа GiveIO и лупить вставками на ассемблере.

На самом деле все гораздо проще чем кажется. Что такое LPT? Это восемь программируемых линий. Все. Они контролируются тремя регистрами. Для LPT1 это 0x378, 0x379, 0x37A. Чего записали по базовому адресу, то и появилось на выходе. Прямо как в МК с каким-нибудь PORTB. :) Стробы всякие - это уже в EPP. А тут все руками. Какой протокол придумаете, так и будет работать - хоть 1-Wire. Как с этим обращаться в варианте для чайников написано тут (промотать страничку до статей про LPT).

LPT порт имеет три режима: SPP, EPP, ECP. В первом линии данных работают только на выход, ввод информации возможен со статусных битов (nibble mode). Во втором добавляется возможность читать с линий данных. В третьем добавляеются плюшки вроде DMA. Как с этим работать написано тут. Сам стандарт тут. Это ссылки навскидку. Помучайте гугл еще, он поможет. :)

Да, и расскажите, для чего Вам это надо. Если что-то не особо сложное и быстрое, то можно обойтись nibble mode. Если что-то более требовательное, то, скорее всего, придется курить ECP/EPP, тут я и сам не особый спец - как-то не доводилось в LPT углубляться, да еще и читать снего с большой скоростью. Последний раз я подключал к нему светодиоды три года назад... :)

Повторюсь, самый простой режим двустороннего обмена через LPT - nibble mode. Будет интересно - расскажу подробнее. А сейчас пойду спать... :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
rapaks
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб июл 10, 2010 19:50:14

Re: Сопряжение Атмеги с ЛПТ

Сообщение rapaks »

Мне нужно чтобы МК общалось с ЛПТ только по 2м ножкам (в МК это RxD | TxD) а в ЛПТ какие ? Может нужно еще чегонить присобачить к ЛПТ чтобы преобразовать к примеру его D0-D7 в 1 сигнал и еще какую-нибуль ножку его или ножки объединить и получить тоже 1 сигнал.

Суть такова, что все ноги МК заняты кроме RxD | TxD по ним МК может общаться с USB и COM, а как с заставить его это делать с LPT ?

Пока нашел только это:
1)Много ножек для сопряжения
2)Получше будет, т.к. юзают всего 4 ноги и видомо 1 можно не использовать совсем, тогда будет 3, но мне нужно чтобы они цеплялись RxD TxD а там МОСИ и МИСО СЦК - как быть ?
3)Тут вообще не понятно
4)Тут тоже 3 ноги. И не понятно почему их подключают не как в
предыдущих вариантах в МОСИ и т.п. а к совсем другим ножкам МК.Так как правильно нужно подключать?

Во всех вариантах схем что мне удалось найти МК читает данные с ЛПТ, а как писать в ЛПТ ? Взгянуть на схему с 3мя проводками, хотя и терубется повторюсь в мильённый раз что нужно только 2 проводка на ножки RxD | TxD.

Про режимы ЛПТ нашел это, но тут нет схемы подключения МК к ЛПТ.
И вообще тут, как я понял в режиме минмиального использования ножек ЛПТ все равно получается 3 или 4, а у меня на МК под общение отведены всего 2 ноги !Если у вас есть что дополнить к этой статье, есть схемы и/или код программы, в общем скидывайте любую инфу - буду изучать.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Сопряжение Атмеги с ЛПТ

Сообщение PB_EXPERT »

Программно эмулировать USART на LPT порту будет мешать многозадачность винды!
Правда, это ещё зависит от скорости обмена. При скорости 75 бод, можно попробовать сделать программную эмуляцию.
rapaks
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб июл 10, 2010 19:50:14

Re: Сопряжение Атмеги с ЛПТ

Сообщение rapaks »

Нашел схему LPT - > I2C

Вроде всего 2 выхода с ЛПТ - это хорошо, но есть вопросы:

1) Эти выходы с каким ножками МК соединять ? RxD & TxD подойдут ? или какието другие нужно задействовать ?
2) Как этоу схему упростить до уровня новичка и сделать на современной элементной базе ?
Т.е. без всяких там оптических транзистров ОУ и чего там ещ есть, я в них не разбираюсь увы.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Сопряжение Атмеги с ЛПТ

Сообщение PB_EXPERT »

Схема это не проблема.
Намного сложнее реализовать программный USART на LPT порту, из-за многозадачности винды.
Ну соберёшь схему, ну подключить к компу, но ничего не произойдёт - комп устройство не увидит без спец проги!
rapaks
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб июл 10, 2010 19:50:14

Re: Сопряжение Атмеги с ЛПТ

Сообщение rapaks »

PB_EXPERT писал(а):Схема это не проблема.
Намного сложнее реализовать программный USART на LPT порту, из-за многозадачности винды.
Ну соберёшь схему, ну подключить к компу, но ничего не произойдёт - комп устройство не увидит без спец проги!

Ну так скиньте схемы в конце то концов кто-нибудь.
Будут схемы - будем думать дальше, и до программы дойдем потом.


А может если сипользовать LPT - > I2C, то и писать программно ничго осбо не придется (см мой ответ выше) ?!
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Сопряжение Атмеги с ЛПТ

Сообщение YS »

Так, ситуация прояснилась. Как видно, ECP/EPP нам ни к чему. Будем использовать Nibble Mode.

Все нижесказанное говорится из предположения, что мы забиваем на WinAPI, ставим драйвер GiveIO (см. pcports.ru) и лупим по регистрам на асме. Базовый адрес порта принимаю 0x378 (LPT1).

Значит, насчет LPT: как такового протокола LPT НЕТ. Т.е., это просто регистр типа 74HC595 (сознательно упрощаю), выходы которого и являются ножками разъема LPT, и в который мы можем записать байт, записав его (OUT) по адресу 0x378. Какие ножки чем будут - решать нам. Кроме этого, в LPT есть несколько статусных линий, некоторые из которых - инверсные, это надо учитывать. Поскольку по прямому назначению их сейчас никто не использует, их можно использовать для ввода данных - это и есть nibble mode.

Смотрим картинку, сдернутую с pcports:

Изображение

Нас будут интересовать линии DATA и STATUS. К линиям STATUS мы имеем доступ через регистр 0x379.

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

Я предлагаю отказаться от стандартного UART'а, и передавать данные побитово с синхронизацией, для чего добавить третью линию тактирования. Такая возможность есть?

СХЕМА - ПРЯМОЕ СОЕДИНЕНИЕ!!!
Разница между теорией и практикой на практике гораздо больше, чем в теории.
rapaks
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб июл 10, 2010 19:50:14

Re: Сопряжение Атмеги с ЛПТ

Сообщение rapaks »

YS, Вы смотрели мое июл 11, 2010 12:31:50 там есть разные схемы в том числе и с 3 ножками. Почитайте еще раз июл 11, 2010 12:31:50 я там уже задал вопросы, может на них ответите. (Хмм на этом форуме чего то не вижу нумерации сообщений, поэтому указал дату и время сообщения).

У меня на МК стабильно свободны ножки RxD и TxD ну и если ничего придумать с ними не удасться, т.е. не найдутся схемы подключения только по 2м провдкам к ЛПТ то прийдется выделить еще 1 ножку, но какую я хз, если любая подойдет то будет гуд, а если каке то определенные - то придется переделать всю мою схему.


Как я и писал выше понятно что для nibble mode нужны 3 ноги, так пишут во многих статьях а 2мя обойтись нельзя ?
И что вы думаете о LPT -> I2C ?


Набросайте хоть примерную схемку подключения, а то я вас малось недопонимаю как и чего мне соединять прийдется.
А про прогу вот что скажу: с ассемблером не дружу, но дружу с С/С++. Но с прогами пока повременим, нужно для начала набросать схемку и спаять примерчик на его основе для тестов.
Ответить

Вернуться в «Интеграция с ПК»