最近設計一些數字顯示工具,又可以因應情況改變數字內容
但使用 Arduino 或 Raspberry Pi Pico 等微控制器,在應用上又有點浪費
因此在下想使用一些操作較直觀、簡單的微控制器
但使用 Arduino 或 Raspberry Pi Pico 等微控制器,在應用上又有點浪費
因此在下想使用一些操作較直觀、簡單的微控制器
AT28C256 具有 15位元地址,即是共有 32768個地址組合
每個地址能夠保存 8位元資料 ,總共可以保存 262144位元資料
其型號的 256 就是指能夠保存 256K 位元資料
每個地址能夠保存 8位元資料 ,總共可以保存 262144位元資料
其型號的 256 就是指能夠保存 256K 位元資料
AT28C256 外觀
AT28C256的正面
AT28C256的背面
AT28C256 引腳
編號 | 引腳 | 方向 | 用途 |
---|---|---|---|
1 | A14 | 輸入 | 第14位元地址 |
2 | A12 | 輸入 | 第12位元地址 |
3 | A7 | 輸入 | 第7位元地址 |
4 | A6 | 輸入 | 第6位元地址 |
5 | A5 | 輸入 | 第5位元地址 |
6 | A4 | 輸入 | 第4位元地址 |
7 | A3 | 輸入 | 第3位元地址 |
8 | A2 | 輸入 | 第2位元地址 |
9 | A1 | 輸入 | 第1位元地址 |
10 | A0 | 輸入 | 第0位元地址 |
11 | IO0 | 輸入輸出 | 第0位元輸入輸出 |
12 | IO1 | 輸入輸出 | 第1位元輸入輸出 |
13 | IO2 | 輸入輸出 | 第2位元輸入輸出 |
14 | GND | 接地 | |
15 | IO3 | 輸入輸出 | 第3位元輸入輸出 |
16 | IO4 | 輸入輸出 | 第4位元輸入輸出 |
17 | IO5 | 輸入輸出 | 第5位元輸入輸出 |
18 | IO6 | 輸入輸出 | 第6位元輸入輸出 |
19 | IO7 | 輸入輸出 | 第7位元輸入輸出 |
20 | CE | 輸入 | 低電壓時使用晶片 |
21 | A10 | 輸入 | 第10位元地址 |
22 | OE | 輸入 | 低電壓為輸出狀態;高電壓為輸入狀態 |
23 | A11 | 輸入 | 第11位元地址 |
24 | A9 | 輸入 | 第9位元地址 |
25 | A8 | 輸入 | 第8位元地址 |
26 | A13 | 輸入 | 第13位元地址 |
27 | WE | 輸入 | 當電壓由高到低時,將資料寫入到地址 |
28 | VCC | 接受 4.5V 至 5.5V 電源 |
線路原型
原型設計的線路已經很複雜
接駁線路
實際的線路更加複雜
主角一如以往,被線路包圍
雙列開閉掣,用來控制 地址位置 及 寫入或讀取模式
使用電阻器連接到 接地 及 A0, A1, A2, A3, OE ,當開啟開關掣前,讓訊號保持 低電壓
當開啟開閉掣後,接通電源,由於 100KΩ電阻器令訊號迴避電阻值較高的線路
因此當開啟開關掣令電源接通後,會接通駁到 A0, A1, A2, A3, OE 保持 高電壓
當開啟開閉掣後,接通電源,由於 100KΩ電阻器令訊號迴避電阻值較高的線路
因此當開啟開關掣令電源接通後,會接通駁到 A0, A1, A2, A3, OE 保持 高電壓
另一個雙列開關掣,用來控制 地址的資料
使用電阻器連接到 電源 及 IO引腳 ,當開啟開關掣前,讓訊號保持 高電壓
當開啟開閉掣後,接通接地,令線路接通,電源便不會到達 IO引腳 ,令 IO引腳保持 低電壓
當開啟開閉掣後,接通接地,令線路接通,電源便不會到達 IO引腳 ,令 IO引腳保持 低電壓
寫入資料
接駁電源後,通常未寫入資料前,有些地址偶然會有些測試資料
將 OE引腳 接駁到高電壓,設定為寫左模式,所有 IO引腳 會改變為 輸入狀態
設定寫入資料的內容
按下按壓按鈕,將 WE引腳 從 高電壓 改變為 低電壓,便可以將資料寫入到地址
重置寫入資料的內容,並將 OE引腳 接駁回 低電壓
設定的內容便可以從選取的地址中讀取
設定的內容便可以從選取的地址中讀取
讀取資料
將 AT28C256 設計成 七段顯示器解碼器
補充資料
以前因為不懂接駁 按壓按鈕,差點將 Arduino UNO 燒毀
(可能之前 維修 Arduino Nano 燒毀的 S4二極體 就是這樣損壞)
這種接駁方法,當未按下 按壓按鈕 時,訊號線會保持 低電壓
但當按下 按壓按鈕 後,電源 及 接地 接通,在接近沒有 電阻 的情況下,便會短路
(可能之前 維修 Arduino Nano 燒毀的 S4二極體 就是這樣損壞)
這種接駁方法,當未按下 按壓按鈕 時,訊號線會保持 低電壓
但當按下 按壓按鈕 後,電源 及 接地 接通,在接近沒有 電阻 的情況下,便會短路
在下發現很多教學都會使用 10KΩ電阻器 連接,使用 按壓按鈕 或 開關按鈕 都不會發生問題
下拉電阻
當要讓訊號引腳 保持低電壓時 使用 下拉電阻 (Pull-Down Resistor)
按下 按壓按鈕 後,由於 下拉電阻 的 電阻值較大,令電流向 訊號引腳
按下 按壓按鈕 後,由於 下拉電阻 的 電阻值較大,令電流向 訊號引腳
上拉電阻
當要讓訊號引腳 保持高電壓時 使用 上拉電阻 (Pull-Up Resistor)
按下 按壓按鈕 後,由於 訊號引腳 的 電阻值較大,令電流向 接地
(通常微控制器的引腳在設定為輸入時,都會提供 10KΩ 的上拉電阻,避免電流過大導致引腳以至整粒晶片損壞)
由於 上拉電阻 已經將電流值降低 ,因此不會短路
按下 按壓按鈕 後,由於 訊號引腳 的 電阻值較大,令電流向 接地
(通常微控制器的引腳在設定為輸入時,都會提供 10KΩ 的上拉電阻,避免電流過大導致引腳以至整粒晶片損壞)
由於 上拉電阻 已經將電流值降低 ,因此不會短路
雙列開關掣
由於原本的雙列開關掣引腳太短,無法穩定地在麵包板上
因此購買其他類型的雙列關開掣
因此購買其他類型的雙列關開掣
最常見的雙列開關掣,大約港幣2元
晶片設計的雙列開關掣,大約港幣7元
同樣是晶片設計的雙列開關掣,開關掣凹陷到切換糟中,大約港幣4元(以8位計算)
雖然晶片設計的雙列開關掣最昂貴,但開關掣最穩固
在麵包板測試時,不容易因為用力推按開關掣導致雙列開關掣而郁動
但購買時要清楚確認雙列開關掣是通孔設計還是表面黏著設計
其實表面黏著設計的雙列開關掣只是將通孔設計的引腳剪短
在麵包板測試時,不容易因為用力推按開關掣導致雙列開關掣而郁動
但購買時要清楚確認雙列開關掣是通孔設計還是表面黏著設計
其實表面黏著設計的雙列開關掣只是將通孔設計的引腳剪短
總結
最初接駁線路時,由於在下想方便接駁,因此拿在手上接駁線路
可能某些線路接駁錯誤產生短路,接通電源後 AT28C256 的麵包板背面異常高溫,在下立即將電源線拔除
然後再觸摸 AT28C256 的表面,溫度比麵包板背面更熱,幸好麵包板未熔化
由於溫度太熱,唯有等待降溫再重新接駁線路才正常運作
雖然可能有機會燙傷,但如果想避免晶片因為接駁錯誤而損壞
通電前,先用手指放在晶片上;通電後,如果晶片表面溫度異常熱,便可以立即拔除電源
可能某些線路接駁錯誤產生短路,接通電源後 AT28C256 的麵包板背面異常高溫,在下立即將電源線拔除
然後再觸摸 AT28C256 的表面,溫度比麵包板背面更熱,幸好麵包板未熔化
由於溫度太熱,唯有等待降溫再重新接駁線路才正常運作
雖然可能有機會燙傷,但如果想避免晶片因為接駁錯誤而損壞
通電前,先用手指放在晶片上;通電後,如果晶片表面溫度異常熱,便可以立即拔除電源
最初測試寫入資料時,錯誤地將 WE引腳 電壓變化由低至高 為 寫入,發現會清除原本的資料,新資料卻沒有寫入
最後重新閱讀資料表才發現是將 電壓變化由高至低 才是執行
最後重新閱讀資料表才發現是將 電壓變化由高至低 才是執行
使用 AT28C256 前,在下想使用 ATmega328P 製作 七段顯示器解碼器
但感覺有點殺雞用牛刀, ATmega328P 可以編寫更複雜的程式內容,而且還要配置 石英晶體振盪器,比較麻煩
雖然有 4511 及 4543 兩種 七段顯示器解碼器,但 4511 只對應 共陰七段顯示器 ,而 4543 只對應 共陽七段顯示器
而且兩者都只支援 BCD格式 ,不支援 十六進制,因此在下使用 AT28C256 自行製作七段顯示器解碼器
最後在下使用 AT28C256 便可以製作出支援 共陽及共陽的七段顯示器解碼器
但感覺有點殺雞用牛刀, ATmega328P 可以編寫更複雜的程式內容,而且還要配置 石英晶體振盪器,比較麻煩
雖然有 4511 及 4543 兩種 七段顯示器解碼器,但 4511 只對應 共陰七段顯示器 ,而 4543 只對應 共陽七段顯示器
而且兩者都只支援 BCD格式 ,不支援 十六進制,因此在下使用 AT28C256 自行製作七段顯示器解碼器
最後在下使用 AT28C256 便可以製作出支援 共陽及共陽的七段顯示器解碼器
沒有留言 :
張貼留言