awpe01

Разработка Связки Linux -> Usb -> Gpio

2 posts in this topic

awpe01    1

Здравствуйте,

обдумываю устройство сопряжения компьютера и платы с GPIO.

Как я себе это представляю:

usb порт ПК -> cy7c68013 -> ПЛИС xilinx spartan3e -> 64GPIO (32 светодиода/32 переключателя).

На компьютере:

есть драйвер и файл устройства (пишу сам) /dev/usb2gpio. С него можно прочитать 4 байта, где биты указывают состояния переключателей на плате, а можно записать 4 байта и значениями битов включить светодиоды.

Драйвер постоянно опрашивает устройство и пишет состояние переключателей в файл устройства.

На плате:

есть cy7c68013 в EEPROM которого при наладке устройства прописывается VID, DID, для драйвера на ПК.

ПЛИС на максимальной скорости проверяет буфер в cy7c68013 и если там что то есть (4 байта) то выставляет на светодиоды нужные сигналы, после опроса записывает туда значения для отправки в ПК(только если буфер пуст).

сразу отвечу на некоторые вопросы:

1) почему linux? - Программа которой дополнительные GPIO нужны под него сделана.

2) почему usb? - Есть на любой материнской плате, скорость выше чем у доступных com/lpt.

3) почему cy7c68013 и spartan3e? - потому что есть отладочная плата с этой связкой (digilent nexys2), с платой и IDE знаком не по наслышке. Сделать usb для плис не хватит времени, купить готовый ip core не по карману, cy7c68013 по даташиту имеет FIFO на 60мбайт/с что достаточно.

4) Зачем там ПЛИС? - Здесь я пытаюсь выяснить стоит ли использовать USB для моих целей, а вообще у ПЛИС будет и другая работа(не только светодиодами моргать), но там всё ясно, уже делал подобные вещи, а вот с ПК связывал свою аппаратуру только через последовательный порт...

вопросы:

1) Затея выполнимая для одного человека, без опыта разработки сложных промышленных устройств? (опыт из универа (курсов для разработки драйверов устройств нет, по шинам(usb) тоже давали только общие представления), различные задачи, синхронные, асинхронные последовательные схемы, конечные автоматы итд. программирование си, асм, pic/avr, posix threads, реализации FFT, CYK(многопоточный). Пытаюсь прояснить о каком человеке идёт речь :) ) В целом концепция ясна, но вдруг есть какие то подводные камни о которых пока ни сном, ни духом...

2) Если скажу что частота опроса будет не меньше 250кГц и запись тоже 250кГц, не ошибусь? - Пусть имеем соединение highspeed 480mbit/s = 60mByte/s, usb шина полудуплексная, значит 30мБайт/с в одну строну, дальше, скажем, качество кабеля плохое, получим 20мБайт/с в одну сторону, надо передавать 4 байта, значит имеем 500000 посылок в секунду на такой скорости, ну и по закону подлости пусть реально будет в два раза меньше - 250К посылок в секунду.

3) Я разделом не ошибся? :)

Edited by awpe01

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Similar Content

    • By maxssau
      Продам адаптеры USB-I2S. 

       
      Возможности:
       
      стерео ввод/вывод PCM 16-32 бита, 44.1-384 кГц. Ввода DSD нет, как и драйверов для ввода DSD.
      вывод DSD в режиме DoP 64-128, в режиме Native 64-256. Native доступен в Linux без "хитрых" драйверов.
      Тактирование от платы ЦАП/АЦП, частоты 512 fs (22.5792/24.576 МГц). Теоретически возможно и 1024fs(скорости 768кГц и DSD512 Native), но это не опробовано.
      Гальваническая изоляция на Si8662/Si8640.
      Питание возможно как Self так и Bus Powered. В режиме Bus Powered необходимо самостоятельно позаботиться о мастерклоке, т.к. возможны сильные глюки при выключенном генераторе мастерклока.
       
      Тема: 
      срок изготовления 3-5 недель (сильно зависит от поставок процессоров).
      На данный момент полностью реализован интерфейс Legacy. Для отладки Native режима пока нет платы ЦАП, в процессе разработки, будет не раньше осени.
      Цена 6000 + пересылка (в среднем 250 р.).
    • By Dinisko
      Здравствуйте! Еще пол года назад просил помощи местных знатоков, но информации было много, а времени переварить ее нет. Я новенький. Хочу собрать простой и качественный предусилитель с питанием от USB (понятия качества разные, мне главное - чтоб не фонило и не искажало). Сначала мне посоветовали усилитель на одном транзисторе (который на схеме) и он мне понравился, но из-за пластмассового звучания решил добавить регулятор тембра, что сильно убавило громкость. После этого решил впилить еще и TDA2822, и здесь у меня много вопросов. Ужасно фонит и гудит. Если прикоснуться пальцем к любому из конденсаторов (не обязательно связанных с минусом) - гул пропадает, высокий шум остается. Ставлю на что, что конструкция пока находится на бреад борде и много соединительных проводов висят в воздухе и ловят наводки (землю, если что, старался разводить "звездой").
      Но все равно хотелось бы убедиться в надежности перед пайкой. Использование приспособления - включать музыку на телефоне и под нее играть на гитаре (классика, пьезозвукосниматель), возможность просто играть в любую компьютерную колонку ну и возможность подключить, скажем, микрофон к компу.
      Самый главный вопрос - можно ли избавиться от гула и шума, где схема неправильная, что не так? Усилитель на транзисторе сам по себе работает хорошо. ТДА собрана по даташиту, за исключением конденсатора по питанию (там 10, у меня - 22 мкф), темброблок вообще пассивный.
      Второй вопрос: Если добавить звук почти наполовину (потенциометр в центре схемы, обведен синей ручкой) - начинаются сильные искажения. Да и к тому же от касания к нему - сильный шум. Хочу заменить на два простых резистора, а регулятор громкости перекинуть на выход (нарисовал синей ручкой справа сбоку). Нужен ли резистор в качестве фильтра (который под синей ручкой на схеме?), а также нужен ли конденсатор (там же), если есть конденсатор перед темброблоком? Проверял и с ними и без них - разницы, вроде, никакой. Просто хочу знать у квалифицированных людей, повлияет ли это на звук после пайки.
      Также вопрос, не влияет ли на шумы конденсатор на выходе (в даташите его нет, но так как я буду подключать телефон, хочется обезопасить себя, да и без него пробовал - та же фигня с шумами.
      И еще под двумя вопросительными знаками номиналы конденсаторов. Играет ли это роль? (других у меня пока нет), нужно ли менять на те, которые в скобках?

      Спасибо большое за любую помощь!!!

    • By admin
      В ролике показано как скомпилировать и установить библиотеку OpenCV 4.1.0 на Raspberry Pi 3.
      Используйте промокод CXEMNET и получите скидку 10% в магазине https://www.seeedstudio.com/ при покупке от 150$!
      https://www.seeedstudio.com/category/Raspberry-pi-c-1010/Raspberry-Pi-3-Model-B--p-3037.html малинка
      https://www.seeedstudio.com/category/Raspberry-pi-c-1010/Raspberry-PI-VGA666-DPI-dtoverlays-Module.html модуль vga666
      https://www.seeedstudio.com/category/Raspberry-pi-c-1010/Raspberry-Pi-Camera-Module-V2-p-2800.html камера
      Команды из видео.
      Открыть настройки raspberry Pi: 
      sudo raspi-config
      Далее выбираем Advanced Options → Expand Filesystem. Перезагружаемся.

      Установка требуемых пакетов:
      sudo apt-get install cmake cmake-curses-gui libgtk2.0-dev
      sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libx264-dev libxvidcore-dev
      sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev
      sudo apt-get install gfortran libatlas-base-dev
      Увеличение размера файла подкачки. 
      sudo nano /etc/dphys-swapfile
      Находим строчку CONF_SWAPSIZE=100
      И увеличиваем число например до 1024.
      Перезапускаем службу.
      sudo /etc/init.d/dphys-swapfile stop
      sudo /etc/init.d/dphys-swapfile start
      Создаем папку opencv в домашнем каталоге и переходим в нее
      cd /home/pi
      mkdir opencv
      cd opencv
      Скачиваем архивы с исходниками с помощью утилиты wget
      wget https://github.com/opencv/opencv/archive/4.1.0.zip -O opencv_source.zip
      wget https://github.com/opencv/opencv_contrib/archive/4.1.0.zip -O opencv_contrib.zip
      Распаковываем архивы.
      unzip opencv_source.zip
      unzip opencv_contrib.zip
      И теперь можно их удалить
      rm opencv_source.zip
      rm opencv_contrib.zip
      Теперь переходим в папку opencv-4.1.0 и создаем в ней папку build
      cd opencv-4.1.0
      mkdir build
      cd build
      Настраиваем параметры сборки. Обратите внимание на путь до дополнительных модулей!
      cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=OFF \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib-4.1.0/modules \
      -D BUILD_EXAMPLES=ON \
      -D BUILD_DOCS=ON \
      -D ENABLE_NEON=ON ..
      Компиляция в 1 поток
      make -j1

      Компиляция в 4 потока (только если у вас хорошее охлаждение малинки)
      make -j4

      Установка библиотеки
      sudo make install

      Настройка динамического связывания
      sudo ldconfig

      Проверка работоспособности библиотеки.
      python3
      import cv2
      cv2.__version__

      В результате, библиотека должна выдать номер версии, которую вы установили.
    • By Sin_city
      Привет всем. 
      Есть USB сканер штрих кода. Необходимо подключить его одновременно к 2 ПК. Без кнопки, KVN свичи не подходят.
      Как он будет работать - коллизии возможны, но это уже дело оператора. В принципе, если сейчас в неустановленное время кто-то что-то отсканирует (и компьютер живет "своей жизнью"), то ничего страшного не произойдет.
      Разберу ли я протокол - вопрос открытый. Может да, может нет (но в принципе у сканера просто все).
      Вопросы электрические.
      1. Есть Ардуино УНО. Есть USB провод. 
      Мне нужно USB провод разрезать или врезаться к него? Если врезаться, то нужна ли какая либо гальваническая развязка (чтобы не крякнулась линия сканер - первый комп, которая сейчас хорошо работает)?
      P.S. Относительно второго компа готов "подвинуться". т.е. например получать туда информацию через RS232 или любым другим образом, не обязательно USB. Но основная линия пострадать не должна (работает же сейчас))))
      2. В USB есть +5 и земля, тут понятно все. В USB есть D- и D+
      Как снифануть их?
      а) подать их напрямую в I2C контакты Ардуионо Уно?
      б) подать их напрямую в SIP контакты Ардуино УНО?
      в) купить конвертор USB - SIP или USB - I2C для Ардуино?
    • By maxssau
      Добрый день!
      Хотелось бы рассказать об очередном своём девайсе: USB аудио интерфейс UI-01.
      Устройство представляет собой USB-I2S адаптер с возможностью вывода PCM/DSD потоков, а так же ввода PCM I2S данных.
      Краткие характеристики:
      - Процессор XMOS XUF208, 8 логических ядер, 500 MIPS.
      - USB 2.0 High speed
      - 2 линии ввода/вывода (2 стерео входа + 2 стерео выхода или 4 входа/выхода)
      - Вывод: PCM 16-32 бита 44.1-384 кГц, DSD Dop 64-128, DSD Native 64-256 (linux)
      - Ввод: PCM 16-32 бита 44.1-384 кГц
      - Тактирование мастерклока от платы ЦАП/АЦП, частоты 512fs
      - Формат входа/выхода I2S
      - Питание Self Power (т.е. от внешнего источника, не от USB)
      - 8 конфигурируемых линий GPIO, возможные варианты от 8 выходов, до 4 входа + 4 выхода
      - Все линии гальванически изолированны с помощью изоляторов SiLabs Si8662, Si8640
      - 2 линии I2C, одна из которых изолирована с помощью ADUM1250 для управления ЦАП/АЦП и подключения дисплея/кнопок/EEPROM.
       
      Внешний вид:


       
      На плате присутствует разъем full XTAG для прошивки и отладки firmware.
      Схемотехника по даташитам и в общих чертах повторяет схемы evolution board от XMOS с некоторыми изменениями.
      Планируется 3 режима работы: Legacy, Soft и Native.
      Legacy режим.
      Параллельный режим работы, при котором управляющие команды выдаются как статические сигналы (MUTE, RESET, DSD, F0,F1). Этот режим позволяет работать интерфейсу без платы управления.

       
      Soft режим.
      Режим, при котором управление ИМС ЦАП/АЦП осуществляется по шине I2C или SPI. Конфигурация выбирается из меню. Необходима плата управления.

       
      Native режим.
      Режим, при котором конфигурация управления хранится в EEPROM памяти на плате ЦАП/АЦП. Наиболее функциональный режим, при котором всё управление осуществляется с процессора интерфейса. Управляющие сигналы на плате ЦАП/АЦП формируются с помощью I2C экспандера. Этот режим позволит использовать самую различную периферию на плате преобразователя (регулятор громкости и т.п.) без необходимости настройки, т.к. конфигурация будет храниться в EEPROM. Разъем 10 пиновый, т.к достаточно только I2S и I2C сигналы. Этот режим позволяет работать интерфейсу как с платой управления, так и без неё.

      Программируется плата с помощью специализированного адаптера XA-XTAG.

       
      Выводы сгруппированы по функциональному назначению, поэтому в случае неиспользуемых функций (например не нужен SPI), изолятор отвечающий за эту группу сигналов может не устанавливаться на плату.
      Распиновка разъема I2S:

      Полнофункциональные драйверы подходят отсюда:
      http://jlsounds.com/drivers.html
      На данный момент полностью реализован режим Legacy. Так же исправлены большинство "детских" болезней. В процессе работы удаление щелчков при переключении PCM-DSD и обратно.
      Вопросы:
      Что необходимо добавить или убрать к данной плате?
      Какие ИМС ЦАП необходимо добавить в список поддерживаемых в прошивку, для работы в SOFT режиме и с какими протоколами? Сейчас доступны I2C и SPI.
       
  • Сообщения

    • Вариант намеренной раскрутки срача не рассматривается? 
    • Чтобы нести подобную пургу, что он написал, нужно быть наглухо прозомбированным, а такое  возможно сделать только с плохо соображающим человеком. ))   Я сейчас набивая ответ в теме о божественном полете на Луну, обратил внимание, что это STEN50 её замутил. Как раз в 13 году, года пошла разнарядка по ТВ каналам раскручивать эту лунную "аферу".  Любопытно послушать с технической точки зрения, где Мухин называет ретрансляторы - орбитерами, шесть штук которых запустили американцы, чтобы нас облопошить. Вот скажи, можно ли такое навешать радиолюбителю? Он или продался или тупой как валенок.
    • Материала для блоков поблизости мест установки пирамид нет. Блоки привозные. Пирамиды установлены хитрым образом в нужном месте не просто так. Значит для кого то был смысл карячить блоки в пустыню и ставить пирамиды определённым образом. И это были явно не древние египтяне. Чужаки прилетали на землю за золотом и другим сырьём. Не зря в культуре многих народов тотемные и культовые вещи именно из золота. Вполне возможно древние египтяне тупо наткнулись на пирамиды в пустыне, посчитали их дарами богов и воспользовались ими как гробницами. Скорее всего не зная прямого назначения этих строений. Возможно они даже  встречали хозяев пирамид и считая их своими богами сохраняли пирамиды до "пришествия" и расписали пирамиды историей многих династий фараонов. Там есть изображения похожие на современную технику, людей в шлемах. Похожие рисунки людей в скафандрах есть у ацтеков, майя, индусов. Древние люди рисовали и писали про виманы, небесные колесницы и всякие летающие штуки. В мифах древней Греции есть легенда о Фаэтоне а Млечный путь считают следом зажжённого Фаэтоном в небе пожара. Легенду можно толковать по разному. Но судя по происходящим событиям это описание прилёта на землю крупного метеорита, после которого произошла катастрофа и богу пришлось заново восстанавливать жизнь на земле. Откуда это было известно людям, если согласно легенде на земле всё погибло,  тоже загадка. Либо не всё, либо кто то наблюдал со стороны. Звёздное скопление Плеяд у славян называется Стожары. У греков и других народов Плеяды, как ни странно, означают тоже самое. Каким образом разноязычные народы в разное время называют звёзды одинаково непонятно.
    • Что касаемо отверстий. Они имеют гладкие стенки но нигде нет следов оплавления. На заготовках мегалитических блоков весом 40-120т есть следы как от резцов дисковой пилы гигантского диаметра. Такой техники нет и сейчас. Порода твёрдая, типа карбокорундовая, её резать только алмазным инструментом с охлаждением. Ни один современный лазер такую породу не берёт. Может в вашей школе говорили о строительстве пирамид методом отливки. В наших учебниках написано иначе. Пирамиды собраны без раствора из хорошо обработанных блоков. Блоки стоят так, что лезвие ножа не пролезет. Наружняя штукатурка за века местами разрушилась местами осталась. На ней местами остались иероглифы. Всё это 100500 раз рассказывалось и показывалось по кабельным каналам (Дискавери, CBS Science, Наука2.0 и др) и образовательным программам типа Клуб путешественников, Планета...
    • Он не дебил, он Вас за дебила держит - тупо закидывает бессвязным пропагандосским гуаном.  Так что пусть лучше картинки вешает - и волки сыты, и овцы целы.  
    • Так они автономны, доступа лостаточно, ессно, если их (торы)  этим боковинкам не крепить, а сделать Каркас унифицированный, отверстий более чем.