Как всегда информативно и доходчиво, большое Вам спасибо. Надеюсь в будущих уроках будет пролит свет на USB интерфейс.
@NRelectronics5 жыл бұрын
Большое спасибо! По USB обязательно будет видео с примерами.
@pavelboboshkin38988 ай бұрын
@@NRelectronics, я пытался подключить флешку к контроллеру stm32F105, чтобы обновлять прошивку. Результат посредственный - работает только одна флешка из пяти, что для меня не приемлемо. Поэтому сделал обновление прошивки через SD карту. Не подскажите, в чем может быть проблема? Зато, эксперименты с stm32F407 оказались более успешными - заработали все флешки.
@NRelectronics8 ай бұрын
Если вы говорите о flash-памяти, то они через чур бывают по структуре внутри разные, а если ещё она QSPI, то может множество приколов, типа пнуть в SPI режиме, чтобы просто заработала в QSPI)))
@pavelboboshkin38988 ай бұрын
@@NRelectronics , да при чем здесь spi и qspi? Речь про то, что большинство USB флешек не хотят работать с F105. Внутреннее устройство флешек не имеет значения, микроконтроллер подключен только к usbD+, usbD- и питанию. Ничего "пнуть" внутри флешки я не могу. Я хоть и предпочитаю программировать периферию используя только CMSIS, USB - исключение, так как очень сложен. А в драйверах usb host, которые предоставляет CUBEIDE для F105/F107 есть какие то ошибки. Подозреваю, что эти ошибки ST специально не исправляет, чтобы люди переходили на более современные микроконтроллеры.
@NRelectronics8 ай бұрын
Когда не указывают что флешки USBовые, то тогда имеют ввиду SPI/QSPI. Договорённость. Если есть ошибки поправьте их, расскажите нам, я могу помочь рассказать об этом и ролик сделать для всех.
@ваняхилевич5 жыл бұрын
Спасибо, за интересные уроки)
@NRelectronics5 жыл бұрын
Пожалуйста) Не забывайте про лайки.
@ПетрГуберт5 жыл бұрын
На заднем фоне кто-то настойчиво требует внимания)) Урок интересный, спасибо!
@NRelectronics5 жыл бұрын
Спасибо за оценку моей работы, не забывайте про лайки)) На заднем фоне, через стенку, никак не успокоится будущий зритель моего канала ;-)
@openFrimeTv8 ай бұрын
хотелось бы послушать про DMAMUX. как по мне немного умудрённая штука, пока до конца не разобрался(
@NRelectronics8 ай бұрын
возможно будет, но в ближайшее время точно нет.
@openFrimeTv8 ай бұрын
@@NRelectronics понял, хорошо
@NRelectronics8 ай бұрын
Почитайте AN5224 от st.
@openFrimeTv8 ай бұрын
@@NRelectronics та я читал, но там все равно не понятно про генератор запросов. слишком много цепей получается
@NRelectronics6 ай бұрын
Тогда ещё искать инфу. Только так.
@NIKOLAY_PSHONIA2 жыл бұрын
Подскажите после передачи данных через DMA - буфер пуст. Так и должно быть? Он опустошает или копирует? Спасибо.
@NRelectronics2 жыл бұрын
он должен очищаться, иначе к какому-то времени произойдет переполнение со всеми вытекающими...
@pavelboboshkin38988 ай бұрын
Расскажите про dmamux, который появился в новых микроконтроллерах ST. Вещь приятная - теперь распределение каналов DMA по разной периферии перестало быть квестом. Теперь любой канал DMA можно подключить к любой периферии. Но есть и непонятные моменты: синхронизация и request generatot. Никак не могу придумать, для чего это вообще может понадобиться.
@NRelectronics8 ай бұрын
Это надо где-то к STM32H7. Пока не планирую. Но учту. Спасибо
@NIKOLAY_PSHONIA3 жыл бұрын
Добрый день. Запустил DMA на передачу - шлет весь буфер [128] . А как передать из буфера несколько символов а не весь гнать??? Спасибо.
@NRelectronics3 жыл бұрын
Добрый день. Выбор из буфера по адресу элемента ;)
@NIKOLAY_PSHONIA3 жыл бұрын
@@NRelectronics в мануале написано что какой размер задали в DMA_BufferSize = 128; // размер буфера столько раз по 8 бит и будет передаваться. Каждый раз задавать размер - сколько символов ??? или есть другой подход??? СПАСИБО.
@NIKOLAY_PSHONIA3 жыл бұрын
сделал так мож кому пригодиться void uart1_dma2_TX(uint8_t razmer) // настройка DMA на передачу данных опред. длины { DMA_Cmd(DMA2_Stream7, DISABLE); // Выключаем DMA. DMA2_Stream7->NDTR = razmer; // Устанавливаем размер передаваемого буфера заново. DMA_Cmd(DMA2_Stream7, ENABLE); // Включаем DMA - сразу передаються }
@pavelboboshkin38988 ай бұрын
Я использую DMA, запускающийся от таймера для отладки интерфейсов, например, usart или i2c. DMA захватывает состояние GPIOx->IDR и складывает в буфер. Потом, по полученным данным делаю графики. С таким, конечно, и логический анализатор справится. Но логический анализатор не может заглянуть, например, в регистр флагов интерфейса. К сожалению, в контроллерах серий G0 и C0 фирма ST подложила свинью: там DMA не имеет доступа к GPIO.
@NRelectronics8 ай бұрын
Здорово, хорошо.
@serg888fert43 жыл бұрын
здравствуйте. подскажите, пожалуйста, откуда примеры программ в этом ролике. из апноутов и референсов? ссылки можно на них? по stm32f103. спасибо.
@NRelectronics3 жыл бұрын
Здравствуйте. Сейчас по памяти не подскажу. Извините, но примеры которых нет под видео, доступны только по подписке на моем канал с подпиской - "Полный доступ"
@y_ivan4 жыл бұрын
При работе через DMA, как осуществлять контроль отправки данных? Если после функции HAL_UART_Transmit_DMA создать новую функцию HAL_UART_Transmit_DMA с другими данными, то они как правило теряются.
@NRelectronics4 жыл бұрын
Так если сразу создать без контроля флагов то понятно что будет переполнение...
@studentru27675 жыл бұрын
@NR.electronics здравствуйте как можно с вами связаться вк есть ? очень нужно помощь ваши (
@NRelectronics5 жыл бұрын
В описании к каналу есть все необходимые ссылки.
@studentru27675 жыл бұрын
@@NRelectronics +79096828171 пж позвоните )
@studentru27675 жыл бұрын
@@NRelectronics не могу найти ссылки на ваши профиль (
@janedoe61823 жыл бұрын
22:10 Точно, "алижнмент"? Может "алайнмент"?
@NRelectronics3 жыл бұрын
Точно алайнмент)
@OrlenokV4 жыл бұрын
Спасибо большое за видео! Хотел бы узнать в каких случаях (примерах из жизни) используется прерывание по завершению половины обмена?
@NRelectronics4 жыл бұрын
На приятное обучение) не забывайте про лайки ;-) у меня по половине обмена случаев не было. По окончанию обмена как самый частый вариант.
@Bi-dj3iy Жыл бұрын
Боюсь спросить Ваш опыт работы сколько лет?
@NRelectronics Жыл бұрын
Фиг его знает, а что?))
@Bi-dj3iy Жыл бұрын
@@NRelectronics да просто мне кажется что бы так непринужденно рассказывать про каждый элемент "что куда" нужно перед этим лет 10 практики
@NRelectronics Жыл бұрын
Спасибо за приятные слова!
@1975nacgul6 ай бұрын
27:00 7 микросекунд это быстро? при тактах 10 наносекунд?
@NRelectronics6 ай бұрын
А вы хотели чтобы были наносекунды? Их естественно не будет.
@1975nacgul6 ай бұрын
@@NRelectronics это получается 700 тактов при 100 мгц? С какой скоростью идет передача от АЦП в память при циклической передачи? Например мы оцифровываем сигнал.
@NRelectronics6 ай бұрын
Калибровка АЦП, преобразование, предварительное сохранение, подготовка и работа DMA. Вот и набегает.
@1975nacgul6 ай бұрын
@@NRelectronics то чтоту вас в таблице там память - память, ADC-память быстрее должно быть, не ниже скорости шины данных.
@NRelectronics6 ай бұрын
Flash Latency тоже никто не отменял.
@ivanrusev22703 жыл бұрын
Я настроил АЦП и ДМА в прерівании . И записал сбытие Если буфер больше 525 то в порт запись 1 иначе 0.Программа работает ну как то не правильно.Вращаеш резистор нажимаешь ресет.И тогда показует состояние светодиода.Почему так работает?
Не забывайте про лайки и конструктивные предложения ;-)
@ваняхилевич5 жыл бұрын
Будут ли уроки про таймеры и АЦП\ЦАП ?
@NRelectronics5 жыл бұрын
Отдельно по таймерам, в нескольких частях ибо тема большая и их у STM32 куча, отдельно по АЦП и отдельно по ЦАП. Только вот в F103 ЦАПа то нет, тогда на F4 покажу.
@studentru27675 жыл бұрын
@@NRelectronics здравствуйте как можно с вами связаться вк есть ? очень нужно помощь ваши (
@pavelboboshkin38988 ай бұрын
@@NRelectronics , ЦАП есть в stm32F103 с объёмом флешь памяти 256к или больше.
@NRelectronics8 ай бұрын
Да, но у меня такого МК нет, поэтому показать никак не могу. Поэтому нет.