Форум РадиоКот https://radiokot.ru/forum/ |
|
Вопросы использования шины IEEE-488 (GPIB) https://radiokot.ru/forum/viewtopic.php?f=10&t=146784 |
Страница 1 из 4 |
Автор: | trengtor [ Пт июл 14, 2017 05:33:55 ] |
Заголовок сообщения: | Вопросы использования шины IEEE-488 (GPIB) |
IEEE-488 — спецификация международного стандарта, описывающая интерфейс подключения к шине цифровых измерительных приборов. Разработана Hewlett-Packard в конце 1960-х годов для использования в автоматизированном измерительном оборудовании (англ. automated test equipment, ATE) под названием интерфейсная шина Hewlett-Packard (англ. Hewlett-Packard Interface Bus, HP-IB).[1] В 1975 году стандартизирована американским Институтом инженеров электротехнической и электронной промышленности как IEEE-488, и до сих пор применяется в данном качестве. IEEE-488 также известна под названием «Интерфейсная шина общего назначения» (англ. General Purpose Interface Bus, GPIB), стандарт IEC-625 (МЭК 625.1), а также под другими названиями. В аналогичном советском стандарте ГОСТ 26.003-80 «Система интерфейса для измерительных устройств с байт-последовательным, бит-параллельным обменом информацией», называется «многопроводным магистральным каналом общего пользования». В теме обсуждаются вопросы использования (ПО и т.п.) и DIY-реализации (самоделки) данного интерфейса, а также сопутствующие вопросы. |
Автор: | serg-el [ Пт июл 14, 2017 09:17:05 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
На основе http://egirland.blogspot.dk/2014/03/ard ... oller.html В Ардуино не только баги перечисленные на тамошнем форуме. Там ещё неправильная отработка ответа. Сейчас навскидку всё не вспомню, но пришлось играться с маской, сдвигом бит и обнулением старшего бита. Может в чём-то сейчас не прав, сравните мою прошивку, и исходник. В любом случае - моя работает ![]() Самое весёлое - это Exel. С учётом того, что с каждой новой версией Microsoft всё больше обрезает функционал, то для сопряжения с последовательным портом пришлось помучиться. Но результат получен. Правда для этого надо инсталлировать в систему mscomm32.ocx. В архиве по вышеприведённой ссылке лежит выжимка ![]() В Exel-евском файлике (сыроват, но для образца пойдёт) сделаны кнопки включения и выключения дисплея мультиметра, отправка команд и чтение ответов, задание номера последовательного порта. А также чтение значений в цикле (выставляется период опроса в сек и задержка между запросом, и выводом в мсек, чтобы мультиметр успел ответить). Количество запросов (тактов) соответственно можно менять. В окошке (количество тактов) - то количество тактов, которое прошло. Задержку выставлять так (по минимуму), чтобы количество тактов заданных, и тех что прошло - совпадало (это если надо опрашивать часто). Если опрос редкий - то задержку можно поставить побольше. Моя система: Имя ОС Microsoft Windows 7 Профессиональная Версия 6.1.7601 Service Pack 1 Сборка 7601 Microsoft Office Exel 2007 (12.0.4518.1014) MSO (12.0.4518.1014) Ну и заодно, там же настройки serial monitor и putty для Advantest R6551 с Arduino Uno (ARDUINO GPIB firmware by E. Girlando Version 6.1 & serg-el ver. 6.3). download/file.php?id=288885 Ввиду безбожной стоимости соединительных кабелей - соответственно искал альтернативу. Итого: из импорта это centronics 24 pin male, а из наших РПМ7-24Ш-КП-В ![]() Добавлено after 29 minutes: Если взять Arduino nano, и упрятать внутрь приборов, то можно вывести usb на заднюю стенку. https://ru.aliexpress.com/item/Mini-USB ... .21.06JBIJ ![]() |
Автор: | TrexREXX [ Пт июл 14, 2017 10:05:37 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Ввиду безбожной стоимости соединительных кабелей - соответственно искал альтернативу. Итого: из импорта это centronics 24 pin male, а из наших РПМ7-24Ш-КП-В Сейчас купил по наводке 0xFF на Али метровый кабель ![]() |
Автор: | 0xFF [ Вс июл 16, 2017 06:46:17 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Если кто серьезно, в ПМ пжалста: http://www.ebay.com/itm/NATIONAL-INSTRU ... 2281875498 |
Автор: | Mickle [ Вт июл 18, 2017 11:29:46 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Завершил изготовление и тестирование 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. |
Автор: | otus [ Вт июл 18, 2017 14:10:45 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Михаил тестировали пока только как терминал ? Как воспринимает утилиты из простого : http://www.ke5fx.com/gpib/readme.htm С польским даталоггером работает ? : http://rfscientific.eu/rf-scientific-gpib-logger-v10 С Keysight программами не пробовали ещё ? |
Автор: | Mickle [ Вт июл 18, 2017 15:00:25 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Тестировал через терминал. KE5FX prologix.exe конфигуратор коробочку находит автоматом. Но что там ещё можно запустить, к примеру с HP 34401A, я не знаю. Скорее всего ничего. С польским даталоггером не работает (пока): не находит Prologix. По каким критериям он его ищет - неизвестно, проект не open source. К сожалению проект RFScientific Data Logger скомпилирован только под FTDI, а в Arduino Nano - CH340G ![]() С Keysight программами не проверял, работать не должен. |
Автор: | otus [ Вт июл 18, 2017 16:36:56 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
У KE5FX есть емулятор плоттера. Надо наверно писать поляку (он на eevblog тоже присутствует),мой адаптер на Silabs C8051F387, USB у него на борту (если выкинуть драйвера,то получается ещё меньше и ... ![]() ![]() Понимаю,что у Keysight громозкие программы,но там есть Connection Expert, может что-то можно "поковырять" ![]() |
Автор: | serg-el [ Вт июл 18, 2017 17:43:17 ] | ||
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) | ||
Михаил, я не знаю как у Вас заработала родная прошивка. Мою пришлось допиливать (отчасти по причине того что поменял разводку, отчасти из-за того что в программе ошибки). Смотрим: авторская, чтение DDRD = DDRD & 0b11001111 ; \задаём 4 и 5 биты порта D как входа PORTD = PORTD | 0b00110000; // PORTD bits 5,4 input_pullup \ выставляем HIGH на 4 и 5 бите порта D DDRC = DDRC & 0b11000000 ; \задаём 5,4,3,2,1,0 биты порта C как входа PORTC = PORTC | 0b00111111; // PORTC bits 5,4,3,2,1,0 input_pullup \ выставляем HIGH на 5,4,3,2,1,0 бите порта C return ~((PIND<<2 & 0b11000000)+(PINC & 0b00111111)); \а теперь внимание! читаем 6 и 7 биты порта D, сдвигаем влево на 2, читаем 5,4,3,2,1,0 биты порта C. \и складываем биты в один байт, затем весь байт инвертируем Т.к. вычитываем все 8 бит, то 7-ой бит получается всё время в 1. Т.е. все символы ASCI получаются из верхней адресной половины таблицы. Для того чтобы увидеть вменяемый ответ, надо обнулить 7-ой бит.
|
Автор: | Mickle [ Вт июл 18, 2017 18:04:38 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Попробуем разобраться. Код: return ~((PIND<<2 & 0b11000000)+(PINC & 0b00111111)) Читаем PORTD, сдвигаем влево на 2, маскируем всё, кроме 6 и 7 битов (которые только что были соответственно 4 и 5-м), логически складываем с битами 0-5 прочитанного PORTC. Инвертируем. К примеру, если все биты прочитаны как 1, то после инверсии получим 00000000, и наоборот, если читаем все 0, то в результате 11111111. Ведь так? |
Автор: | serg-el [ Вт июл 18, 2017 18:34:08 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
![]() Пошел учить языки.... А что у вас с 7 битом? |
Автор: | Mickle [ Вт июл 18, 2017 18:42:28 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Проверил 7-й бит в текстовых строках (*IDN?) - нулевой. Наверное в порядке. |
Автор: | serg-el [ Вт июл 18, 2017 19:00:59 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Хм. В Advantest R6551 прилетала 1. Поэтому сбрасывал в 0 принудительно. Михаил, выложите пожалуйста свой скетч. |
Автор: | Mickle [ Вт июл 18, 2017 21:27:15 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Скетч отправил в л/с. К сожалению, NoDerivatives лицензия не позволяет мне его распространять. |
Автор: | TrexREXX [ Ср июл 19, 2017 05:17:59 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Завершил изготовление и тестирование USB-GPIB адаптера E. Girlando на базе Arduino Nano R3. Результат превзошёл мои ожидания. Даже с капризным мультиметром Advantest, который с адаптером Михаила Терентьева наотрез отказывался выдавать свои калибровочные коэффициенты в полном объёме, заработало всё и сразу. Недостатки: - не полная электрическая совместимость со спецификацией GPIB. - поддерживаются только базовые функции и режимы интерфейса. - малая пропускная способность. Теоретический потолок не более 10 кб/с. - несовместимость с продуктами от NI. Поздравляю! Как всегда СУПЕР!!! Михаил, что за Advantest? Я таки доделал USB-GPIB Михаила Терентьева(НЕ RS232-GPIB!) Для моих задач не заметил разницы, но там надо под себя софт писать ![]() несовместимость с продуктами от NI Вот и пришлось купить NI PCI и PCMCIA ![]() А вот для NI есть NIVISA под питон,и из этого кроссплатформенность! ![]() |
Автор: | Mickle [ Чт июл 20, 2017 11:41:56 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
У KE5FX есть емулятор плоттера. Надо наверно писать поляку (он на eevblog тоже присутствует),... Эмулятор плоттера KE5FX работает с довольно узким перечнем приборов, поддерживающих HP-GL/2, в основном анализаторами спектра. У меня таких нет и вряд ли будут когда-либо. Поэтому проверить не могу ![]() Автору RF Scientific Data Logger я написал. Как оказалось, мы с ним уже пересекались в прошлом году по вопросам нановольтметров. Из ответного письма следует, что проблема поддержки других USB-GPIB адаптеров актуальна и будет обсуждаться совместно с инженером-программистом перед выходом следующей версии программы. Однако основная сложность здесь - получить сами адаптеры для тестирования и отладки. Так что ИМХО это дело далёкого будущего. В общем, если заказывать модуль Arduino для "USB-GPIB-за-час", то только с чипом FTDI, а не CH340 или каким-то другим. Не все программы общаются с адаптером, как с VCM. Есть и такие, которые используют прямой доступ через библиотеку ftd2xx.dll. |
Автор: | otus [ Чт июл 20, 2017 12:29:39 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Китайский FTDI имел какие-то проблемы.... Может уже тогда собирать с нуля на Меге и нормальной FTDI. Михаил,к своему подцепить FTDI в обход CH340 не пробовали ? |
Автор: | Mickle [ Чт июл 20, 2017 12:46:10 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Я сделал несколько иначе. Подключил к компу свой самодельный калибратор с FTDI чипом. И, о чудо, RF Scientific его увидел и согласился работать даже не проверяя PROLOGIX ли это или просто USB шнурок ![]() |
Автор: | otus [ Чт июл 20, 2017 13:02:24 ] |
Заголовок сообщения: | Re: Вопросы использования шины IEEE-488 (GPIB) |
Мой на C8051F387 - USB\VID_10C4&PID_8A5F (СОМ4) не видит ![]() Освободится адаптер на СР2102 (тоже Silabs ![]() терминал PuTTy на нём сейчас работает. |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |