Переходник LPT-I2C
-
vlad555
- Первый раз сказал Мяу!
- Сообщения: 23
- Зарегистрирован: Ср дек 17, 2008 20:04:36
- Контактная информация:
Переходник LPT-I2C
Помогите люди добрые,не могу найти 100% рабочую схему преходника LPT-I2C.А также пример программной реализации I2C через LPT порт???
Чё то суть твоего вопроса малость не понятна...
рабочая 100% рабочая схема это 2 провода и 1 резистор...
програмная реализация - зависит от оси под которой будет работать твой софт.
Для линукса, знаю есть в ядре готовый драйвер i2c, но мне он был не нужен я его не пользовал,
под виндой ты доступа к железу не получишь, всё равно нужен generic-driver,
а сам протокол i2c простой как три копейки, читаешь datasheet на любую микросхему и делаешь как написано, и всё работает...
Проверено!
рабочая 100% рабочая схема это 2 провода и 1 резистор...
програмная реализация - зависит от оси под которой будет работать твой софт.
Для линукса, знаю есть в ядре готовый драйвер i2c, но мне он был не нужен я его не пользовал,
под виндой ты доступа к железу не получишь, всё равно нужен generic-driver,
а сам протокол i2c простой как три копейки, читаешь datasheet на любую микросхему и делаешь как написано, и всё работает...
Проверено!
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Вот это не пойдет?
http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
Оптимизм х (Опыт + Знания) = const
-
vlad555
- Первый раз сказал Мяу!
- Сообщения: 23
- Зарегистрирован: Ср дек 17, 2008 20:04:36
- Контактная информация:
Aheir писал(а):Вот это не пойдет?
http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
Спасибо Вам за ссылочку,схема действительно простая,но софт уж слишком навороченный,мне бы попроще,даже не сказали чем компилировали.Прошу помощи дальше,если не дождусь то буду разбираться с этим проектом(сложный однако).
-
vlad555
- Первый раз сказал Мяу!
- Сообщения: 23
- Зарегистрирован: Ср дек 17, 2008 20:04:36
- Контактная информация:
Вообще не принципиально через какой порт делать преходник.Моей ошибкой было не описать для чего это все нужно.Нужно через каой то порт реализовать I2C интерфейс,тоесть нужна программка с исходником.С компа по I2C интерфейсу передаем файл на МК,а он в свою очередь записывает этот файл на любую карту памяти.проблема в том,что не могу найти программной реализации I2C через порт компа,а также как записть этот файл на карту памяти.Читал здесь же на форуме где то ,как люди разбирались и c MMC и SD,и так толком никто не разобрался,но если кто то разобрался,то помогите студенту чем сможете.Пишу в CVAVR.
-
pirotehnick
- Потрогал лапой паяльник
- Сообщения: 327
- Зарегистрирован: Пт фев 08, 2008 13:46:03
- Откуда: Воронеж
- Контактная информация:
Ну если тебе нужен полный контроль кода и его простота, то я бы в качестве контроллера I2C заюзал бы отдельный МК, изначально передавая данные через USB, используя преобразователь интерфейсов USB<->RS-232 или USB<->SPI. А затем контроллер передаёт все эти данные через I2C. Что касается SD или MMC, то я с ними работал, вроде бы всё получилось, кроме режима многоблочной записи, не знаю почему не работает, первые два сектора пишет и всё... Могу прислать свои исходники на асьме, если нужно.
Про то как работать с MMC или SD см здесь:
http://www.piclist.ru/mmc.html
там довольно всё хорошо описано...
Про то как работать с MMC или SD см здесь:
http://www.piclist.ru/mmc.html
там довольно всё хорошо описано...
-
pirotehnick
- Потрогал лапой паяльник
- Сообщения: 327
- Зарегистрирован: Пт фев 08, 2008 13:46:03
- Откуда: Воронеж
- Контактная информация:
Так тебе проще будет использовать COM порт, поскольку есть явные приимущества в управлении прерываниями. Честно говоря не знаю как реализуются прервания для LPT, а если просто тупо опрашивать в цикле состояние порта, прога просто будет зажрать всё процессорное время.
В случае использования COM порта, линий для I2C тебе хватит, используй сигнальные линии, типа CTS и DTR на приём и передачу.
А в программе соответственно реализуешь обработчики событий по изменению состояния этих линий.
См. описание I2C здесь:
http://www.gaw.ru/html.cgi/txt/interface/iic/index.htm
В случае использования COM порта, линий для I2C тебе хватит, используй сигнальные линии, типа CTS и DTR на приём и передачу.
А в программе соответственно реализуешь обработчики событий по изменению состояния этих линий.
См. описание I2C здесь:
http://www.gaw.ru/html.cgi/txt/interface/iic/index.htm
- Artemy
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Сб окт 04, 2008 00:23:25
- Откуда: Санкт-Петербург
Можно тут глянуть (англ.язык). Схема для сом-порта. Вроде всё разжёвано - схемы, платы, исходники, литература...
...у меня уже несколько лет болтаются эти ds1621 за окном и в комнате. Недавно вот приладил для эксперимента ds1307 (часики). Переписывал управляющую программу и для LPT - в принципе меняется только часть с физической реализацей: scl_hi/lo, sda_hi/lo, sda_in/out, а вся верхушка остаётся... Для прикошачивания к LPT использовал DLPortIO. Согласен с pirotehnick'ом - даже с ежесекундным опросом поднапрягает комп, надо бы как-то с прерываниями разобраться. Питание использовал комповое. Никах защит не ставил, даже подтягивающих резисторов...
Паял на-"горячую", пока всё цело. Но это не совет!!! Верю всем опасениям, что когда-то порт сгорит... что ж, будет повод модернизировать комп... 
...у меня уже несколько лет болтаются эти ds1621 за окном и в комнате. Недавно вот приладил для эксперимента ds1307 (часики). Переписывал управляющую программу и для LPT - в принципе меняется только часть с физической реализацей: scl_hi/lo, sda_hi/lo, sda_in/out, а вся верхушка остаётся... Для прикошачивания к LPT использовал DLPortIO. Согласен с pirotehnick'ом - даже с ежесекундным опросом поднапрягает комп, надо бы как-то с прерываниями разобраться. Питание использовал комповое. Никах защит не ставил, даже подтягивающих резисторов...
- Artemy
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Сб окт 04, 2008 00:23:25
- Откуда: Санкт-Петербург
Вот тут предлагают драйвер для LPT-порта с обработкой прерывания. Только стрёмно что-то всё это. Вкратце тут ознакомился с прерываниями LPT, есть одно (а может их больше) по приходу импульса на определённую ножку. Но как товарищ М.Гук входит в прерывание от I2C это мне пока трудно познать... ибо ни LPT, ни COM - это не I2C-совместимые интерфейсы - несколько другое строение. То есть гонять байты туда-сюда можем, но через ж[мяу] - дёргая ножки, опрашивая программно. Полной поддержки I2C под виндой нет, аппаратной реализации прерываний и прочих там aсknowledge нема в ПК. Плюс к этому для COM порта ещё нужно привести уровни к 5В. А на чём писать будешь программу, которая передаёт файл через I2C? Для COM-порта схема у тебя уже есть, для LPT надо выбрать ножки - например 0 и 1 регистра 0х378, ну и разобраться в строении. Для старта написания программы со стороны компа вот минимум функций, которые будет необходимо реализовать:
"Прикручиваем" интерфейс к порту:
- линия SCL в "1";
- линия SCL в "0";
- линия SDA в "1";
- линия SDA в "0";
- линия SDA на вход;
- линия SDA на выход;
(SCL не трогаем, там всё время на выход)
- читать значение линии SDA;
Основные функции для реализации интерфейса:
- условие "СТАРТ";
- условие "СТОП";
- отправить "0";
- отправить "1";
- принять бит;
Далее на их основе пишем:
- принять байт;
- отправить байт;
Может что-то и забыл добавить, но в основах лежит это... да! и даташит читать не отменяется...
"Прикручиваем" интерфейс к порту:
- линия SCL в "1";
- линия SCL в "0";
- линия SDA в "1";
- линия SDA в "0";
- линия SDA на вход;
- линия SDA на выход;
(SCL не трогаем, там всё время на выход)
- читать значение линии SDA;
Основные функции для реализации интерфейса:
- условие "СТАРТ";
- условие "СТОП";
- отправить "0";
- отправить "1";
- принять бит;
Далее на их основе пишем:
- принять байт;
- отправить байт;
Может что-то и забыл добавить, но в основах лежит это... да! и даташит читать не отменяется...
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
Вот: Writing Parallel-Port 2-Wire Software in C
И вот: Adding Windows NT/2000/XP Support to the AN3315 Parallel-Port 2-Wire Software.
Там и софт готовый для Windows NT/2000/XP, и исходники(правда только для Win95/Win98)......
И вот: Adding Windows NT/2000/XP Support to the AN3315 Parallel-Port 2-Wire Software.
Там и софт готовый для Windows NT/2000/XP, и исходники(правда только для Win95/Win98)......
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
-
sainquake
- Родился
- Сообщения: 1
- Зарегистрирован: Пн мар 25, 2013 17:43:48
- Откуда: Казань
- Контактная информация:
Re: Переходник LPT-I2C
не знаю даже, может не туда спрашиваю. Можно прям напрямую к меге комп через LTP? или лучше подумать? 
Устоявшейся считается система на которой запустили Doom! мой блог: sainquake.com
Re: Переходник LPT-I2C
К меге можно подключить USB, COM, но LPT - параллельный порт. Не жалко столько лапок МК?
Re: Переходник LPT-I2C
Здравствуйте, имеются некоторые микросхемы вроде датчиков температуры, акселерометров с шиной I2C, и плата USB to I2C UMFT201XB-01. Возможно ли использовать эту плату для считывания данных с датчиков на ПК? Плата базируется на микросхеме FT201, а она Slave и датчики тоже. Может быть возможно как-то поднять Master на ПК? Мануалы по программированию от FT читал, но не понятно как и куда применять команды из руководства программиста.
Re: Переходник LPT-I2C
Думаю проще будет чтобы МК читал датчики и по USB передавал. Типа такого. http://www.cyberforum.ru/blogs/204791/blog3248.html