Вт дек 10, 2024 07:03:41
Вт дек 10, 2024 10:48:29
jcxz писал(а):Если все биты описаны в мануале, то нормально.
jcxz писал(а):Значит у вас размер точек был маленький.
jcxz писал(а):А значит - и максимальная скорость изохронной передачи ограничена - менее 1/4 от максимально возможной для USB-FS.
jcxz писал(а):Получается - STM32L не соответствует даже требованиям USB-FS. Или не полностью соответствует.
HardWareMan писал(а):Конечно! SOF выдаёт хост каждое нормированное стабильное время
HardWareMan писал(а):количество SOF через которое происходит обновление: те самые игровые FS/HS мышки настраиваются на частоту опроса до 1000/секунду это оно и есть.
Вт дек 10, 2024 11:33:10
Вт дек 10, 2024 13:13:17
Вт дек 10, 2024 13:24:06
Вт дек 10, 2024 13:56:45
Вт дек 10, 2024 14:55:22
HardWareMan писал(а):количество SOF через которое происходит обновление: те самые игровые FS/HS мышки настраиваются на частоту опроса до 1000/секунду это оно и есть.
Вт дек 10, 2024 15:30:27
Вт дек 10, 2024 16:00:08
Вт дек 10, 2024 16:59:09
Вт дек 10, 2024 18:43:06
#define USB_EP_NUM 2 //макс.кол-во эндпоинтов одновременно используемых в программе (не включая ep0)
#define USB_MAX_PACKET0 8 //Max Endpoint 0 Packet Size [8/16/32/64]
#define OFS2ADDR(ofs) ((u32 *)((char *)&usbMem + ((ofs) << 1 & ~3) + ((ofs) & 1)))
__packed union UsbBufDescTbl {
struct {
u16 addrTx, gap0;
u16 countTx, gap1;
u16 addrRx, gap2;
u16 countRx, gap3;
};
struct {
u16 addr, gap0;
u16 count, gap1;
} txrx[2];
};
__no_init struct UsbMem {
u16 ep0[2][USB_MAX_PACKET0];
union {
u16 epStream1[2][epSize_ASET1]; //alt.set1
u16 epStream2[2][epSize_ASET2]; //alt.set2
};
UsbBufDescTbl desc[2 + USB_EP_NUM];
} usbMem @ ".usb";
jcxz писал(а):Получается - STM32L не соответствует даже требованиям USB-FS. Или не полностью соответствует.
Вт дек 10, 2024 20:15:03
jcxz писал(а):Она же кратна целому количеству SOF. А значит логично её стартовать от счётчика, декрементируемого по SOF.
Пт дек 13, 2024 23:08:27
Вс дек 15, 2024 13:33:46
Пн дек 16, 2024 11:45:08
Ср дек 18, 2024 01:18:31