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

  1. 設定暫存器 XBR2 : Port I/O Crossbar 2 (SFR Page = 0x0, 0x20; SFR Address: 0xE3)
  • 將 [Bit6] XBARE 設為 1 (Crossbar enabled.)

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

控制訊號 3.3V 轉 5V 的解決方案 (非電源升壓)

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

這時侯可以用兩個方法:

1. 降底電源電壓。當VDD降至 4.5V 時,4.5x0.7=3.15V,這樣單晶片的輸出 3.3V 就可被WS2812B接受,甚至可以把VDD電壓降的更底,但不可低於3.5V。

2. 將單晶片的輸出電壓 3.3V 轉換至 5V。

上述的第一個方法若於較小且獨位的電路時較可行,直接把電源電壓調降即可。但若和其它系統共用電源或不能隨意調整電源電壓時,則須獨立再產生(或轉換)一個電源電壓,較不方便且不划算。

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

程式碼1

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

單晶片型號:EFM8BB10F8I-QSOP24

開發環境:Keil uVision V5.38.0.0

參考資料:單晶片組合語言

以下是程式碼

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

程式碼

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

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

單晶片型號:EFM8UB2F64G @ 48MHz

多彩LED模組:WS2812-12

開發環境:Keil uVision V5.38.0.0

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

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

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

當前一個通道的電壓與下一個通道的電壓有著比較大的差異時,會出現類似充放電的延遲現象。以示波器觀察如下:(黃色為1V/DIV,紫色為同信號放大10倍,下同)

(時間軸由 20mS/DIV 放大為 5mS/DIV 以利觀察)

在我的應用上會出現如下圖的問題:(連續取值並繪製反應曲線)

(當前一個通道的電壓與此通道的電壓由高很多變成差不多時,上述的問題即不在此通道上顯現,所以讀取了較低的電壓值。而這個曲線是吸光值,與電壓值是反相關係,所以看到吸光值向上跳了一階)

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

BCB Series->Clear()出現錯誤,改用Free

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

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

由於功力潛薄,我不知道這是怎麼了,如有大俠願意指點一二,實感榮幸。

在無計可施下,我改用了 Free() 這個函式,程式碼如下

Chart2->Series[0]->Free();

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

2023D7

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

得知有這樣的產品,立馬購入測試。

一開始先選擇最簡單的類比輸出方式(只須接VCC、OUT、GND)來做測試,但其OUT腳位的電壓值卻沒有隨著上方磁鐵的旋轉而發生任何變化。不得不只好找它的Datasheet來讀,才發現其"PGO"腳被電路板的一顆電阻給拉到低電位了,這樣AS5600會進入Programming Option B的模式(使用OUT腳來編輯角度範圍),才導致其無法正常輸出。

這時可以選擇使用接線將PGO腳位連接到高電位,或是將電路板上的這顆電阻拆下即可。

底下是一些使用的記錄:

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

Screenshot_20230505-110033_One UI Home

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

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

如上圖,確認已在手機裡正確配對藍芽裝置,但在APP的清單裡卻看不到任何東西。

一開始我先是懷疑HC-05是不是壞了?但怎麼想都不對,因為它可以在手機的藍芽功能裡找到並配對,而且為什麼其它的藍芽裝置也都沒有顯示在列表上?

接著開始認為是不是我的手機跟 MIT APP Inventor 開發的藍芽APP不相容,心裡預計著明天再試試家裡的舊手機。

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

2023B0

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

我使用的型號是 EFM8UB2,從 AN945 這份文件中可以看到其 UART Bootloader 是 "Example"。一開始我根本不知道這個 "Example" 到底是指什麼,上綱找了好久就是找不到解答,後來靈光一閃使用了 Silicon labs 自家的 Simplicity Studio ,才發現原來答案就在我身邊。(我一直都是使用 Keil)

底下為產生 UART Bootloader Hex 檔的步驟:

1. 先產生一個新的專案

2. 在 Boards 裡輸入晶片型號進行搜尋

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

2023A1

BCB版本:2007

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

不會自動向下捲 ↓ ↓ ↓

將元件屬性欄位中的 HideSelection 設定為 false ,即可自動向下捲。

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

2022H1

(此文是家中的液晶電視故障維修記錄,作者並非液晶電視維修專家,內容僅供參考。)

故障現象:有聲音,沒有影像。

一開始懷疑是不是背光驅動的電路出了問題,但用三用電表測量供給背光的連接端子有直流八十幾伏的電壓輸出,所以排除了驅動電路故障的可能性。

首先小心的將背光與液晶面板分離

上半為面板,下半部為背光。

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

性能參數

使用齒輪泵用於定量充填,心得如下:

    實際的液體輸送量會與"名義流量"有所差異(名義流量是定義每轉一圈,泵所輸送的液體量之理論值)。而導致此差異的原因眾多,就我實驗驗証、以及請教索富林先生所得知的原因敘述如下:
  •  當出口阻力越大,輸出的液量越少。較小的出口管徑及較長的管路長度,將使其阻力增加,使輸出液量減少。

  • 上述的現象,同樣適用於入口管路。

  •  當轉速越快,輸出的液量越多。在轉速低於一定速度時(在我的實驗中,約是 1000RPM),可以容易觀察到這個現象;而當轉速高於一定速度,此現像則不明顯。

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

1 2 3 4 5
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。