這裡記錄了使用單晶片 EFM8BB3 的 UART1 ,所需要的基本設定。(未使用 CTS 及 RTS)

  1. 設定暫存器 XBR2 : Port I/O Crossbar 2 (SFR Page = 0x0, 0x20; SFR Address: 0xE3)
  • 將 [Bit6] XBARE 設為 1 (Crossbar enabled.)
  • 將 [Bit0] URT1E 設為 1 (UART1 TX1 RX1 routed to Port pins.)
  1. 使用 PnSKIP 將 UART1 的 TX 及 RX 指定到位。
  2. 設定暫存器 SCON1 : UART1 Serial Port Control (SFR Page = 0x20; SFR Address: 0xC8)
  • 將 [Bit4] REN 設為 1 (UART1 reception enabled.)
  1. 設定暫存器 SBCON1 : UART1 Baud Rate Generator Control (SFR Page = 0x20; SFR Address: 0x94)
  • 將 [Bit6] BREN 設為 1 (Enable the baud rate generator.)
  • 依需求設置 [Bit2:0] BPS (Baud Rate Prescaler Select.)
  1. 設定底下兩個暫存器以決定 Baud Rate,必須先寫入 SBRLH1 之後再寫入 SBRLL1。
  • SBRLH1 : UART1 Baud Rate Generator High Byte (SFR Page = 0x20; SFR Address: 0x96)
  • SBRLL1 : UART1 Baud Rate Generator Low Byte (SFR Page = 0x20; SFR Address: 0x95)
  1. 設定暫存器 UART1FCN1: UART1 FIFO Control 1 (SFR Page = 0x20; SFR Address: 0xD8)
  • 將 [Bit0] RIE 設為 1 (The RI flag will generate UART1 interrupts when it is set.)

以上即為使用 UART1 的最基本設置。

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

 

WS2812B 這顆內建控制的多彩LED晶片,其邏輯控制的 VIH 最小電壓是 VDD x 0.7,使用於5V時也就是 3.5V,而 silicon lab 及其它廠家的單晶片或是FPGA,I/O腳位的輸出很多都是 3.3V的電壓準位,是無法達到WS2812B的輸入要求。

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

繼上一篇 使用單晶片EFM8UB2控制WS2812-12 LED模組(C語言) 後,我覺得可以使用C語言完成那個控制,應該是因為EFM8UB2的系統頻率可以高達48MHz 才做到的,所以我想使用系統頻率較低的EFM8BB1(24.5MHz)搭配組合語言來做做看。

單晶片型號:EFM8BB10F8I-QSOP24

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

最近入手一個多彩LED模組 WS2812,使用Arduino要讓它"亮起來"很容易,但我想用Silicon lab的單晶片讓它工作,沒想到比我想像中的困難。

最後的成果是搭配示波器所完成,並且是工作在48MHz的情況下。

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

在OPA輸出串了一個RC電路來穩定直流電壓輸出,接著輸入ADG506切換最後輸出的通道。

通道切換時的類似充放電延遲現象(使用ADG506)

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

言明在先,BCB是我偶爾使用的工具,並不精通,下文若有錯誤還請不吝指教,謝謝!

我使用了 Series->Clear() 欲清除已經存在的曲線,在編譯的階段並沒有問題,但是在程式運行到這個函式時,出現了如下的錯誤:

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

AS5600是一顆使用N/S磁場來辨識角度的磁編碼器,模組的價格僅幾十塊台幣,在精度及速度要求不高的場合還滿好用的。

2023D7

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

這可能"不能"算是一個問題,但對於我這個不懂的人來說,也確實花了一些時間才恍然大悟,所以記了下來,或許有人跟我一樣用的到。

我使用 MIT APP Inventor 開發了一個藍芽通訊的 APP,但是在這個 APP 裡卻找不到我想連接的藍芽裝置。(正確的說是找不到任何藍芽裝置)

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

Silicon labs 的 EFM8UB系統單晶片,預載的 Bootloader 是使用 USB 接口,但是我現在的專案是使用其UART介面與上層通訊,而日後又要直接從上層對其進行韌體更新,所以需要將其內部預載的 Bootloader 改為由 UART 接口進行的方式。

2023B0

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()

BCB版本:2007

在 Memo 或 RichEdit 中增加文字,當文字行數超過顯示範圍時,畫面不會自動向下捲以顯示最新訊息。

文章標籤

肯特王 發表在 痞客邦 留言(0) 人氣()