Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


E-330 через USB

Вы не вошли.

 Поиск | Регистрация | Вход 

Dmitriy
28.10.2009 09:15:56
#1

Гость

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 ??

28.10.2009 09:34:01
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: E-330 через USB

С аппаратной стороны мы Вам вряд ли поможем. Файл eppdrv.asm в свое время я и писал, поэтому если есть конкретные вопросы по нему - могу попытаться помочь.

29.10.2009 18:04:22
#3

Сотрудник "Л Кард"
Здесь с 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

Dmitriy
30.10.2009 09:01:37
#4

Гость

Re: E-330 через USB

Александр Е,
я не собираюсь делать эмуляцию лпт. Управление модулем необязательно через лпт, просто под него написан весь софт. Фирма-изготовитель поставляет исходные файлы, при их помощи можно разобраться как осуществляется управление (выставление флагов готовности, передача данных и прочее).
С аппаратной частью вроде разобрался.
В выходные буду пытаться загрузить прошивку в модуль.
Понимаю, что все, что написано фирмой-изготовителем, не будет работать, поскольку там обращение идет через 378 или 278 адреса. Но мне это и не надо, все задачи, которые делал модуль давно переложил на контроллеры.
Однако модуль удобен в плане функциональности поэтому не хотелось бы его откладывать в ящик, а лпт порта на материнке попросту нет, с пси->лпт картой так и не получилось ничего.

30.10.2009 10:59:37
#5

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: E-330 через USB

Dmitriy, какая именно функциональность Вам удобна? Может, посмотреть среди сегодняшних продуктов L-Card?

Dmitriy
30.10.2009 11:21:19
#6

Гость

Re: E-330 через USB

Гарманов Александр,
функциональность - в плане наличия многоканального АЦП, ЦАП и многоканального логич. анализатора в одном модуле. Если бы он мне нужен был по работе, то я не стал бы даже пытаться ничего делать, просто заказал бы новый модуль с УСБ. Использую модуль для отладки и измерения своих любительских схем, поэтому пока хватает старого е-330.
Изначально модуль покупался отцом для диагностики работы инжекторных автомобилей (500 кГц там более чем предостаточно), но задачи, которые модулем решались я ему заменил на простые контроллеры, и модуль перешел мне. smile

Dmitriy
05.11.2009 11:38:48
#7

Гость

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.

Dmitriy
05.11.2009 11:40:31
#8

Гость

Re: E-330 через USB

Неправильно написал 16 и 255 в десятичной системе счисления, то есть 0х10 либо 0хFF

09.11.2009 09:44:58
#9

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: E-330 через USB

Посмотрел в исходнике DSP, там после загрузки программы модуль первым делом выдает код 0x54. С первым байтом была какая-то тонкость, лучше делать точно так как в ассемблере (зачем перед сбросом посылался первый байт - не помню).