Search the Community
Showing results for tags 'stm32l4'.
-
Доброй всем, кто подскажет по какой то причине после загорания флажка RXFLVL при преёме setup паккета. после чтения флаг не тухнет. может я нетак четайо с fifo? в документах написано что должен сам тухнуть. code: ;define OTG_FS_H equ 0x5000 OTG_FS_L equ 0x0000 RX_FIFO_STR equ 0x1000 __usb_int proc push {LR} movw r9,#OTG_FS_L movt r9,#OTG_FS_H ldr r0,[r9,#OTG_GINTSTS_B] tst r0,#USBRST beq jmp_usb_int_reset_skip bl _device_init b jmp_usb_int_end jmp_usb_int_reset_skip tst r0,#ENUMDNE beq jmp_usb_int_enmflag_skip bl _device_enmflag b jmp_usb_int_end jmp_usb_int_enmflag_skip tst r0,#RXFLVL beq jmp_usb_int_rx_skip ldr r0,[r9,#OTG_GRXSTSR_B] ; and r1,r0,#EPNUM_MASK cmp r1,#ENPOINT0 bne jmp_usb_int_rx_endpoint1 bl _endpoint0_rx b jmp_usb_int_end jmp_usb_int_rx_endpoint1 b jmp_usb_int_end jmp_usb_int_rx_skip tst r0,#IEPINT jmp_usb_int_end pop {LR} BX LR endp _endpoint0_rx proc push {LR} ;acording to datasheet add r8,r9,#(RX_FIFO_STR) ;point to rxfifo start and r1,r0,#PKTSTS_MASK cmp r1,#PKTSTS_SETUP_REC bne jmp_endpoint0_rx_setup_rec ;disable ldr r1,[r9,#OTG_GINTMSK_B] bic r1,#(RXFLVL) str r1,[r9,#OTG_GINTMSK_B] mov r1,#BCNT_MASK ands r1,r0 ;adviced to test BYT_COUNT before poping fifo to avoid undefined behavior!!! beq jmp_endpoint0_rx_end ;first 4byt are status data ldr r0,[r8] mov r1,#BCNT_MASK and r1,r0 lsr r1,#4 ;byte received and r2,r0,#FRMNUM_MASK lsr r2,#21 ldr r3,[r8] ;only 4byt read alowed ldr r4,[r8] ;ldr r5,[r8],#4 mov32 r0,#(PKTCNT_CNT_OUT_MASK|STUPCNT_3PACK|0x40) ;pack size max 64 str r0,[r9,#OTG_DOEPTSIZ0_B] mov r0,#(CNAK) str r0,[r9,#OTG_DOEPCTL0_B] tst r3,#GET_BIT beq jmp_endpoint0_rx_setup_set and r1,r3,#GET_2BYT_MASK cmp r1,#GET_DESKRIPTOR bne jmp_endpoint0_rx_setup_get_next and r1,r3,#GET_4BYT_MASK cmp r1,#DEVICE_DESCRIPTOR bne jmp_endpoint0_rx_setup_get_next_descriptor ; bl _send_device_descriptor b jmp_endpoint0_rx_setup_get_end jmp_endpoint0_rx_setup_get_next_descriptor b jmp_endpoint0_rx_end ;---------- setup get ---------------------------------------- jmp_endpoint0_rx_setup_get_next jmp_endpoint0_rx_setup_get_end ldr r0,[r9,#OTG_GINTMSK_B] orr r0,#(RXFLVL) str r0,[r9,#OTG_GINTMSK_B] b jmp_endpoint0_rx_end ;*****SETUP set cmd *************************** jmp_endpoint0_rx_setup_set ldr r0,[r9,#OTG_GINTMSK_B] mov r0,#(RXFLVL) str r0,[r9,#OTG_GINTMSK_B] b jmp_endpoint0_rx_end jmp_endpoint0_rx_setup_rec cmp r1,#PKTSTS_SETUP_CMPL bne jmp_endpoint0_rx_out_cmpl mov32 r0,#(PKTCNT_CNT_OUT_MASK|STUPCNT_3PACK|0x40) ;pack size max 64 str r0,[r9,#OTG_DOEPTSIZ0_B] mov r0,#(CNAK) str r0,[r9,#OTG_DOEPCTL0_B] ;bl _send_device_descriptor b jmp_endpoint0_rx_end jmp_endpoint0_rx_out_cmpl cmp r1,#PKTSTS_OUT_CMPL bne jmp_endpoint0_rx_next ldr r0,[r8] b jmp_endpoint0_rx_end jmp_endpoint0_rx_next ldr r0,[r9,#OTG_GINTMSK_B] ;bic r0,#(RXFLVL) ;str r0,[r9,#OTG_GINTMSK_B] ;ldr r0,[r8] ;mov r0,#0 ;str r0,[r8] jmp_endpoint0_rx_end pop {LR} BX LR endp
-
Улучшенное ультранизкопотребляющее семейство микроконтроллеров STM32L4+ получило дальнейшее развитие. Теперь в Компэл можно приобрести МК новой линейки этого семейства – STM32L4P5/Q5. Это надежное решение на ядре Cortex-M4 для приложений, где критически важным является экономный расход энергии. Подробнее о характеристиках и особенностях>>
-
- stmicroelectronics
- stm32l4p5
-
(and 3 more)
Tagged with:
-
Новая система на кристалле STM32WL представляет собой микроконтроллер STM32L4 и универсальное радио, поддерживающее практически все наиболее используемые в диапазоне до 1 ГГц виды модуляции — LoRa, (G)FSK, (G)MSK и BPSK. STM32WL может работать как со стеком LoRaWAN через модуляцию LoRa, так и со сверхузкополосными UNB-системами типа Sigfox, благодаря поддержке двоичной фазовой манипуляции (BPSK). Подробнее о характеристиках>>
-
Отладочная плата NUCLEO-L412RB-P позволяет опробовать функционал и возможности микроконтроллера STM32L412RB семейства STM32L4. Микроконтроллеры этого семейства основаны на ядре Сortex-M4. Они предназначены для применений в приложениях с ультранизким потреблением, где может потребоваться дополнительная производительность. Микроконтроллеры STM32L412 – самые простые представители своего семейства, но при этом они оснащены богатой периферией. Интегрированный интерфейс USB 2.0 способен работать на полной скорости без использования внешнего кварцевого резонатора. Небольшой объем FLASH может быть компенсирован за счет дополнительной микросхемы памяти, подключаемой по интерфейсу Quad SPI. В STM32L412 также есть специальные таймеры, UART и компаратор, работающие даже при отключенном ядре. Микроконтроллеры семейства STM32L4 имеют семь режимов питания, позволяющих гибко настраивать потребление в зависимости от того, какая периферия и частота ядра необходимы в разные моменты времени его работы. В STM32CubeMX доступны бесплатные примеры проектов и комплексных библиотек. Подробнее об отладочной плате
-
- компэл
- nucleo-l412rb-p
-
(and 1 more)
Tagged with:
-
Товаришь попросил спросить, он тут не зарегистрирован, поэтому копи-паст с другого форума (там ему толком не ответили).