STM32 USB CAN 學習筆記 - 共享RAM的用法

USB 時鐘能夠一直使能。 spa

若是CAN時鐘沒有使能,RAM 能被軟件讀寫。(CANBus 不能發送和接受Message) code

若是CAN時鐘使能,RAM不能軟件被寫。 CANBus Core 控制此RAM區域。(CANBus 能夠發送和接受Message) blog

CANBus 佔用了 256 字節(地址範圍 512 字節)。 class

開始區域是Filters[14] = (F0R0、F0R1), (F1R0、F1R1),  ... (F13R0、F13R1). sed

緊接着是 Rx0 FiFo[0], Tx0, Tx1, Tx2,  Rx0 FiFo[1], Rx0 FiFo[2], Rx1 FiFo[0], Rx1 FiFo[1], Rx1 FiFo[2]。 軟件

USB 可使用後面的 256 字節。 硬件

具體分配能夠是 : 8 個端點佔用 8 * 8 = 64 Bytes (ADDR、CNT : TX、RX) di

最好只使用 3 個端點 : (1) 控制端點 0 (2) In 端點 1 (3)Out 端點 2 poi

控制端點 : 64 bytes co

In 端點: 64 Bytes 

Out 端點: 64 Bytes 

 

 
 
00006000 00 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00    // Filters[0]
00006010 08 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006020 10 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006030 18 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006040 20 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006050 28 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006060 30 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006070 38 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006080 40 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
00006090 48 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
000060A0 50 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
000060B0 58 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
000060C0 60 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00
000060D0 68 00 00 00 00 00 00 00 F8 FF 00 00 FF FF 00 00    // Filters[13]

000060E0 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00    //Rx0 FIFO[0]
000060F0 01 23 00 00 45 67 00 00 89 AB 00 00 CD EF 00 00

00006100 05 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00    //Tx0
00006110 01 23 00 00 45 67 00 00 89 AB 00 00 CD EF 00 00

00006120 0D 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00    //Tx1
00006130 01 23 00 00 45 67 00 00 89 AB 00 00 CD EF 00 00

00006140 15 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00    //Tx2
00006150 01 23 00 00 45 67 00 00 89 AB 00 00 CD EF 00 00

00006160 0C 00 00 00 00 00 00 00 08 01 00 00 00 00 00 00    //Rx0 FIFO[1]
00006170 01 23 00 00 45 67 00 00 89 AB 00 00 CD EF 00 00

00006180 14 00 00 00 00 00 00 00 08 02 00 00 00 00 00 00    //Rx0 FIFO[2]
00006190 01 23 00 00 45 67 00 00 89 AB 00 00 CD EF 00 00

000061A0 1C 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00    //Rx1 FIFO[0]
000061B0 01 23 00 00 45 67 00 00 89 AB 00 00 CD EF 00 00

000061C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    //Rx1 FIFO[1]
000061D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

000061E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    //Rx1 FIFO[2]
000061F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00006200 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00    //Unused Endpoint
00006210 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
00006220 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
00006230 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
00006240 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00

00006250 40 01 00 00 00 00 00 00 40 01 00 00 00 84 00 00    //EP0 -- Buffer Table @ 0x0250
00006260 80 01 00 00 00 00 00 00 C0 01 00 00 40 00 00 00    //EP1
00006270 C0 01 00 00 00 84 00 00 C0 01 00 00 00 84 00 00    //EP2

00006280 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00    //EP0 Buffer
00006290 26 26 00 00 FF FF 00 00 00 01 00 00 00 01 00 00
000062A0 02 01 00 00 65 00 00 00 72 00 00 00 40 00 00 00
000062B0 00 07 00 00 05 02 00 00 02 40 00 00 00 00 00 00
000062C0 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
000062D0 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
000062E0 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
000062F0 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00

00006300 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00    //EP1 Buffer
00006310 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
00006320 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
00006330 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
00006340 22 22 00 00 22 22 00 00 22 22 00 00 22 22 00 00
00006350 C0 01 00 00 00 00 00 00 C0 01 00 00 00 84 00 00
00006360 C0 01 00 00 00 00 00 00 FD 67 00 00 0A 6C 00 00
00006370 34 78 00 00 68 FD 00 00 C0 01 00 00 00 84 00 00

00006380 00 09 00 00 01 00 00 00 00 00 00 00 00 00 00 00    //EP2 Buffer
00006390 27 27 00 00 04 00 00 00 00 02 00 00 00 00 00 00
000063A0 00 00 00 00 07 05 00 00 81 02 00 00 40 00 00 00
000063B0 00 07 00 00 05 02 00 00 02 40 00 00 00 00 00 00
000063C0 89 8E 00 00 82 83 00 00 C2 47 00 00 B4 69 00 00
000063D0 EA 7C 00 00 16 29 00 00 93 C3 00 00 79 25 00 00
000063E0 4A E1 00 00 F9 AC 00 00 39 CB 00 00 47 3A 00 00
000063F0 F1 32 00 00 C0 22 00 00 7B 03 00 00 4F A2 00 00
USB    CAN          RAM

Dis    Dis     軟件 (不可寫入, 讀取無心義) 硬件 (沒有控制)
Dis    En      軟件 (不可寫入, 讀取無心義) 硬件 (CANBus控制)
En     Dis     軟件 (可寫入, 可讀取)      硬件 (USB控制)
En     En      軟件 (不可寫入, 讀取無心義) 硬件 (CANBus控制)
相關文章
相關標籤/搜索