Jump to content
jonytvester

Управление БП через аналоговый порт

Recommended Posts

Есть у меня два блока питания один на 35kV второй на 65kV, у обоих присутствует порт аналогового программирования 0-10 v (смотрите  прикрепленный мануал ), я ищу умельца который сможет выполнить описанную ниже задачу. возможно есть уже готовое решение ? 

Задача состоит из двух частей 

  1. Железо которое должно подключатся с одной стороны  к блоку питания FUG(мануал во вложении ) выдавая от 0-10V , а с другой стороны к ПК через юсб
  2. Программа , в которой будет возможно калибровать выходное напряжение блока питания  в зависимости от подключенного БП, возможность повышать/понижать  напряжение постепенно , таймер на выключение/ включение блока питания  . 

Analog_programming.pdf

Edited by jonytvester

Share this post


Link to post
Share on other sites

Аналоговое управление прикрутить можно , для РС есть ЦАП внешние для ЮСБ . Только вот точность какую нужно получить? И какова разрешающая способность блока питания по аналоговому входу управления?

Может у этого БП есть цифровой вход?

файл не загружается.

 

Share this post


Link to post
Share on other sites

Могу разработать  железо  с аналоговым выходом,подключаемое к USB  порту компьютера, в том числе при необходимости с гальвано-развязкой  и также написать программу управления  для компьютера  WIN7- WIN10 с графической оболочкой. 

Пишите сюда, или в личку или gennadiy.v@gmail.com

Share this post


Link to post
Share on other sites

Приглашаем на вебинар "Как сделать эффективную антенну для устройств IoT. Решения Quectel" (29.07.2021)

Вебинар посвящен проектированию и интеграции встроенных и внешних антенн Quectel для сотовых модемов, устройств навигации и передачи данных 2,4 ГГц. На вебинаре вы познакомитесь с продуктовой линейкой и способами решения проблем проектирования. В программе: выбор типа антенны; ключевые проблемы, влияющие на эффективность работы антенны; требования к сертификации ОТА; практическое измерение параметров антенн.
Подробнее

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Вот так вот и скажите мастеру.  Впрочем цена данной магнитолы не особо предполагает её ремонта, по этому если только пришла пытайся вернуть деньги за неё.
    • Если я не ошибаюсь, изначально в этой схеме триоды первой лампы были запарралелены. Вы включили раздельно (что по-моему более правильно). В таком включении анодный резистор слишком малого номинала, каскад будет давать большие искажения. Обычно этот резистор берут в 2-3 раза больше внутр. сопр. лампы, т.е. хотя-бы 120кОм. Катодный резистор тоже увеличится (его по-любому придётся подбирать). После выпрямления анодное напр. питания получится в районе 330-340В, что для этой схемы многовато. Придётся погасить резистором, вдобавок получится C-L-C фильтр (это гуд).   именно так, извиняйте за нехватку знака. Забыл, что печатал не на калькуляторе, там незначащий ноль можно не нажимать.
    • я знаю к примеру в микшерных пультах на вход ОУ ставят диоды, ибо есть там Фантомное питание в 48V и этот пик (при включении) может попасть на вход ОУ. Насколько эти диоды эффективны при длительном превышении входного сигнала?  
    • Типоразмер 10 см Мощность максимальная 40 Вт Мощность номинальная 20 Вт Чувствительность 97 дБ Диапазон воспроизводимых частот 2500 - 20000 Гц Импеданс 8 Ом  
    • Тут внимание уделить диодам. Я поначалу смотрел только на напряжение, но этого мало. Емкость pn перехода. Горели диоды с емкостью 90-100р, и похоже от перегрева ( тепловизора на тот момент не было). Сейчас нашел диоды с емкостью 15-20р. Время обратного восстановления тоже нужная штука - её  измерить можно.   Ну и вольтаж - ставлю сейчас 1200В 2А
    • С каким напряжением,посоветуйте какие ключи купить и где ?Я с деревни,только через почту смогу купить.
    • Доброго дня. Подскажите, что за микросхемы в USB-заряднике? Не нашел похожих.
  • Similar Content

    • By Fordli
      Я хочу построить простой шлюз с arduino+nrf24l01+enc28j60, nrf24l01 принимает сигнал и enc28j60 передает его в LAN, но проблема в том, что и nrf24l01 и enc28j60 используют протокол SPI для взаимодействия с arduino, если я хочу использовать собственный lib разработки arduino, я могу выбрать только один из nrf24l01 и enc28j60, потому что они имеют общее определение (pins_arduino.h). 
      static const uint8_t SS = 10; static const uint8_t MOSI = 11; static const uint8_t MISO = 12; static const uint8_t SCK = 13 Итак, решение состоит в том, чтобы выбрать nrf24l01 вместо использования lib development, которая поставляется с arduino, но использовать другой IO порт, который я разработал сам, это правильно?
    • By Fordli
      Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц.
      Я хотел бы знать, как изменить частоту ШИМ простым и легким способом.
      Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?
    • By Viktor_Z
      Здравствуйте, у меня вопрос по правильной распиновке для прошивки приставки
      1) Видел вариант с "прямой", то есть 5В на 5В, D+ на D+ и т.д.
      https://www.youtube.com/watch?v=3SgPDCK_HW4
      https://www.frontx.com/pro/c526p3.gif
      Спаял как раз по нему (фото прилагается), при подключении приставки загорается индикатор, ток есть, но данные не передаются (никакие usb порты при подключении не сгорели)
      1) Также вариант с "зеркальной", 5В на GND, D+ на D-
      https://www.youtube.com/watch?v=QITmktkameg
      Хотел спросить у сведущих людей, как все-таки правильно.
      Приставка TANIX TX9S.
       
       

    • By Fordli
      Я считаю, что знакомиться с новым продуктом, создавая игры, очень весело и нескучно, и именно поэтому я сделал этот проект.
      Этот проект заключается в использовании Arduino UNO и lcd-дисплея Stone tft для разработки простой игры в крестики-нолики.
      Материалы, необходимые для эксперимента
      Arduino UNO tft lcd дисплей Stone STWI070WT-01 Принцип работы системы
      Задайте, что первое нажатие на экран должно быть O, второе нажатие на экран - X, проделайте этот цикл. Установите 8 массивов для хранения количества O и X в каждой строке, столбце и диагонали каждой сетки, до тех пор, пока есть три одинаковых знака является победа, то будет мигающий красный ящик, чтобы доказать победу строки, столбца или диагонали, а затем нажмите сброс, чтобы начать игру снова.
      Простая схема соединения

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

      Прежде чем я размещу код, мне действительно нужно поблагодарить всех на форуме за исправление моей ошибки при загрузке.

      После решения этой проблемы, мой код был загружен на плату UNO без каких-либо проблем, что, наконец, позволило мне реализовать мой проект. Спасибо всем, кто помог мне!
      unsigned int r_flag1 = 0; uint8_t RecievedTemp1[30] = {0}; //uint8_t *RecievedTemp1 = new uint8_t[30]; uint8_t cout_i = 0; unsigned int quan_hang1 = 0; unsigned int quan_hang2 = 0; unsigned int quan_hang3 = 0; unsigned int quan_lie1 = 0; unsigned int quan_lie2 = 0; unsigned int quan_lie3 = 0; unsigned int quan_zuoxia = 0; unsigned int quan_youxia = 0; //unsigned int quan[8]={0}; // unsigned int cha_hang1 = 0; unsigned int cha_hang2 = 0; unsigned int cha_hang3 = 0; unsigned int cha_lie1 = 0; unsigned int cha_lie2 = 0; unsigned int cha_lie3 = 0; unsigned int cha_zuoxia = 0; unsigned int cha_youxia = 0; unsigned int cha[8]={0}; void setup() { Serial.begin(115200); for(int i=3; i<=8; i++) pinMode(i,OUTPUT); } void loop(){ if(Serial.available() != 0) { // for(cout_i = 0; cout_i < 30; cout_i ++) // { // //RecievedTemp1[cout_i] = Serial.readBytes(RecievedTemp1, 15); // Serial.readBytes(RecievedTemp1, 20); // //Serial.println(RecievedTemp1[cout_i]); // } Serial.readBytes(RecievedTemp1, 20); for(cout_i = 0; cout_i < 19; cout_i ++) { Serial.println(RecievedTemp1[cout_i]); } switch(RecievedTemp1[13]) { case 49: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang1++; quan_lie1++; quan_youxia++; // quan[0]++; // quan[3]++; // quan[7]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button1\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang1++; cha_lie1++; cha_youxia++; // cha[0]++; // cha[3]++; // cha[7]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button1\",\"enable\":false}>ET")); } break; case 50: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang1++; quan_lie2++; // quan[0]++; // quan[4]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button2\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang1++; cha_lie2++; // cha[0]++; // cha[4]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button2\",\"enable\":false}>ET")); } break; case 51: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang1++; quan_lie3++; quan_zuoxia++; // quan[0]++; // quan[5]++; // quan[6]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button3\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang1++; cha_lie3++; cha_zuoxia++; // cha[0]++; // cha[5]++; // cha[6]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button3\",\"enable\":false}>ET")); } break; case 52: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang2++; quan_lie1++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button4\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang2++; cha_lie1++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button4\",\"enable\":false}>ET")); } break; case 53: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang2++; quan_lie2++; quan_zuoxia++; quan_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button5\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang2++; cha_lie2++; cha_zuoxia++; cha_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button5\",\"enable\":false}>ET")); } break; case 54: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang2++; quan_lie3++; // quan[1]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button6\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang2++; cha_lie3++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button6\",\"enable\":false}>ET")); } break; case 55: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang3++; quan_lie1++; quan_zuoxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button7\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang3++; cha_lie1++; cha_zuoxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button7\",\"enable\":false}>ET")); } break; case 56: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang3++; quan_lie2++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button8\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang3++; cha_lie2++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button8\",\"enable\":false}>ET")); } break; case 57: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang3++; quan_lie3++; quan_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button9\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang3++; cha_lie3++; cha_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button9\",\"enable\":false}>ET")); } break; case 48: r_flag1 = 0; quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0; quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0; quan_zuoxia=quan_youxia=cha_zuoxia=cha_youxia=0; // for(char count_i=50;count_i<58;count_i++) // { // Serial.println((("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image%c\",\"image\":\"bai\"}>ET"),count_i)); // } Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif4\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif5\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif6\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif7\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif8\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif9\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif10\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif11\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button9\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button8\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button7\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button6\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button5\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button4\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button3\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button2\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button1\",\"enable\":true}>ET")); break; } if((quan_hang1==3)||(cha_hang1==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif4\",\"visible\":true}>ET")); } else if((quan_hang2==3)||(cha_hang2==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif5\",\"visible\":true}>ET")); } else if((quan_hang3==3)||(cha_hang3==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif6\",\"visible\":true}>ET")); } else if((quan_lie1==3)||(cha_lie1==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif7\",\"visible\":true}>ET")); } else if((quan_lie2==3)||(cha_lie2==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif8\",\"visible\":true}>ET")); } else if((quan_lie3==3)||(cha_lie3==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif9\",\"visible\":true}>ET")); } else if((quan_zuoxia==3)||(cha_zuoxia==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif11\",\"visible\":true}>ET")); } else if((quan_youxia==3)||(cha_youxia==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif10\",\"visible\":true}>ET")); } } } Здесь будет приложен демонстрационный видеоролик проекта.
       
    • By Vaffanculo
      Всем привет!
      Встала передо мной задача передать USB трафик по радио.
      Хочется сделать что-то типа USB-донгла, который вставляется в компьютер и общается с ответым устройством по радио.
      К ответному устройству своим родным кабелем должен подключаться существующий USB-девайс.
      Функционал USB-хаба не требуется, работа идет только с одним конечным устройством.
      Задача минимум - поддержать Low Speed режим.
      Вопросов много, начну с главного.
      Реально ли сделать все это не занимаясь разбором USB пакетов, а просто передавая их как есть?
      То есть МК в режиме девйса получает от хоста пакет, вырабатывает прерывание, обработчик которого
      забирает буфер и выдает команду радиомодулю на передачу содержимого буфера. Со стороны устройства все
      то же самое, только МК работает в режиме хоста. Ну и в обратном направлении подобным же образом. Выбор микроконтроллера. Он должен позволять работать с голыми пакетами напрямую, чтоб не было всяких
      фокусов с прибитыми гвоздями VID и PID.
      Насколько я понимаю, не каждый МК с поддержкой USB умеет работать в режиме хоста. Поскольку это нужно
      только на одном конце, получается, что микроконтроллеры могут быть разными для донгла и для девайса.
      Ну и цена вопроса имеет значения. STM32 внезапно подорожали в разы. Присматриваюсь к китайскому CH559 Подойдет ли для радиообмена NRF24L01? Он вроде бы не сильно много потребляет по сравнению с WiFi.
      Если нет, то что вместо него? По блютусу делать не хочу, там не получится сделать так, чтобы компьютер видел конечное устройство ровно так,
      как он его видит при подключении кабелем, то есть драйвера устройство не опознают. Или я не прав?
      Спасибо.
×
×
  • Create New...