Завершил изготовление и тестирование USB-GPIB адаптера E. Girlando на базе Arduino Nano R3. Результат превзошёл мои ожидания. Даже с капризным мультиметром Advantest, который с адаптером Михаила Терентьева наотрез отказывался выдавать свои калибровочные коэффициенты в полном объёме, заработало всё и сразу.
Исходники оригинальной прошивки и документация на GitHub'е:
https://github.com/larsks/arduino-gpibТо же самое в блоге автора:
http://egirland.blogspot.ru/2014/03/ard ... oller.htmlОбсуждение доработок на форуме eevblog:
https://www.eevblog.com/forum/testgear/ ... e-(ieee488)/
STL модель корпуса для 3D печати:
https://www.thingiverse.com/thing:993349/#filesДля удобства при распайке разъёма составил таблицу соединений:
Я протестировал адаптер с мультиметрами HP, Datron и Advantest, загрузив в Arduino авторский скетч. Он хотя и компилировался с множеством warning'ов из-за вольного обращения автора с NULL указателем, оказался полностью работоспособен. Проблему с неправильной отработкой ответа, о которой писал выше Сергей, я пока не обнаружил. Но стоит заметить, что разводка сигналов в его варианте отличается от авторской.
В обсуждении адаптера по ссылкам выше имеется описание нескольких полезных доработок, которыми я не преминул воспользоваться: обработка сигнала SRQ и поддержка внешнего датчика температуры LM35 (автор
jxl ), предварительная установка сигнала NRFD в процедуре read_h для устранения потери символов при чтении с быстрых приборов (автор
Florian). Кроме того, для совместимости с контроллерами PROLOGIX и тем софтом, который их поддерживает, крайне необходимо сделать следующее:
1) в строке, которую возвращает процедура
print_ver в ответ на команду ++ver, обязательно должны быть ключевые слова "GPIB-USB", "version" и номер версии в формате с точкой, например 6.1.
2) сигналы CTS и DSR в USB-RS232 конвертере на борту Arduino нужно притянуть к земле. В Nano R3 это выводы 9 и 10 чипа CH340G.
3) на плате Arduino необходимо отключить Auto Reset On Serial Connection. В Сети приводят много вариантов как это сделать, в том числе с помощью отключаемого перемычкой резистора на 100 Ом с reset на +5 В. У меня этот фокус не заработал, а подбирать номинал мне не захотелось. Поэтому я поступил кардинально: выпаял конденсатор 100 нФ, который соединяет reset и DTR. Делать это лучше всего после прошивки, чтобы не прибегать потом к ручному сбросу атмеги кнопкой.
Достоинства:
+ отсутствуют дорогие/долго доставаемые комплектующие (например, драйверы), не нужно заказывать печатную плату.
+ весь адаптер умещается в корпусе разъёма, можно отказаться от толстых шлангов GPIB кабелей и удлинителей.
+ совместимость с широко распространённым PROLOGIX.
Недостатки:
- не полная электрическая совместимость со спецификацией GPIB.
- поддерживаются только базовые функции и режимы интерфейса.
- малая пропускная способность. Теоретический потолок не более 10 кб/с.
- несовместимость с продуктами от NI.