|
|
E-330 через USB
Здравствуйте.
Возникла идея сделать переход USB->LPT для модуля E-330. За основу взял микроконтроллер с USB, 3 микросхемы SN74LVC8T245 (возможна передача в обе стороны) - по одной микросхеме на каждый регистр (status - 5 контактов, control - 4 контакта, data - 8 контактов) и исходный текст eppdrv.asm. С выходов микросхем поставил резисторы на все контакты 300 Ом. SN74LVC8T245 может работать как на прием так и на передачу. Status - все время на прием работает. Контакты со стороны АЦП высокоимпедансные. Регистр Data может работать в обе стороны, в соответсвии с младшим битом регистра Control (STB). При установке его в 0 передает компьютер, при 1 - АЦП. Тут все получается переключать (0 - входы АЦП высокоимпедансные, 1 - я устанавливаю высоимпедансными входы своего устройства). А с регистром Control не все понятно. Он постоянно держит уровень 5В, как его изменить. Посмотрел, на входе в АЦП стоит 74HC244. Скачал даташит на микросхему, контакты идут на входы 11,13,15,17. Что делаю неправильно или как снять подтяжку 5 В с контактов регистра Control ??
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 674
|
Re: E-330 через USB
С аппаратной стороны мы Вам вряд ли поможем. Файл eppdrv.asm в свое время я и писал, поэтому если есть конкретные вопросы по нему - могу попытаться помочь.
|
|
- Сотрудник "Л Кард"
- Здесь с 18.04.2014
- Сообщений: 810
|
Re: E-330 через USB
Дмитрий,
задача создания полноценного USB-LPT контроллера (с эмуляцией портов 378h-37Ah, а не "напечатать блок данных на принтере") будоражит умы людей уже давно, советую поискать в сети. В частности, я сейчас нарыл такую ссылку:
http://www-user.tu-chemnitz.de/~heha/ba … ex.html.en
Открытый проект, со схемами и исходниками.
Еще вроде как микросхемы MOSChip имеют регистровый интерфейс через vendor-specific usb То есть, может быть, если написать свой драйвер, сойдет и такая штука:
http://www.moschip.com/data/products/MC … t_7705.pdf
|
|
|
Re: E-330 через USB
Александр Е,
я не собираюсь делать эмуляцию лпт. Управление модулем необязательно через лпт, просто под него написан весь софт. Фирма-изготовитель поставляет исходные файлы, при их помощи можно разобраться как осуществляется управление (выставление флагов готовности, передача данных и прочее).
С аппаратной частью вроде разобрался.
В выходные буду пытаться загрузить прошивку в модуль.
Понимаю, что все, что написано фирмой-изготовителем, не будет работать, поскольку там обращение идет через 378 или 278 адреса. Но мне это и не надо, все задачи, которые делал модуль давно переложил на контроллеры.
Однако модуль удобен в плане функциональности поэтому не хотелось бы его откладывать в ящик, а лпт порта на материнке попросту нет, с пси->лпт картой так и не получилось ничего.
|
|
- Инженер-электронщик
- Откуда: "Л Кард"
- Здесь с 21.04.2014
- Сообщений: 4,597
|
Re: E-330 через USB
Dmitriy, какая именно функциональность Вам удобна? Может, посмотреть среди сегодняшних продуктов L-Card?
|
|
|
Re: E-330 через USB
Гарманов Александр,
функциональность - в плане наличия многоканального АЦП, ЦАП и многоканального логич. анализатора в одном модуле. Если бы он мне нужен был по работе, то я не стал бы даже пытаться ничего делать, просто заказал бы новый модуль с УСБ. Использую модуль для отладки и измерения своих любительских схем, поэтому пока хватает старого е-330.
Изначально модуль покупался отцом для диагностики работы инжекторных автомобилей (500 кГц там более чем предостаточно), но задачи, которые модулем решались я ему заменил на простые контроллеры, и модуль перешел мне. 
|
|
|
Re: E-330 через USB
Владислав,
функция
LOAD_EPP_BIOS PROC C FAR BiosSize : WORD, BiosPtr : DWORD
push ds
push si
lds si, BiosPtr
lodsb
call ByteOut
call LocalReset
lds si, BiosPtr
mov cx, BiosSize
lodsb
LoadBiosLab:
lodsb
call ByteOut
loop LoadBiosLab
pop si
pop ds
call ByteIn
mov ah, 0
ret
ENDP
Сначала посылается в модуль первый байт файла биоса, затем делается сброс процессора 2105, а затем заново посылается весь файл начиная с первого байта?
Не могу понять смысла передачи байта перед сбросом, либо чтото неправильно понял.
Модуль после загрузки возвращает число 0х16, либо 0х255, в описании написано что должен возвращать 0х54.
|
|
|
Re: E-330 через USB
Неправильно написал 16 и 255 в десятичной системе счисления, то есть 0х10 либо 0хFF
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 674
|
Re: E-330 через USB
Посмотрел в исходнике DSP, там после загрузки программы модуль первым делом выдает код 0x54. С первым байтом была какая-то тонкость, лучше делать точно так как в ассемблере (зачем перед сбросом посылался первый байт - не помню).
|