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

hd44780

Свой
  • Постов

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

  • Посещение

Весь контент hd44780


  1. Засунуть TCP в UART

    Знатоки ESP8266 пишут, что его встроенный TCP ни в дугу не годится, почитайте специализированный форум - http://esp8266.ru/forum/ При каких-то "неправильных" обрывах связи он некорректно закрывает свои сетевые сокеты - сокет не закрывается и не подлежит повторному использованию. А т.к. сокетов у него всего 4 шт, то довольно быстро модуль может впасть в ступор и потребуется его полный перезапуск путём обесточивания. Ноги сброса у модуля нет (если я правильно помню). Про UDP я не помню :( Имейте в виду это обстоятельство. На том форуме даже написали свою библиотеку с исправлением этих багов и выложили исходники. Правда, на мой взгляд, та библиотека напоминает некий конструктор "Сделай сам", в котором куча всякой всячины и который надо подчищать и допиливать под свои цели.
  2. 2 вопроса: 1. Этот волшебный файл "tird-party .cpp" увидеть можно? 2. Симулятор не работает, а реальный процессор?
  3. По-моему, NVIC_ClearPendingIRQ(EXTI9_5_IRQn); в прерывании лишнее. Очистки бита в EXTI-PR вполне достаточно. и лучше загнать её внутрь ифа. Т.к. обработчик обрабатывает несколько прерываний.
  4. И снова SD card.

    Для Ф107 нету, есть для Ф105 (STM32F05RCT6). Читает/пишет норм. Могу дать вместе с прикрученной ФатФс. Но мой код не очень причёсанный. Выдрал из каких-то китайцев, немного переделал под себя. Соответственно хардварный лейер у меня не от Чена, а от тех китайцев. Я его вроде и не переделывал, только поменял SPL на регистры. SPL работало норм, но заметно тормозило на высокобитрейтных WAV типа stereo/48kHz (я плеер на VS1053 ваял). От чена только Fats. diskio.c тоже мой собственный, я туда ещё USB флэшку загнал (чего USB хосту зря пропадать-то :rolleyes: ).
  5. STM32F407 VirtualComPort

    Вам нужен CDC драйвер для винды? Я приложил микрочиповский, но это пофигу, он работает. Вот тут - http://www.st.com/web/en/catalog/tools/PF257938 есть драйвер от ST. mchpcdc.zip
  6. STM32F439 + USB мышь

    Не, флэшки у меня нормально вроде пашут. Знакомый, которому я дал свой драйвер, тоже не жаловался пока что ... Драйвер от СТ. Практически без изменений. Слегка допиленный, чтобы не впадал в ступор при смене флэшки.
  7. STM32F439 + USB мышь

    Не, пока не хаб. Просто так или то или то. Хабовый протокол я ещё даже не читал пока :( .
  8. Посмотрите http://geektimes.ru/post/255316/ Может чего полезного найдёте.
  9. STM32F439 + USB мышь

    Сделал флэшки на новой либе. На всех моих платах и процах пашет норм. Теперь пошёл делать, чтобы хост понимал и мышку и флэшку одновременно. Т.е. без перекомпиляции и перепрошивки.
  10. http://www.st.com/web/en/catalog/tools/FM1...LN1734/PF257882 - USB либа без куба. Правда, надо очищать руками от разного "ненужного" хлама. Под хламом я подразумеваю привязку того софта к платам типа STM3243x9I-EVAL - тамошние кнопки, дисплеи и т.д.
  11. USB HID

    Вам надо сделать корректную переинициализацию USB и всех потрохов, если устройство было отключено от USB. Я чинил родственную проблему в хосте флэшек - если флэшку выдернуть и вставить по-новой, то она уже не опознаётся. Потому что ребята недопилили деинициализацию.... У Вас, видимо, что-то родственное. Я, правда, использовал СТ-шные либы, а не ТМ, но они наверное, друг у друга переписывают ... Детально подсказать не могу, извините. Девайсы я не делал.
  12. STM32 и принтер

    Принтер и чековый принтер это разные вещи. Принтеры могут быть с LPT - тогда подключить легко - команды все давно известны, но если USB - имхо нереально. Протоколы у всех разные, даже если и раскурите какой-то один принтер, то только он один и будет работать. Чековые принтеры, в простонародье кассовые аппараты (КА) гораздо проще. Но опять же если он COM-портовый. Но в любом случае, надо знать протокол. Я работал (на компе, не на МК) с 3-мя КА, у 2-х из них протокол был один и тот же, у третьего совершенно иной. Поэтому, Granadoespada, потрудитесь объяснить, "что ты имела в виду"? Лично я ни фига не понял :( .
  13. STM32F439 + USB мышь

    В USB либах SPL есть только в 2-х местах: 1. Файл usb_bsp.c - инициализация портов, прерываний, включение питания девайса и пр. 2. Файл usbh_usr.c, функция USBH_USR_UserInput. Там опрашивается какая-то кнопка, которой можно запретить работу хоста. На фига оно надо и как именно оно работает - я не знаю, я всегда эту кнопку выкидывал и безусловно разрешал работу хоста. В самом USB ядре никакого SPL нету, там всё на регистрах сделано, через макросы #define USB_OTG_READ_REG32(reg) (*(__IO uint32_t *)(reg)) #define USB_OTG_WRITE_REG32(reg,value) (*(__IO uint32_t *)(reg) = (value)) #define USB_OTG_MODIFY_REG32(reg,clear_mask,set_mask) \ USB_OTG_WRITE_REG32((reg), (((USB_OTG_READ_REG32(reg)) & ~(clear_mask)) | (set_mask)) ) И никогда я там SPL не видел, несмотря на вопли разных SPL-ненавистников. Попадались мне такие :) . Разные дисплеи, использующиеся в callback-ах я не рассматривал, т.к. эти вещи сильно от проекта зависят. Я, например, все PID/VID/... записываю в переменные, а потом использую, где надо (вывожу на дисплей в другом месте). PS. Я имею в виду только хосты. Девайсы я практически не делал, не могу сказать что там да как. Хотя, я думаю, что в этом отношении девайс от хоста не отличается.
  14. STM32F439 + USB мышь

    Я не знаю, я кубом почти не пользуюсь. Угу. Не говорите .. В кубе CDC Host есть. Но на простые либы переделывать геморно. Кстати, в новых (не кубовых) либах CDC хост появился. Так что, наверное, и у немца скоро появится . Я не проверял, пока неактуально.
  15. STM32F439 + USB мышь

    Не, куба я у него пока не видел. У него SPL и не кубовые USB либы. Глюки да, бывают. Тот же его пример USB мыши на Ф429 дискавери он работает нормально, а на моей плате на том же хосте он не пошёл. хз почему. Я не разбирался. Решил лучше время потратить на новые либы.
  16. STM32F439 + USB мышь

    Ну как сказать ... Лично я видел только примеры работы с USB флэшкой. На F4Discovery это простенький WAV плеер, на F429 Discovery показывает с флэшки BMP на дисплее и даже видео какое-то. Фирменных примеров работы с USB мышью/клавиатурой для дискавери я вообще не видел. Я находил один пример работы с USB-мышью для Ф4дискавери на ихнем форуме. Но там человек сделал практически то же самое, что я описал выше. Пример очень старый, мои мыши с ним вообще не работают. Но лично мне не нравятся архитектурные подходы, используемые СТ-шниками, да и я использую кокос, а под него по-любому приходится многое перепахивать хотя бы из-за отличий в компиляторе того же иара и GCC. Из сторонних примеров - немец UBeiker - http://mikrocontroller.bplaced.net/wordpress/ Качественно и весьма недурно переработанные СТ-шные примеры. Всё ориентировано на обе Ф4 дискаверины, но вся USB часть вынесена "за скобки", поэтому очень легко переносится на другие платы с другой схемотехникой. А те куски кода, которые жёстко завязаны на дискавери (например, дисплей), легко отделяются и выбрасываются, т.к. используются только в main, а не в недрах USB библиотек, как у СТ-шников. У немца есть примеры и флэшки, и мышки, но т.к. у него старые либы, то у меня была ситуация, описанная мною в 1-м посте темы. Новые либы я перепахал сам, все 3 мои мыши работают вроде нормально, сейчас я занялся флэшкой на этих новых либах. Т.к. меня интересует и флэшка и мышка одновременно, а не по очереди, как поголовно во всех примерах, которые я видел.
  17. STM32F439 + USB мышь

    СТ-шники выкладывают архив: USB ядро, драйвера флэшки/HID (клава+мышь), несколько примеров хоста и девайса. Фактически это не либы, а некие готовые примеры, заточенные под ихние дорогущие отладочные платы ценой под полторы-две штуки баксов. Поэтому сами либы оттуда надо выковыривать - очищать от кода, работающего с дисплеями на тех платах, переделывать инициализацию пинов (в части управления питанием девайса) и т.д и т.п. Но для простоты я всё это называю либой. Те кто сталкивался, поймут, о чём я :) .
  18. STM32F439 + USB мышь

    Rash, я не знаю. Новую USB либу я увидел, когда сам туда зашёл и сравнил версию с той, что у меня была. И то оказалось, что она там лежит с конца ноября. А я весь декабрь со старой промучился :). Возможно стоит у них и спросить. PS. Кстати, проверил USB HS хост (FS режим) на своей плате - мыши пашут. Вроде норм. До 429 дискаверины руки пока не дошли.
  19. STM32F439 + USB мышь

    Всех с наступившими Новым годом и Рождеством. Питалово оказалось ни при чём. СТ-шники выложили новые либы USB хоста, почистил их от разного хлама, проверил все 3 мыши на FS хосте на своей плате - пока всё норм. HID драйвер там на 99% такой же, стало быть ядро подкрутили ... Со старым я его не сравнивал. Сделаю на HS (FS режим) хосте - отпишусь, что получится... На дискаверине пока не проверял, т.к. там распаян HS хост.
  20. STM32F439 + USB мышь

    А хз. Питается от программаторского USB. Проверю.
  21. STM32F439 + USB мышь

    Всех с наступающим! Переделал проект с нуля на F429Discovery, вывожу координаты и состояния кнопок на дисплей - вроде всё норм пашет на тех 2-х мышах. Использовал Report режим. 3-я мышь энумерацию проходит нормально, определяется, что это мышь, но подыхает на чтении HID дескриптора уже в HID драйвере До дескриптора репорта вообще не доходит :crying: . Лезет ошибка - Host is busy. Почему - пока не понял :) .
  22. STM32F439 + USB мышь

    Посмотрел куб - там тоже бут протокол, но автоповтора нету. Придётся ещё и в ядро лезть ... бррр
  23. STM32F439 + USB мышь

    Пытаюсь понять феномен этого автоповтора ...
  24. STM32F439 + USB мышь

    угу. спасибо. Радиомышки я на потом оставлю. Сейчас хоть бы проводную завести по-нормальному...
  25. STM32F439 + USB мышь

    Накурился я этой хрени ... голова кругом Report descriptor в ст-шных либах я нашёл, он у них там нормально вычитывается, но полностью игнорится. Также нашёл, где они включают мыше boot протокол. Я скинул этот дескриптор (мышь Logitech RX250) в комп через UART, руками расшифровал его: 05 01 - 05 01 - Usage page (Generic Desktop) 09 02 - 09 02 - Usage ID (Mouse) A1 01 - A1 01 - Collection (Application) 09 01 - 09 01 - Usage Page (Pointer) -- описатель - указатель a1 00 - A1 00 - Collection (Physical) 05 09 - 05 09 - Usage Page (Buttons) -- описатель - кнопка 19 01 - 19 01 - Usage Minimum (01) -- мин номер кнопки 29 08 - 29 08 - Usage Maximum (08) -- макс номер кнопки 15 00 - 15 00 - Logical Minimum (00) -- мин значение кнопки 25 01 - 25 01 - Logical Maximum (01) -- макс значение кнопки 95 08 - 95 08 - Report Count (08) -- кол-во полей в репорте = 8 75 01 - 75 01 - Report Size (01) -- размер поля в битах = 1 81 02 - 81 02 - Input (Constant) -- тип - ввод данных в хост 95 00 - 95 00 - Report Count (00) -- кол-во полей в репорте = 0 81 03 - 81 03 - Input (Constant) -- тип - ввод данных в хост 05 01 - 05 01 - Usage page (Generic Desktop) 09 30 - 09 30 - Usage (X) -- x координата 09 31 - 09 31 - Usage (Y) -- Y координата 09 38 - 09 38 - Usage ID (38) - wheel -- Описатель - колесо 15 81 - 15 81 - Logical Minimum (-127) -- мин значение 25 7F - 25 7F - Logical Maximum (127) -- макс значение 75 08 - 75 08 - Report Size (08) -- размер поля в битах = 8 95 03 - 95 03 - Report Count (03) -- кол-во полей в репорте = 3 81 06 - 81 02 - Input (Constant) -- Feature тип - ввод данных в хост 05 0C - 05 0C - Usage ??? 0a 38 02 - 0a 38 02 - Usage ???? data = 0x0238 95 01 - 95 01 - Report Count (01) -- кол-во полей в репорте = 1 81 06 - 81 06 - Input (Constant) -- Feature тип - ввод данных в хост c0 - C0 - End Collection c0 - C0 - End Collection Декодер дескриптора я честно слизал из NXP, подключил, но результаты пока нигде не использую. Я переключил мышь в Report режим (такая возможность там заложена, но там задаётся boot режим) А вот пример самого репорта: 00 01 ff 00 00 Размер 5 байт задан в дескрипторе конечной точки. Как правильно его расшифровать, используя дескриптор? Как я понимаю: 1-й байт - кнопки (почему-то 8 штук, хотя их там 3 ). Потом 3 байта координаты и колесо. Что такое 5-й байт, я не понял :( . В то же время есть какой-то непонятные usage: 05 0C - 05 0C - Usage ??? 0a 38 02 - 0a 38 02 - Usage ???? data = 0x0238 95 01 - 95 01 - Report Count (01) -- кол-во полей в репорте = 1 81 06 - 81 06 - Input (Constant) -- Feature тип - ввод данных в хост судя по всему оно одно другому соответствует. Вторую мышь завтра покажу. Там дескриптор совсем не такой. Второй вопрос. Скорее 2-я пачка вопросов: Репорты валят из мыши постоянно, практически непрерывным потоком. При этом там идут полные дубли, если мышь не двигается. На фига? Это какой-то ST-шный косяк или же это делается специально и я должен сам проверять, получил ли я дубль или что-то изменилось? И вдогонку: Судя по дескриптору, в вышеприведенном репорте байты 01 FF 00 - это X, Y, колесо. Т.е. по X там +1, по Y - -1, колесо - 0 (т.е. не двигалось). Но эти числа меняются как-то странно - такое ощущение, что слишком быстро. Но я даже в этом не уверен. Можно ли как-то управлять скоростью? В PS2 мышах есть команда задания скорости к каких-то там DPI. Здесь я такого не нашёл. Хотя в той же винде такая регулировка есть. Или это некая программная имитация?
×
×
  • Создать...