價錢為20元,便購買回來了解運作原理
這篇文章是 隨意而寫
外觀
MAX7219晶片
MAX7219晶片 正面
MAX7219晶片 背面
引腳
使用 雙列直插封裝 (Dual In-line Package (DIP)) 的 MAX7219 共有 24支引腳後 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
用途 | SDO | A4 | A0 | A5 | A3 | VCC | SET | A7 | A2 | A6 | A1 | SCK |
SDI | K0 | K4 | GND | K6 | K2 | K3 | K7 | GND | K5 | K1 | CS | |
前 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
編號 | 引腳 | 方向 | 用途 |
---|---|---|---|
1 | SDI | 輸入 | 序列資料輸入 |
2 | K0 | 輸出 | 第0陰極 |
3 | K4 | 輸出 | 第4陰極 |
4 | GND | 接地 | |
5 | K6 | 輸出 | 第6陰極 |
6 | K2 | 輸出 | 第2陰極 |
7 | K3 | 輸出 | 第3陰極 |
8 | K7 | 輸出 | 第7陰極 |
9 | GND | 接地 | |
10 | K5 | 輸出 | 第5陰極 |
11 | K1 | 輸出 | 第1陰極 |
12 | CS | 輸入 | 晶片選擇 |
13 | SCK | 輸入 | 序列時脈 |
14 | A1 | 輸出 | 第1陽極 |
15 | A6 | 輸出 | 第6陽極 |
16 | A2 | 輸出 | 第2陽極 |
17 | A7 | 輸出 | 第7陽極 |
18 | SET | 輸入 | 啟動 |
19 | VCC | 電源 (接受 4.0V 至 5.5V) | |
20 | A3 | 輸出 | 第3陽極 |
21 | A5 | 輸出 | 第5陽極 |
22 | A7 | 輸出 | 第0陽極 |
23 | A4 | 輸出 | 第4陽極 |
24 | SDO | 輸出 | 序列資料輸出 |
訊號
MAX7219 是使用 最高有效位 (Most Significant Bit (MSB)) 次序發送訊號引腳 | 初始化 | 開始 | 資料 週期 | 結束 | |||||
---|---|---|---|---|---|---|---|---|---|
第1元位組 | 第0元位組 第7至第0位元 (資料) | ||||||||
第15至第12位元 (無效) | 第11至第8位元 (地址) | ||||||||
延遲 | 4微秒 | ||||||||
CS | 高 | 低 | 高 | ||||||
SCL | 高 | 低 | 高 | 低 | 高 | 低 | 高 | ||
SDI | 高/低 | ||||||||
SDO | 高/低 |
訊號波紋時序圖
MAX7219 都是使用 序列周邊介面 (Serial Peripheral Interface (SPI)) ,只是由 1組8位元資料 增加至 2組8位元資料
將之前製作的 SPI 函式庫稍作修改便可以使用
暫存器
MAX7219 有一些特定用途的 指示暫存器 及 資料暫存器 來 控制 MAX7219 及讓 MAX7219 控制其他電子工具雖然 1位元組 共有 8位元 ,但 第1位元組 只需要使用 D11 至 D8 為地址; D15 至 D12 並沒有作用,可以是任意資料
第1位元組 | 用途 | |||||||
---|---|---|---|---|---|---|---|---|
無效 | 地址 | |||||||
D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | |
* | * | * | * | 0 | 0 | 0 | 1 | D0 暫存位元組 |
* | * | * | * | 0 | 0 | 1 | 0 | D1 暫存位元組 |
* | * | * | * | 0 | 0 | 1 | 1 | D2 暫存位元組 |
* | * | * | * | 0 | 1 | 0 | 0 | D3 暫存位元組 |
* | * | * | * | 0 | 1 | 0 | 1 | D4 暫存位元組 |
* | * | * | * | 0 | 1 | 1 | 0 | D5 暫存位元組 |
* | * | * | * | 0 | 1 | 1 | 1 | D6 暫存位元組 |
* | * | * | * | 1 | 0 | 0 | 0 | D7 暫存位元組 |
* | * | * | * | 1 | 0 | 0 | 1 | 解碼模式 |
* | * | * | * | 1 | 0 | 1 | 0 | 強度設定 |
* | * | * | * | 1 | 0 | 1 | 1 | 掃瞄範圍 |
* | * | * | * | 1 | 1 | 0 | 0 | 關機狀態 |
* | * | * | * | 1 | 1 | 1 | 1 | 顯示測試 |
D* 暫存位元組
MAX7219 共有 8個資料暫存器,每個資料暫存器可以保存 1位元組資料 ,即是 8位元資料第0位元組 | 用途 | |||||||
---|---|---|---|---|---|---|---|---|
資料 | ||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
* | * | * | * | * | * | * | * | 8位元資料 |
解碼模式
B編碼 是一種專針對 七段顯示器 的編碼七段顯示器 顯示圖案 | B編碼資料 | 等價於第n陽極狀態 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
無效 | 地址 | |||||||||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
0 | * | * | * | * | 0 | 0 | 0 | 0 | 低 | 高 | 高 | 高 | 高 | 高 | 高 | 低 |
1 | * | * | * | * | 0 | 0 | 0 | 1 | 低 | 高 | 高 | 低 | 低 | 低 | 低 | 低 |
2 | * | * | * | * | 0 | 0 | 1 | 0 | 低 | 高 | 高 | 低 | 高 | 高 | 低 | 高 |
3 | * | * | * | * | 0 | 0 | 1 | 1 | 低 | 高 | 高 | 高 | 高 | 低 | 低 | 高 |
4 | * | * | * | * | 0 | 1 | 0 | 0 | 低 | 低 | 高 | 高 | 低 | 低 | 高 | 高 |
5 | * | * | * | * | 0 | 1 | 0 | 1 | 低 | 高 | 低 | 高 | 高 | 低 | 高 | 高 |
6 | * | * | * | * | 0 | 1 | 1 | 0 | 低 | 高 | 低 | 高 | 高 | 高 | 高 | 高 |
7 | * | * | * | * | 0 | 1 | 1 | 1 | 低 | 高 | 高 | 高 | 低 | 低 | 低 | 低 |
8 | * | * | * | * | 1 | 0 | 0 | 0 | 低 | 高 | 高 | 高 | 高 | 高 | 高 | 高 |
9 | * | * | * | * | 1 | 0 | 0 | 1 | 低 | 高 | 高 | 高 | 高 | 低 | 高 | 高 |
- | * | * | * | * | 1 | 0 | 1 | 0 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 高 |
E | * | * | * | * | 1 | 0 | 1 | 1 | 低 | 高 | 低 | 低 | 高 | 高 | 高 | 高 |
H | * | * | * | * | 1 | 1 | 0 | 0 | 低 | 低 | 高 | 高 | 低 | 高 | 高 | 高 |
L | * | * | * | * | 1 | 1 | 0 | 1 | 低 | 低 | 低 | 低 | 高 | 高 | 高 | 低 |
P | * | * | * | * | 1 | 1 | 1 | 0 | 低 | 高 | 高 | 低 | 低 | 高 | 高 | 高 |
#空白# | * | * | * | * | 1 | 1 | 1 | 1 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 低 |
從圖案設計保存的 數字、連接符、空白 可以用作顯示電話號碼,英文字母 排列正確便是 HELP 估計是 求救用途
第0位元組 | 用途 | |||||||
---|---|---|---|---|---|---|---|---|
資料 | ||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 第 7 至 0 位元,正常編碼 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 第 7 至 1 位元,正常編碼 第 0 位元, B編碼 |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 第 7 至 4 位元,正常編碼 第 3 至 0 位元, B編碼 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 第 7 至 0 位元, B編碼 |
強度設定
調整 MAX7219 的電壓第0位元組 | 用途 | |||||||
---|---|---|---|---|---|---|---|---|
無效 | 資料 | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
* | * | * | * | * | * | * | * | 0 至 15 ,數值越大越光 |
掃瞄範圍
開放 資料暫存器 的數量第0位元組 | 用途 | |||||||
---|---|---|---|---|---|---|---|---|
無效 | 資料 | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
* | * | * | * | * | * | * | * | 0 至 7 ,使用位元數量 |
關機狀態
啟用功能時所有 陽極引腳 發出 低電壓,所有 陰極引腳 發出 高電壓關機狀態 會被 顯示模式 覆蓋
第0位元組 | 用途 | |||||||
---|---|---|---|---|---|---|---|---|
無效 | 資料 | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
* | * | * | * | * | * | * | * | 0 或 1 : 0 為 確認關機 ; 1 為 取消關機 |
顯示測試
啟用功能時所有 陽極引腳 發出 高電壓,所有 陰極引腳 發出 低電壓顯示模式 能覆蓋 關機狀態
第0位元組 | 用途 | |||||||
---|---|---|---|---|---|---|---|---|
無效 | 資料 | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
* | * | * | * | * | * | * | * | 0 或 1 : 0 為 正常顯示 ; 1 為 測試顯示 |
1088AS八乘八點陣顯示器
1088AS八乘八點陣顯示器 正面
正面除了印下型號,還有一粒點,方便辨認
在下之前都一塊 八乘八點陣顯示器
之前的是 1088BS ,這次的是 1088AS
(型號印刷的顏料非常容易褪色,編寫完這篇文章後 1088AS 都已經褪色)
同樣印有編碼的方向為正面
MAX7219模組
MAX7219模組 正面
有一些 曲引腳、晶片座、引腳座 等電子零件
MAX7219模組 背面
MAX7219模組 有 輸入 及 輸出 方向
輸入方向
編號 | 引腳 | 方向 | 用途 |
---|---|---|---|
1 | VCC | 電源 (接受 4.0V 至 5.5V) | |
2 | GND | 接地 | |
3 | DIN | 輸入 | 資料輸入 資料以 最高有效位 送出 總共要送出 12位元資料 ,每次操作需要發送 2次8位元資料 第15至12位元資料為無效位元,但仍必須發送 |
4 | CS | 輸入 | 晶片選擇 低電壓 為 選擇 高電壓 為 不選擇 |
5 | CLK | 輸入 | 時脈 低電壓 為 接收資料 高電壓 為 送出資料 |
輸出方向
編號 | 引腳 | 方向 | 用途 |
---|---|---|---|
1 | VCC | 與 輸入 VCC 相同 | |
2 | GND | 與 輸入 GND 相同 | |
3 | DOUT | 輸出 | 資料輸出 每次輸入1位元資料,會輸出1位元資料 |
4 | CS | 輸入 | 與 輸入 CS 相同 |
5 | CLK | 輸入 | 與 輸入 CLK 相同 |
一粒 10KΩ 電阻
一粒 104陶瓷電容
104 意思是 10 * 104 = 100000pF = 100nF = 0.1uF
一粒 25V 10uF 電容
將 MAX7219 及 八乘八點陣顯示器 安裝到 模組上
安裝 MAX7219 時要 面向輸入方向
安裝 八乘八點陣顯示器 時要 當正面面向自己時輸入方向在左側
線路接駁
在下的線路原型,非常簡單
接駁電源及接地,再使用其中3支引腳接駁 MAX7219模組
正式接駁時,在下再懶一點,直接駁 MAX7219模組連接到麵包板上,使用 Arduino 其中 2支引腳 作為 電源 及 接地
但在下測試時,發現控制第4行、第8行時出現問題,而且網上翻查不到原因
因此在下將 MAX7219 及 八乘八點陣顯示器 卸除來測試
在下為了方便測試亦設計了一塊 八乘八點陣顯示器轉接器 的 印刷電腦板
八乘八點陣顯示器轉接器設計 正面
八乘八點陣顯示器轉接器設計 背面
八乘八點陣顯示器轉接器原型 正面
八乘八點陣顯示器轉接器原型 背面
焊接 電阻 及 引腳座 到 印刷電路板
設計原型
如在下所料,線路又多又亂
八乘八點陣顯示器連接器
使用 Arduino Nano
MAX7219 被大量跳線包圍
著亮 所有LED 只有第4及第8行 光度正常,其他非常暗
因為在下改為每行只需要著亮 1粒LED,以波紋方式顯示,方便在下跟進
最後依然只有 第4及第8行 光度正常,其他雖然暗,但勉強能看到
但最少證明在下的線路正確,MAX7219 及 八乘八點陣顯示器 都正常
(光度不平均應該是沒有正確安裝 電容 及 電阻)
最後在下仔細檢查 MAX7219模組 的背後,發現晶片座有 2支引腳 焊接不良
(最初的相片是已經處理焊接問題)
使用放大器可見到有 2支引腳 被 錫絲 連著
而這 2支引腳 就是用作控制 八乘八點陣顯示器 第4行及第8行
因此在下將 2支引腳 之間的錫絲焊掉
重新安裝到 MAX7219模組 測試,終於能正常顯示
總結
使用 MAX7219 前都不懂如何區分 共陽 及 共陰 的零件,每次都要用 萬用表 或 接駁電源及接地測試在下發現原來購買的 LED顯示器 共陽 會以 **B* 命名, 共陰 會以 **A* 命名,但這只是一種快速檢查方法,並非所有零件都會這樣命名
購買 MAX7219模組 本來以為接駁線路後便可以使用,但竟然出現問題,網上完全沒有相關問題 (或在下不懂如何尋找)
唯有將 MAX7219 及 1088AS 與 MAX7219模組 分拆出來測試,又發現線路正常,因此在下認為是 MAX7219模組 有問題
再仔細觀察才知道是引腳問題 (瑕疵品) ,但幸好這種小問題在下仍有能力解決,否則在下不知從何入手
電器有時都會有些小問題,其實損壞程度不算太嚴重,都可以嘗試了解問題的成因,只要有合適的工具便可以自行修理
又可以學習知識,又可以慳錢,又可以避免浪費
沒有留言 :
張貼留言