dron-r

Stm32F4 И Usb - Схема

7 сообщений в этой теме

dron-r    13

Добрый день.

Есть несколько вопросов по созданию USB соединения ПК и STM32F4. Использоваться будет разъем microUSB. Соединение нужно только для заливки прошивки и считывания данных из памяти (внешней), следовательно плата должна определяться к периферийное устройство (режим хоста не требуется).

1. Куда нужно девать ногу ID на разъеме? Оставить не соединенной ни с чем или припаять на землю? В схеме с STM32F4DISCOVERY в STLink она припаяна к земле. В схеме с самим МК она идет в контроллер. А где-то вообще читал, что ее можно оставить висящей.

2. Нужно ли ставить внешний кварцевый резонатор? На странице 185 в параграфе "USB OTG full speed (FS) interface solutions" на рисунке он вроде как указан (выводы OSC_IN и OSC_OUT), но так и не ясно, нужно ли и на какую частоту. В Дискореви стоит на 8MГц, хотя где проскакивала цифра в 48МГц.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
optima    215

8мГц внешний кварцевый резонатор, а настройки умножителей и делителей вы должны настроить таким образом, что бы модуль usb был затактирован частотой 48 мГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Вуйко    11

Припаять ногу на землю. В контроллер ее стоит заводить только если есть необходимость использовать USB в OTG режиме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ukr823f    4

Хотел бы спросить, по USB. Делал USB на процессоре STM32F103C8T6, проекты тестовые делал и с помощью Coocox на SPL и с помощью CubeMX, пробовал сделать USB CDC устройство...Так вот как бы я не изощрялся, при подключении к компу - в винде выскакивает unknow device и всё. Драйвера для CDC устанволены. линии D+ и D- идут на ноги проца через резисторы 30Ом, линия D+ подтянута к 3.3В резистором 1.5К. Кварц - 8МГц.... Что может быть, уже всё перепроверил но толку ноль. Stm32F4 Discovery при такой же попытке сразу же выдёт Com Port STM electronics.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Вуйко    11

А драйвера точно правильно установлены? Там сначала ставятся сами установщики драйверов, а уже потом нужно выбрать из них необходимые драйвера и установить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ukr823f    4

А драйвера точно правильно установлены? Там сначала ставятся сами установщики драйверов, а уже потом нужно выбрать из них необходимые драйвера и установить.

Да, распаковал, а потом уже установил. Дело в том что есть disciveryF4, так вот там сразу после конфигурации проекта в кубе устройство опрежеляется в компе как COM порт, а вот 103 почему то сходит с ума... Пробовал уже и с питанием от USB, и с питанием от внешнего источника напряжения запитывать устройство....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Anton Klapatun
      День добрый!
       
      Имеется sim-карта со статическим IP и модем SIM800C, который через UART соединен с STM32F0.
      Прочитав статью на хабре, которая и являлась отправной точкой, было решено повторить подвиг, но в версии lwip 2.0.3, которой я пользуюсь, ppp изменился до неузнаваемости, что сначала внесло некоторый сумбур. Но в документации к lwip был найден текстовый файл с настройкой ppp-соединения (ppp.txt, прикреплю его ниже), в котором было все, что нужно для счастья, но когда модем начал общаться с контроллером, дальше фазы LCP дело не зашло. Как я понял из документа (ppp_connect.docx), который оказался у меня уже-и-не-помню-откуда, после конфигурирования параметров соединения в фазе LCP контроллер должен посылать в модем пакет с заголовком PAP (C0 23), но он почему-то этого не делает... Он вообще больше ничего не делает. Я пытался проследить в отладчике весь путь запроса, что приходит от модема, но это только больше меня запутало.
      Собственно, прием данных у меня организован через прерывание. После ввода AT-команды "ATD*99***1#" и получения ответа "CONNECT", устанавливается флаг "ppp_enable" и при приходе байта он кладется в очередь `xQueue_PPP_Package`.
      void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { uint8_t u8; if(huart == &huart1) { if (ppp_enable == true) { portBASE_TYPE xHigherPriorityTaskWoken_PPP_Rx; u8 = Sim800.UsartRxTemp; xHigherPriorityTaskWoken_PPP_Rx = pdFALSE; xQueueSendFromISR(xQueue_PPP_Package, &u8, &xHigherPriorityTaskWoken_PPP_Rx); } else { /*Reception of AT commands*/ } HAL_UART_Receive_IT(&huart1,&Sim800.UsartRxTemp,1); } } В задаче `StartLwIPTask` в бесконечном цикле проверяется эта очередь и при появлении элементов, записывает их в массив `PPPx.Data` и при фиксации второго HDLC-заголовка (0x7E), отправляет данные в lwip функцией `pppos_input`.
      P.S. Переменная `PPPx.Last_Index` это размер пришедшего ppp-пакета.
      void StartLwIPTask(void const * argument) { /* USER CODE BEGIN StartLwIPTask */ /*Создаем очередь*/ xQueue_Sim800_Package = xQueueCreate(128, sizeof(uint8_t)); xQueue_PPP_Package = xQueueCreate(128, sizeof(uint8_t)); uint8_t u8=0; volatile int setup = 0; tcpip_init( NULL, NULL ); /*Инициализация стека tcp/ip*/ /*Create a new PPPoS interface*/ ppp = pppos_create(&ppp_netif, output_cb, status_cb, 0); // /* Auth configuration, this is pretty self-explanatory */ ppp_set_auth(ppp, PPPAUTHTYPE_PAP, "beeline", "beeline"); /* Require peer to authenticate */ ppp_set_auth_required(ppp, 1); /*Only for PPPoS, the PPP session should be up and waiting for input.*/ ppp_set_silent(ppp, 1); /* * Initiate PPP listener (i.e. wait for an incoming connection), can only * be called if PPP session is in the dead state (i.e. disconnected). */ ppp_listen(ppp); /* Infinite loop */ for(;;) { if (sim800_init() == S_RESET) /*Настройка модуля Sim800*/ continue; for (;;) { if (pdPASS == xQueueReceive(xQueue_PPP_Package, &u8, 100/portTICK_RATE_MS)) { if (u8 == 0x7E) t++; PPPx.Data[PPPx.Last_Index++] = u8; if (t==2) { PPPx.Last_Index--; pppos_input(ppp, PPPx.Data, PPPx.Last_Index); t=0; memset(&PPPx, 0, sizeof(PPPx)); } } } } /* USER CODE END StartLwIPTask */ } Как я писал выше, все идет хорошо, пока идет фаза LCP, но после подтверждения контроллера запроса опций, наступает тишина.
      В интернете мне удалось найти довольно мало исчерпывающей информации и примеров по связке stm32+lwip+ppp, если кто-нибудь занимался подобным или сталкивался с похожей проблемой, буду очень признателен за помощь и за пинки в нужном направлении. Заранее спасибо.
       
       
      ppp.txt
      ppp_connect.docx
    • Автор: Kiraspbkiev Kira
      День Добрый. Есть два вопроса от новичка: 1) Правильная ли схема сделанная мною? 2) если схема верна то как правильно подключить к atmega328p-mu usb на чипе cp2102-grm?
      На схеме колодка JP1 это AVR ISP а JP2 это UART
      С проектированием столкнулся в первый раз, цель узнать что то новое и сделать своими руками:)

    • Автор: agbp
      Приветствую! 

      Мы - молодой стартап из Санкт-Петербурга с хорошей финансовой поддержкой. Создаём дроны.
      Нам не хватает серьезного программиста на полный загруженный график (можно удаленно). 

      Из основных задач, которые нужно будет решать: 
      1. Программа отслеживания объекта в видеопотоке (процессор STM32F4xx). 
      2. Программа стабилизации БПЛА по данным с гироскопа и наведение на цель. 
      3. Создание программы управления бесколлекторным двигателем по закрытому контуру с возможностью бесшовной интеграции с программой просчёта траектории ЧПУ станка. 
      4. Программирование бортового комплекса управления БПЛА (автопилот) 
      5. Полный пакет работ по созданию бортового и наземного комплексов управления роем БПЛА. 
      Оформление в штат. 
      ЗП обсуждаема, от 60 000 в месяц.
      P.S. дроны, беспилотники, авиамодели... это только начало!
    • Автор: dsotm
      Подключаемый через mini Usb Lcd дисплей для компьютера. Позволяет выводить различную информацию на экран. Проверялось в Windows (Lcd Smarie, AIDA64) и Linux (LCDProc, lcd4linux). 
      Платы немного с дефектом - для удобства подключения usb пришлось сточить уголок. Кабель miniUSB к комплект не входит.
      Позволяет подключать к компьютеру дисплеи 1602 или 2004 на контроллере hd44780 (самый распространенный).
      Цены:
      Без дисплея - 600 С дисплеем 1602 - 700 С дисплеем и металлическим корпусом - 900 Демонстрация работы
      Пересылка по РФ почтой + 250.
      Самовывоз - Краснодар.




    • Автор: Djanger
      Приобрёл "NUCLEO-F030R8, Отладочная плата на базе MCU STM32F030R8T6 (ARM Cortex-M0), ST-LINK/V2-1, Arduino-интерфейс"  хочу приобрести два модуля к ней но не знаю о совместимости , кого спрашиваю сомневаются и не отвечают уверенно, 1 модуль это 3,2 TFT ЖК дисплей сенсорный , а второй 8 бит LED 8 бит цифровой Tube 8-разрядный ключ. Кто что может подсказать или посоветовать прошу помочь