Проблема esp32s3 devkitc1

У меня есть плата esp32s3 к ней через отг переходник подключил юсб мышку и пользуясь этим примером esp-idf/examples/peripherals/usb/host/hid at master · espressif/esp-idf · GitHub реализовал плату как хост. Все запускется и работает, но есть одна проблема, плата через какое-то время(может 5 минут, а может и 20) перестает слушать мышку. Питание на мышке есть(работает подсветка). В порте не выводится сообщение о том, что юсб утройство было отключено. Пробовал через другую библиотеку сделать, пробовал разные мышки и другую такую же плату подключать, но проблема никуда не уходит. Помогает только нажатие rst на плате или переподключение самой мыши.
В чем может быть проблема?

в 123 строке скетча

1 лайк

Там ещё не в тот порт воткнуто!

Это как? Вытащил-вставил?

Это еще что такое? Изделие какое-то дополнительное между мышой и МК или что?

на обычном компе, если мышку не трогать - оно через некоторое время “засыпает”, подсветка притухает и тд…
Может и тут так же?

не наблюдал такого при обычном подключении в пк, да и врядли в этом дело, мышка отваливается во время активного использования

именно так

такой вот переходник
https://www.dns-shop.ru/product/8dec660f584aed20/otg-kabel-dexp-cernyj/

Скидывай скетч, у меня есть клон девкитаЦ на ESP32-S3. И мышка, внезапно, у меня тоже есть. Я попробую твою багу воспроизвести, для начала.

А ты можешь, когда мышка отвалится в очередной раз, измерить напряжение питания на USB разъеме своем?

А нет ли у тебя где на плате перемычки или площадки под пайку, на которой написано USB-OTG?

#include "EspUsbHost.h"

class MyEspUsbHost : public EspUsbHost {
  void onMouseButtons(hid_mouse_report_t report, uint8_t last_buttons) {
    uint8_t button_code = 0;
    uint8_t changed = last_buttons ^ report.buttons;
    last_buttons = report.buttons;

    if (changed) {
        uint8_t button_code = report.buttons;

        Serial.printf("dx:0 dy:0 scroll:0 Btn:%02X\n", button_code);
    }
};



void onMouseMove(hid_mouse_report_t report) {
    int x_move = report.x;
    int y_move = report.y;
    int scroll = report.wheel;
    int buttons = report.buttons;

    Serial.printf("dx:%d dy:%d scroll:%d Btn:%02X\n", 
                   x_move, y_move, scroll, buttons);
  };
};

MyEspUsbHost usbHost;

void setup() {
  Serial.begin(115200);
  delay(500);
  usbHost.begin();
}

void loop() {
  usbHost.task();
}
}

питание чуть позже попробую замерить, но подсветка на мышке остается всегда
USB-OTG есть перемычка, и она у меня запаяна, иначе питание не шло в разъем, куда я мышку подключаю(так же запаяна перемычка IN OUT)

чтобы поймать этот баг придется мышкой пользоваться в течении како-го времени, в среднем минут 7

А другой мышью пробовали?

Ничего страшного, подождем.
Но у меня для тебя неутешительные новгости. Автор свою библиотеку забросил, судя по всему, а багу эту не закрыл.

Как раз ьвой случай, я думаю

Ты написал, что ты сделал все на ESP-IDF а исходный код скинул на каой-то японской библиотеке все сделанное.

я в первом сообщении скидывал ссылку на пример, которым я пользовался esp-idf
не сильно разбираюсь в этой теме, поэтому я просто скачал репу эту и по инструкции запустил.
что у японца, что здесь, проблема одинаковая

насколько я помню, в примерах USB Host ESP-IDF отработки всяких нештатных ситуаций, потеря линка с девайсом, переподключение, и так далее - такого там нету, я делал вручную. сомневаюсь, что в вашем прекрасном(sic!) ардуино ктото напишет вам библиотеку с таким функционалом, ведь его неоткуда спереть мвахахаххах. то есть мяу.

1 лайк