У меня есть плата esp32s3 к ней через отг переходник подключил юсб мышку и пользуясь этим примером esp-idf/examples/peripherals/usb/host/hid at master · espressif/esp-idf · GitHub реализовал плату как хост. Все запускется и работает, но есть одна проблема, плата через какое-то время(может 5 минут, а может и 20) перестает слушать мышку. Питание на мышке есть(работает подсветка). В порте не выводится сообщение о том, что юсб утройство было отключено. Пробовал через другую библиотеку сделать, пробовал разные мышки и другую такую же плату подключать, но проблема никуда не уходит. Помогает только нажатие rst на плате или переподключение самой мыши.
В чем может быть проблема?
в 123 строке скетча
Там ещё не в тот порт воткнуто!
Это как? Вытащил-вставил?
Это еще что такое? Изделие какое-то дополнительное между мышой и МК или что?
на обычном компе, если мышку не трогать - оно через некоторое время “засыпает”, подсветка притухает и тд…
Может и тут так же?
не наблюдал такого при обычном подключении в пк, да и врядли в этом дело, мышка отваливается во время активного использования
именно так
такой вот переходник
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!) ардуино ктото напишет вам библиотеку с таким функционалом, ведь его неоткуда спереть мвахахаххах. то есть мяу.