電子工作

AVRピン解析

AVRワンチップマイコンのピン割り当てを解析してみました。といっても、テスタでパターンをたどっただけですが。外部からのフラッシュROM書き換えのヒントになればと思ったのですが、結論から言えば、このAVR、電源、リセット、LED、ファンの制御しかしていないことがわかりました。ただ、いくつか不明な点は残りますが。。
現時点で全く不明なのが、12pinのフラッシュに延びているライン。CPUのttyS1からの命令でフラッシュをライトプロテクトする、くらいしかその必要性を感じないのですが。。ピン番号もわかったし、AVRのソースコードを解析すればすぐわかるかも。 また、デバッグコネクタCN5に伸びている6pinも不明。I/Oすら不明。これに関しては後ほどコード解析してポートレジスタ設定を読めばすぐわかると思います。 少なくともAVR単体でフラッシュROMにデータをライトできないということはわかりました。となると、外部からフラッシュROMを書き込むにはJTAGに頼るしかなさそう。。これを機会にJTAGアダプタ作るかな。。

PinPin名称I/OLinkStationでの機能
1RESET#IルネサスのリセットIC「M51957」から出力されるリセット信号が接続されている。リセットICで3.3V系の電圧監視をして、ある電圧(分圧抵抗にて設定)を下回るとAVRに対しリセットをかける。AVR ISP(In-System Programming)コネクタCN4-5pinに接続
2PD0/RXDIR62にて3.3Vプルアップ。FIL8を通してCPUへ。(おそらくttyS1に接続)
3PD1/TXDINC
4XTAL2-4MHzのXtalに接続
5XTAL1-
6PD2/INT0IR59にて3.3Vプルアップ。FIL4を通してCN5(CPUデバッグコネクタ、JTAG)の14pinに接続。
7PD3/INT1OLED4(DIAG)LEDに接続。
8PD4/T0OLED3(DISKFULL)LEDに接続。
9PD5/T1IR48にて3.3Vプルアップ。FIL2を通して電源コネクタへ。おそらくFANモータON/OFF制御。PWMしてるのかは不明。FANモータからの回転パルス入力。
10GND-GND
11PD6/ICPOLED1(POWER)LEDに接続。
12PB0/ADIN0OR63にて3.3Vプルアップ。フラッシュROM(29PL32TM)の15PIN付近に接続。機能は不明。ライトプロテクトか? 12pin「RESET」に接続されていることが判明。(2004/4/22追記)
13PB1/ADIN1OFIL9を通してマイコンへ接続。IDEコントローラへ接続。イーサーネットコントローラへ接続。別系統でマイコンへ接続。おそらく各デバイスのリセット信号と思われる。
14PB2IR56にてプルアップ後、リセットSWへ接続。
15PB3/OC1IR54にてプルアップ後、PowerSWへ接続。
16PB4OR,Trを通してPchMOSFETに接続。FANモータ回転数制御。16pinがLで、FANモータに約8V供給、Hで、12V供給。
17PB5/MOSIOR,Trを通してPchMOSFETに接続。おそらく電源ON/OFF制御。CN4(ISP)-4pinへ接続。
18PB6/MISOICN4(ISP)-1pinへ接続。
19PB7/SCKICN4(ISP)-3pinへ接続。
20Vcc-3.3V駆動。AVR電源は、コンセント差し込みで常時ON。(他のデバイスの電源、リセット制御をするため。)

AVRから吸い出したコードから、各PINのI/Oを上の表に追記しました。勘違いしていたのはFANモータ制御で、PWM制御などしておらず、回転数をモニターして、FANモータの供給電圧のHi/Lowを切り替えているだけでした。Lowの時に指でFANを止めると、モータ供給電圧が8V→12Vになりました。もしかしたら、マイコンからのttyS1によってもHi/Lowを切り替えているかもしれません。
3.3V電源はチョッパレギュレータで生成していました。どおりででっかいコイルが付いているわけです。チョッパレギュレータとわかると、その高周波ノイズが気になってしまうのは私だけでしょうか。実際、PCBに耳を近づけるとキーというかすかな音が聞こえていますね。
040422
LinkStation、玄箱1台ずつ、FlashROMの内容を消してしまったので、本格的にフラッシュ書き込みの方法について模索してます。まず、AVR12pinからFlashROMに延びているラインは、RESETに接続されていることが判明。ちなみに当初予想したライトプロテクト(15pin)は、Vccが接続されており常にプロテクト解除状態です。詳しくはフラッシュ解析のコーナーで書きます。

-電子工作