Перейти к содержанию

    

hd44780

Свой
  • Публикаций

    1 210
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о hd44780

  • Звание
    Профессионал
  • День рождения 30.06.1977

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Донецк, ДНР

Посетители профиля

4 502 просмотра профиля
  1. STM32 USB HID Host

    Как я понимаю, сперва надо понять, как работать с хабами, чтобы проц: 1. Распознал хаб 2. Понял, что к хабу подключена клавиатура. Но лично я этим пока не занимался. Как по мне гораздо более актуальны радиомыши (они отличаются от проводных) и комплекты клавиатура+мышь (составной USB-девайс, ST-шная "фиговинка" их вообще не понимает).
  2. STM32 USB HID Host

    Нужна голая клава, разные радиогибриды с мышами и прочей хренью скорее всего работать не будут, т.к. там другие протоколы. А ST-шный драйвер очень примитивный, он такого не понимает. Например, комплект клава+мышь это уже не простой HID девайс, а композитное устройство из 2-х девайсов, драйвер должен такое понимать. Но он даже на простой радиомыше скорее всего споткнётся, не говоря уж про радиокомплект.
  3. STM32 USB HID Host

    Странно, я использовал старые, докубовые ST-шные либы, там в одном флаконе мышь+клава, у меня и те и те работали. Но ассортимента клав у меня нет, потому по стабильности я сказать не могу.
  4. STM32 USB HID Host

    угу, было дело ... пришедший мышиный пакет с данными отбрасывается как невалидный, если он старее периода, указанного в дескрипторах мыши. Драйвер HID класса просто уходит на следующий цикл опроса и не передаёт пакет на дальнейшую расшифровку.
  5. STM32 USB HID Host

    Делал на Ф105 USB мышу, всё пашет, ни в какие дебри с эндпоинтами и прочим не лез. Но есть один значительный нюанс. Функцию USB_HostProcess обязательно вызывать не реже того периода, который задан в дескрипторах мыши. Типовая величина этого периода - 10 мс. Проще говоря, Вы обязаны дёргать эту функцию не реже одного раза в 10 мс. Можно чаще. Иначе драйвер класса будет отбраковывать приходящие пакеты. Я пробовал убрать отбраковку - курсор мыши прыгает, как пьяный заяц по дороге. Возможно именно это Вы и имели в виду. USB_HostProcess можно вызывать и в таймере (проверял на ф439, должно и на ф105 работать), но лично мне этот способ не нравится. Почему - не знаю. Просто не нравится.
  6. STM32H7 работа с SDRAM. Проблема

    Да, вышло не особо - насколько именно - сказать сложно. Земляные полигоны есть. H7 пока не делали, щупаю помаленьку на NUCLEO плате.
  7. STM32H7 работа с SDRAM. Проблема

    На двухслойке вообще не выравнивал (авторазводка альтиум :D ) - хреново вышло... F439IIT6 + 16 бит SDRAM завёлся только на 66МГц, на 90 - сплошные глюки. 32 вообще нигде не разводил. Сейчас сижу на F439+16бит SDRAM 4 слоя, 90 МГц - идеально работает. Выравнивание длин - на 100% конечно, на стм32 с их идиотским разбрасыванием пинов FMC буквально по всем сторонам проца по-моему идеально и не сделаешь. Там ещё и LTDC дисп висит 24 битный. Конечно 24 бит дисп при 16 битной памяти - неразумно, но когда делали, ещё не понимали до конца.. Ну да ладно.... Работает в RGB565 режиме хорошо.
  8. STM32H7 работа с SDRAM. Проблема

    Слышал, заказывали такое у китайцев. Но дорого. Сам не заказывал, пока 4-х слоек, LQFP и 16-бит SDRAM хватает.
  9. Bluetooth AT-09 (HM-10 module)

    Так... Без перепрошивки, на том, что есть нащупал как искать устройства рядом и подключаться к какому-то из них. Данные туда-сюда бегают. Теперь проблема - как отключиться :))) Пока отключился обесточиванием одного из модулей, но это жесть :wacko:
  10. Bluetooth AT-09 (HM-10 module)

    В интернете эти модули прошивают через ардуину - ардуины у меня нету, но есть USB-уарт переходник и мега328. Ну либо фирмовым дебаггером-прошивальщиком от TI за 50 вечнозелёных бумажек. Расковырял те посты, исходники ардуино-скетча, увидел, что эти ребята перешивают модуль не через уарт, а ногодрыгом через debug пины, ретранслируя туда байты, прилетевшие в ардуину по уарту с компа. Я правильно понял? Надо наваять этот горе-программатор чтобы перепрошить модуль? Пост - http://forum.arduino.cc/index.php?topic=393655.0 + https://github.com/bjoerke/HM-10-Firmware/w.../flash-firmware Скетч-перекодировщик - https://github.com/RedBearLab/CCLoader/tree...rduino/CCLoader Прога для компа - https://github.com/RedBearLab/CCLoader
  11. Bluetooth AT-09 (HM-10 module)

    Привет всем. Обзавёлся я парой таких блютуз модулей - https://www.ebay.com/itm/AT-09-Bluetooth-4-...~cAAOSwiqJZebYF Доки в инете вроде вагон, скачал ДШ, подключил к компу для начала, начал подавать команды ... На многие команды модуль тупо не отвечает (понимать буквально - в ответ ни одного байта, работаю под Serial монитором), на другие ответ ERR. На команду AT+HELP он выдаёт: ******************************************************************* * Command Description *---------------------------------------------------------------- * AT Check if the command terminal work normally * AT+DEFAULT Restore factory default <0>* AT+BAUD Get/Set baud rate * AT+RESET Software reboot * AT+ROLE Get/Set current role. * AT+DISC Disconnect connection * AT+ADVEN Broadcast switch * AT+ADVI Broadcast interval * AT+NINTERVAL Connection interval * AT+POWE Get/Set RF transmit power * AT+NAME Get/firmware,firmware, device name * AT+LADDR Get local bluetooth address * AT+VERSION Get bluetooth, HCI and LMP version * AT+TYPE Binding and pairing settings * AT+PIN Get/Set pin code for pairing * AT+UUID Get/Set system SERVER_UUID . * AT+CHAR Get/Set system CHAR_UUID . * AT+INQ Search from device * AT+RSLV Read the scan list MAC address * AT+CONN Connected scan list device * AT+CONA Connection specified MAC * AT+BAND Binding from device * AT+CLRBAND Cancel binding ******************CN Number of scanned list devices * AT+SLEEP Sleep mode * AT+HELP List all the commands * --------------------------------------------------------------- ********************************************************* Посмотрел версию AT+VERSION - ответ "MLT-BT05-V4.4". Думаю - старьё, на сайте уже 6.06 лежит - http://www.jnhuamao.cn/download_rom_en.asp?id= Начал обновлять, ни на команду "AT assistant", ни на "AT+SBLUP" в ответ ни одного байта :( Соответственно прошивальщик не пашет, ругается - не могу подключиться. Может кто-то объяснить, как этой хреновиной работать?? Насколько я понимаю, чтобы к чему-то одключиться я должен провести поиск доступных устройств. Но как? Может я чего недогоняю? На модуле есть нога EN - может на неё что-то подавать надо? В инетах про неё вообще ничего не пишут. Спасибо. PS Команда AT+NAME пашет, а толку с неё? :biggrin:
  12. LTDC плюс MIPI-DPI интерфейс

    У RGB дисплеев, с которыми работает ST-шный LTDC никакого буфера нет вообще. Т.е., чтобы там вообще что-то отображалось, неважно, статичное оно или динамичное, нужно, чтобы на дисплей кто-то постоянно гнал картинку. Именно это и делает блок LTDC. Он постоянно читает данные из фреймбуфера и гонит их на дисплей. Сам фреймбуфер вы можете располагать где угодно - или во флэше проца (для какой-то статичной картинки), либо во внешних SRAM/SDRAM. Адрес фреймбуфера задаётся при конфирурировании самого LTDC (точнее его слоя). После этого туда лезть не надо, он сам читает указанную память и гонит её содержимое на дисплей. А рисование на таком дисплее - просто запись данных, описывающих пиксели в фреймбуфер. Ну плюс разные фенечки, которые даёт DMA2D. Но для полноценной работы DMA2D и 2-х слоёв необходима 32-битная память, лично я с такой не работал, тонкостей не подскажу. Тут на форуме где-то была огроменная тема про DMA2D, поищите. MIPI-DPI - не знаю, не слышал.
  13. STM32H743 (NUCLEO) USB FS

    Кэш пока вообще не включал, DMA там вроде нет. А вот SET_BIT(PWR->CR3, PWR_CR3_USB33DEN); (то самый HAL_PWREx_EnableUSBVoltageDetector) действительно помог, спасибо. Шарманка сразу ожила, спасибо вам большое. Я добавил его туда же, где пины USB и прерывание USB инитятся. Пойду USB прикручивать, там в кубе чего-то нахимичено ... Надо на привычный diskio.c переделать, на 439 у меня там 3 накопителя без проблем крутилось (2 флэшки + SDIO).
  14. STM32H743 (NUCLEO) USB FS

    Привет всем. Есть плата NUCLEO-H743ZI. Пытаюсь запустить на ней USB (хост для флэшки, MSD в терминах ST) на данном чипе. За неимением никаких других примеров в качестве основы взял ST-шный куб. USB - FS, тот, который разведен на плате (пины проца PA11, PA12). Добавил куда надо управление питанием разъёма, светодиодик на плате засветился (также как и лампочка на флэшке). Дальше глухо - проц видит, что что-то подключено (срабатывает юзерский хук), но флэшка не проходит энумерацию (бесконечно крутится в тщетных попытках получения дескрипторов). Пробовал 2 примера - сгенеренный кубом и готовый FatFs_USBDisk_Standalone для платы STM32H743I-EVAL (естественно подчистив его от особенностей этой платы - ключ питания там управляется не напрямую пинами проца, а через I2C расширитель портов). Результат примерно одинаковый - висяк на дескрипторах. Проверял 2 флэшки, которые с полпинка запускаются на F439 и F105 процах. Но там работает старое USB ядро времён SPL. Для H7 этого драйвера просто нет. Кубовый драйвер на F1/F4 я никогда не пробовал (не было нужды, и без него всё в шоколаде), равно как и не пробовал запускать старый Fx драйвер на H7. Даже не знаю, совместимы ли они. Стек везде ставил 10 кил. FreeRTOS (и прочих аналогов) нет. После нескольких дней ковыряний выяснилось следующее: 1. Стек, по крайней мере, на первый взгляд ни при чём - детали ниже (п. 3). 2. Плата питалась от ST-Link-овского USB питания, которое у меня хз почему 4-4.1в. После прохождения всех ключей на плате на USB разъёме получалось порядка 3.7-3.8в, иногда и меньше. Маловато как-то. Подал на плату внешние 5в от компового БП, на разъёме увидел нормальные 5 вольт. Слава Богу, одной проблемой меньше. 3. Самая загадочная на текущий момент вещь. Выяснилось, что прервание USB НИКОГДА не возникает. Никогда от слова "вообще". Доказано отладчиком и точкой останова в обработчике. Точнее сказать - после шаманского бубна и фиг знает с какого перезапуска оно начинает возникать, и тогда всё чудесным образом начинает работать. Под "начинает работать" я подразумеваю то, что юзерский callback драйвера с именем USBH_UserProcess вызывается сколько положено раз, в том числе с аргументом равным 2, что, согласно кубового талмуда означает готовность флэшки к работе. FatFs пока не подключал. Пока дрова не начнут работать стабильно, пихать туда FAT имхо бессмысленно. Прерывания там включаются так (выдрано с куба и тамошних примеров): Код: /* Peripheral clock enable */ __HAL_RCC_USB_OTG_FS_CLK_ENABLE(); /* Peripheral interrupt init */ // HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0); // генерит куб HAL_NVIC_SetPriority(OTG_FS_IRQn, 6, 0); // Так написано в примере к плате STM32H743I_EVAL // HAL_NVIC_SetPriority(OTG_FS_IRQn, 1, 3); // это используется в F439 HAL_NVIC_EnableIRQ(OTG_FS_IRQn); Пробовал разные приоритеты - ничего оно не даёт :( Битика в самом USB, отвечающего за вкл/выкл прерываний (таковые есть и в SPI, и во всяких там уартах), я вообще не нашёл ... Может плохо искал? Могу выложить проект под атоллик, хотя там 99% ровно то, что генерит куб. Оставшийся 1% это включение светодиодиков платы нуклео, чтобы без отладчика можно было хоть как-то понять, что там творится... Кто-то пользовался USB хостом на H7, может я чего-то где-то не доделываю? Или может где-то есть какие-то другие примеры? В своё время на Ф4 мне сильно помог пример немца http://mikrocontroller.bplaced.net/wordpress/ (по факту он оказался немного переработанным ST-шным примером, но всё равно), но у него нет ничего для H7. Заранее благодарен.
  15. STM32H7 работа с SDRAM. Проблема

    Сам не делал, т.к. на моей плате NUCLEO-H743ZI SDRAM нет, но Вы можете глянуть, какие настройки производятся кубом. Я понимаю нелюбовь многих к этой софтине, но деваться некуда, других примеров просто нет. Кроме того, в кубе есть примеры для платы STM32H743I_EVAL, на которой есть SDRAM чип. Можно там что-то подсмотреть. Я тоже сижу, раскуриваю разные примеры по кубу и тамошним платам...