【是在哈囉】淺談 LPC55xx 簡介與clock 使用方式
- LPC55xx簡介
第一張先秀出 WPI 製作的第一塊 LPC55 EVB, 可以在大大購上購買喔~ 每支 Pin 腳都從 LPC55 接出來, 開發平易近人~
下圖是 LPC55 在 NXP 的 MCU 核心分類, 可以看的出是最新的 Cortex M33 ~~
然後我們再看看 LPC55 有哪些功能, 然後實際上又能做成什麼產品呢?
好比, UART 可以接無線模組, SPI 可以接 Finger print 模組, SPI PHY 可以點 Pannel, USB 可以當遊戲控制器等等,
LPC55 以上這些功能, 確實能夠勝任一般 MCU 的工作,
那 Cortex M33 比一般 M4 MCU 多了哪些功能呢?
Trust zone, 安全的記憶體管理機制,
其實就下表可以看到, 處理速度就是比 M4 快 20%,
二﹑ LPC55s69 Clock 說明:
- Clock 來源
內部可直接選擇 1MHz, 12 MHz, 48MHz, 96MHz,
可以外掛 32.768K 或 Main crystal (16, 19.2, 24, 32MHz ) Clock in
- 提供 PLL 功能, 主要 Clock 流程如下
- 呼叫 void Init_CPU_Clock(unsigned int Sys_clock), 設定 Main Clock,
並傳入設定 Sys_clock的值,
若是要跑 1MHz 則輸入 Sys_clock = 1000000,
若是要跑 12MHz 則輸入 Sys_clock = 12000000,
若是要跑 48MHz 則輸入 Sys_clock = 48000000,
若是要跑 96MHz 則輸入 Sys_clock = 96000000,
程式會儲存目前 Main clock 的速度為 SystemCoreClock,
使用上小心 Flash 及 Voltage 要符合當下的 CPU 速度
- 要測試 Clock 跑多少, 則可以呼叫 Drv_PIO1_27_Clock_out (clockout_source_t clockout_source, unsigned int clockout_div)
輸出指定的 Clock 波型至 PIO1_27 量測,
clockout_source 從 0 ~ 6 有各種輸出 clock 來源, 如下:
0x0 Main clock (main_clk).
0x1 PLL0 output
0x2 CLKIN (clk_in).
0x3 FRO 96 or 48 MHz (fro_hf).
0x4 FRO 1MHz
0x5 PLL1 output
0x6 32K osc
- 呼叫 void Init_Audio_Clock (void), 設定 Audio Clock,
開發板使用外掛 crystal 16MHz, 並透過 PLL0 倍頻至 24MHz 在傳輸給 MCLK 及 I2S 使用
- 呼叫 void Init_USB_Clock(usb_port_t USB_port), 設定 USB Clock,
並傳入選擇設定 USB_port,
若是要跑 Full speed 則輸入 USB_FullSpeed, 程式將會初始化 Full speed USB 的 Clock,
若是要跑 High speed 則輸入 USB_HighSpeed, 程式將會初始化 High speed USB 的 Clock,
範例:
下圖可以看出 main clock 跑 96MHz,
下圖可以看出 PLL0 倍頻至24.5MHz,
下圖可以看出 Crystal 輸入為 clock in 為 16MHz,
下圖可以看出內建 High-FRO 設定 96MHz 輸出,
下圖可以看出內建低頻 1MHz_FRO輸出,
下圖可以看出 PLL1 倍頻至 48MHz,
下圖可以看出 12MHz FRO 輸出,
以上是 LPC55 的介紹, 其實可以看得出來 LPC55xx 與 LPC54xxx 是十分相近的, 所以 Cortex M33 其實與 Cortex M4 的基本使用方式是一致的, 並且 Cortex M33 是新的核心, 執行的更快, 更強大, 在 NXP 設計製程下也更省電
我們在 LPC55 上的測試說明也會比 LPC54 更詳細些, 後續 NXP LPC13, LPC15, LPC17, LPC18, LPC40, LPC43… 等, 會集中在 LPC55 的 road map 發展
下篇 LPC55xx GPIO 使用方式