Jump to content
sunjob

V-USB доработка интерфейса

Recommended Posts

v_usb.png.f0e451602b53ab8fa731a70d520429e0.png

добрый день

проект v-usb

выкус из спецификации/инета/форумов:
- реализация не полностью соответствует стандарту
- работа на 100% не гарантируется
- питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в "притирочку" ...)  :))

у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы.

2g6l5osisx.png


2g6l5o7m5h.png
2g6l5ngk3q.png

with-vreg.png.4e4019ee17d41fe2e10337893797e44c.pngwith-vreg.png.4e4019ee17d41fe2e10337893797e44c.pngwith-zener.png.4b5df57bf92c9240040e22cf72108e3f.pngwith-zener.png.4b5df57bf92c9240040e22cf72108e3f.png

как следствие стабильно может работать только при "определенных условиях"

в планах поработать с библиотекой.
для начало решил "набросать" альтернативный вариант. (так сказать, попытаться закрыть все возможные дыры в подключении)

2g6l5pm64d.png

 

достаем помидоры, баркова, мысли, высказываемся (заранее благодарен)

tag: v-usb, usb, avr, atmega328p, avr-gcc, linux/mac-osx

NO atmega32u4, NO arduino pro micro etc...

with-series-diodes.png

Share this post


Link to post
Share on other sites

Эм... Так какие именно недостатки Вы собираетесь устранить своей модернизацией? Помимо пониженного напряжения питания? Последнее, как по мне, сильно притянуто за уши. Да, там допускается толи 4.5 толи 4.4 вольта, но это не на холостом ходу, по-идее, а на номинальной нагрузке в 500 миллиампер (если речь идёт о 2.0). Не знаю, право, что это за приложение, которое будет столько потреблять.

Транзисторы Q3 и Q4 для трансляции уровней? Ну допустим. Только вот где номиналы? Какое влияние они окажут на фронты сигнала? Не понятно. Да и не нужны они там, по большому счету. У атмелов в спецификации прописана логическая единица в 0.6Vcc минимум, так что 3.3 вольта от юсбы очень даже туда впишутся.

В общем, очень сыро и непонятно зачем. 

 

Share this post


Link to post
Share on other sites

Обновленный ассортимент тактовых кнопок Omron!

Компэл предлагает обновленный ассортимент миниатюрных тактовых кнопок производства компании Omron, который включает в себя разнообразные решения как для стандартных условий, так и для применения в условиях повышенной влажности.

Подробнее

!!! модераторы !!!

не могу привести топик к нормальному виду, у меня тут по нескольку штук "лишних" картинок повылазило со всех сторон, возможно старый бразер виноват

(все необходимые картинки я спрятал под спойлер)

Edited by sunjob
кЮ

Share this post


Link to post
Share on other sites

Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое

Подробнее

9 часов назад, sunjob сказал:

не могу привести топик к нормальному виду...

Может лучше ответить на заданные вам вопросы? То, что их сформулировал первым  @El-Shang и такой пост один, не значит, что их можно спокойно игнорировать, потому что они вам не нравятся или непонятны. Считайте, что тут десяток таких постов с этими же вопросами от каждого просмотревшего.

А то уйдёт тема в "Корзину", и какая будет разница, в каком виде?

А за модераторов не беспокойтесь. Будет содержательная полезная тема - "причешут". А сейчас может думают, стоит ли возиться, если всё равно в мусор...

Edited by Lexter

Share this post


Link to post
Share on other sites

Трансиверы ADIN1200 и ADIN1300 от Analog Devices для промышленного Ethernet

ADIN1200 и ADIN1300 – микросхемы физического уровня Ethernet (PHY), разработанные ADI для современных промышленных систем Ethernet реального времени. Микросхемы ориентированы на применения в промышленной автоматике, автоматизации зданий, заводов, робототехнике и управлением движением, а также в промышленном интернете вещей (IIoT).

Подробнее

Цитата

...  десяток таких постов с этими же вопросами от каждого просмотревшего ...

и вы тоже присоединяетесь?! итого 11 невнимательно просматревших топик :о)

 

Цитата

F_CPU идет в "притирочку"

если написано "в притирку" - значит никаких пониженных напряжений

а то, что питание на USB имеет "достаточно заметный разбег" в минус, так это даже не "

притча во языцех" а давно известный факт

 

следовательно первый вопрос/совет не имеет смысла (при внимательном прочтении исходных данных) :о)

Edited by sunjob

Share this post


Link to post
Share on other sites

Тогда попросите модератора просто переименовать тему в "Угадайте, что я хочу спросить". Тогда ничего и править не нужно будет, и сразу ответ на все следующие посты написать: "Не угадали".

Share this post


Link to post
Share on other sites

браво мама! садитесь, это пять! :о) действительно... и ни чего переименовывать не надо... цирк не уехал :о)

p.s.

F_CPU = 18 или 20 МГц

если бы было доступно редактирование топика, то, естественно, обновил бы...

Edited by sunjob
КЮ

Share this post


Link to post
Share on other sites

###!!! UPDATE !!!###

нашел в распайке cypress usb module
как думаем, в данном случае может пригодиться?!

//
// CY7C63723C usb module 
//
Feb 28 03:59:32 book kernel: [409827.421055] usb 2-2: new low-speed USB device number 6 using uhci_hcd
Feb 28 03:59:32 book kernel: [409827.586124] usb 2-2: New USB device found, idVendor=0665, idProduct=5161
Feb 28 03:59:32 book kernel: [409827.586135] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 28 03:59:32 book kernel: [409827.586143] usb 2-2: Product: USB to Serial
Feb 28 03:59:32 book kernel: [409827.586149] usb 2-2: Manufacturer: Cypress Semiconductor
Feb 28 03:59:32 book kernel: [409827.628281] hid-generic 0003:0665:5161.0002: hiddev0,hidraw0: USB HID v1.00 Device [Cypress Semiconductor USB to Serial] on usb-0000:00:1d.0-2/input0
Feb 28 03:59:32 book mtp-probe: checking bus 2, device 6: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2"
Feb 28 03:59:32 book mtp-probe: bus: 2, device: 6 was not an MTP device


                                                                         
tag: avr, avr-gcc, usb, cypress, 
 

Share this post


Link to post
Share on other sites

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

  • Сообщения

    • Добавлю к нему отличный тор (28-0-28)*2, 3 А. Первичка на 230 В, ток хх 8 мА, бесшумный как ниндзя. Просадка на номинальном токе всего 1,5 В. Ценник тора отдельно 3500, в комплекте с УМЗЧ 3000.
    • про дорогу говорил - отреж землю - где соединена на выходе , осцилку нужно мерить на истоке транзистора - а не МС , нагрузить нужно обе обмотки .  и токовый шунт - убавить , раз десять говорил) 
    • то как они сейчас играют меня устраивает.   вот тут и далее по тексту требуется перевод
    • Тебе лучше знать... Его мог заметить только тот, кто его туда подложил... Даже сама баба его не заметила.
    • Единственный способ устранить помехи - хорошее заземление, сетевой фильтр на входе и моторный дроссель на выходе. Высшие гармоники - ферритовые кольца, просто тупо надеть на кабель трёх фаз ( без земли)  на входе и выходе. Отцепите землю со всех сторон, залезьте в настройку "частота шим" и задерите её до максимума, это  16 до 30 кГц, в зависимости от качества. Обычно стоит 4 =8 кГц.. Проверьте нет ли сетевого фильтра внутри частотника, некоторые модели имеют встроенный фильтр - она вообще идёт как опция по заказу практически у всех фирм.
    • Запараллелить штуки 4-ре.,в инверте. Передними буфер, который сможет на низкоомную нагрузку. Буфер с ФНЧ, как у dekko. Но это не композит и я так с 2050 не пробовал ))
  • Similar Content

    • By Ivarrr
      Помогите понять где ошибка... не получается реализовать попеременный опрос 2ух каналов АЦП. Данные с одного канала должны передаваться на первый индикатор как напряжение, а со второго, соответственно на второй индикатор как сила тока.
       
      #define F_CPU 8000000U
      #include <avr/io.h>
      #include <avr/interrupt.h>
      #include <stdlib.h>
      #include <util/delay.h>
      #define INDICATOR PORTD
      #define RANK PORTB
      unsigned int UR1=0, UR2=0, UR3=0, UR4=0; //переменные для деления на разряды значения напряжения
      unsigned int IR1=0, IR2=0, IR3=0, IR4=0; //переменные для деления на разряды значения силы тока
      int GainControl=1;
      int current_ch=0;
      float I, U;
      unsigned char voltage, current;
      unsigned int NUMS [10] = {0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000}; // от 0 до 9
      int main(void)
      {
          DDRB=0xFF; PORTB=0x00; //ножки порта B для разряда
          DDRC=0x00; PORTC=0x00; //ножки порта C для АЦП
          DDRD=0xFF; PORTD=0xFF; //ножки порта D для индикаторов
          
          TCCR0 |= (1<<CS01); TCCR0 &= ~((1<<CS00) | (1<<CS02)); //настройка частоты таймера f/8
          TIMSK |= (1<<TOIE0); //разрешение прерываний по переполнению таймера
          TCNT0=0; // обнуление счетчика
          
          ADCSRA |= ((1<<ADEN) | (1<<ADSC) | (1<<ADPS2)); // запуск АЦП, запуск преобразования, предделитель 16
          ADCSRA &= ~((1<<ADFR) | (1<<ADIF) | (1<<ADPS1) | (1<<ADPS0)); // режим преобразвания прерывестый, флаг перобразования опущен, предделитель 16
          ADMUX |= ((1<<REFS0) | (1<<REFS1)); //источник опорного напряжения 2.56В
          ADMUX &= ~((1<<ADLAR) | (1<<MUX0) | (1<<MUX1) | (1<< MUX2) | (1<<MUX3)); // направление записи, измерительная ножка ADC0;
          
          sei(); // вкл прерывания
          while (1) 
          {
              if (ADCSRA & (1<<ADIF))
              {
                          U_Convert((U*5.00/1024)*100);
                          I_convert((I*5.00/1024)*100);
              }
          }
      }
      void U_Convert (unsigned int U_num)  //деление на разряды напряжения
      {
          UR1=U_num/100;
          UR2=U_num%100/10;
          UR3=U_num%10;
      }
      void I_convert (unsigned int I_num) //деление на разряды тока
      {    IR1=I_num/100;
          IR2=I_num%100/10;
          IR3=I_num%10;
      }
      ISR (TIMER0_OVF_vect)
      {        
          if (GainControl == 1) {INDICATOR = 0b11111110; RANK = NUMS[UR1];} //отображение 1ого разряда напряжения
          if (GainControl == 2) {INDICATOR = 0b11111101; RANK = NUMS[UR2];} //отображение 2ого разряда напряжения
          if (GainControl == 3) {INDICATOR = 0b11111011; RANK = NUMS[UR3];} //отображение 3ого разряда напряжения    
          if (GainControl == 4) {INDICATOR = 0b11110111; RANK = NUMS[IR1];} //отображение 1ого разряды силы тока
          if (GainControl == 5) {INDICATOR = 0b11101111; RANK = NUMS[IR2];} //отображение 2ого разряды силы тока
          if (GainControl == 6) {INDICATOR = 0b11011111; RANK = NUMS[IR3];} //отображение 3ого разряды силы тока
          GainControl++;
          if (GainControl > 6) GainControl=0; //  мониторинг переменной для управления затворами    
      }
      ISR (ADC_vect) 
      {
          if (current_ch == 0)
            {
                U = ADC;
                voltage = (U*2.56/1024)*100;
                ADMUX |= (1<<MUX0);
                current_ch = 1;
                ADCSRA |= (1<<ADSC);
            }
            else
            {
                I = ADC;
                current = (I*2.56/1024)*100;
                ADMUX &= ~(1<<MUX0);
                current_ch = 0;
                ADCSRA |= (1<<ADSC);
            }
      }
    • By Обычный Человек
      Микроконтроллер ATmega328p, внешний кварц 16МГц. Компилятор avr-gcc с оптимизацией O1

      Написал код для управление шаговым двигателем. Работает так: требуемая скорость задается переменной STP1_ReqSpeed, дальше с частотой 100Гц срабатывает таймер TIM0, который высчитывает с какой частотой надо подавать сигналы на вход шагового драйвера. TIM1 работает в режиме частотно импульсной модуляции и по прерыванию меняет значение пина на противоположное.

      Управление работает, скорость регулируется, но по какой то причине случаются пропуски шагов. Чаще всего во время ускорения. Количество пропусков от 0 до 4, обычно 2-3, длятся 32мс.

      Из кода вырезал неиспользуемое. Заменить прерывания на аппаратный ШИМ возможности нет. Как убрать эти пропуски?
      Осциллограммы:
       
       
    • By Игорь Аксенов
      1.Не будет ли конфликта питания при одновременном подключении к ПК  stlink(UART) 3.3V и usb 5V (Узнал , что внешнее(5V)  недопустимо с USB).
         А про USB+stlink(UART)  честно долго искал, но так и не нашел.
      2. На USB: кто будет хабом(ПК или микроконтроллер) , а кто устройством.
    • By Tuxford
      С помощью STM32CubeMX сгенерил самый примитывний проект чтобы что-то принять-передать по USB. Все бы ничего, но обмена не происходит, хотя в системе устройство видно.
      Шаг за шагом обнаружил что приходит прерывание SOF, и просто скидывается. На этом финиш. И так постоянно. Находил проекты по эти борды (Blue pill, STM32 Smart), где собственно все то же. Но нифига не рабтает.

      Что же такого особенного в этом MCU особенного чтобы USB работал?
      PS. Пробывал делать тоже на STM32L4-Discovery. Работает старта. В чем разница?
      IOC в атаче.
      TestBP.ioc
    • By Артур Измаилов
      1.Создать схему в которой два светодиоды загораются в следующей последовательности:  1 и 2, 2 и 3, 3 и 4, …, 15 и 16, 1 и 2 и т.д. (т.е. создается эффект движения двух светодиодов).
      Дано условие выше. Решение задачи нужно представить в Proteus. Код для программирования пишу в AtmelStudio 7. Схему собрал в Proteus. Вывел 16 светодиодов через 2 порта (Порт B и Порт D). МК использовал ATMEGA 8 вариации в корпусе DIP с 28 ножками (SPDIL28). 
      До этого смог написать схему, чтобы работали светодиоды в последовательности 1.2.3.4.5....16.1.2.3.4 и тд. Делал через оператор FOR. Однако с этим кодом начались проблемы. Помогите пожалуйста. 
      Нижу представил изображение кода. 
      Заранее спасибо!
       

×
×
  • Create New...