
自作リフローが完成しましたので、今まで 手の出せなかった ICチップの下にサーマルパッドがついているPIC32MZ-DAのCPUボードを作ります。
PIC32MZ-DAの機能を調べるために、176pin 0.4mmピッチのQFPパッケージを2.54mmピッチの変換と、コア電圧1.8Vの生成、水晶発振子が載った 一番単純な CPU基板を製作します。
このCPUの特徴は 以下の通りです。
- コア: 200 MHz / 330 DMIPS MIPS32® microAptiv™
- プログラムメモリ:2048/1024kB, データメモリ:256/640kB, DDR2 SDRAM:32MB
- SD/SDIO/eMMC バス インターフェイス( 最大50 MHz)
- シリアルクワッド インターフェイス( 最大80 MHz)
- 外部バス インターフェイス( 最大50 MHz)
- グラフィック機能 ( 3 レイヤ グラフィック コントローラ , 高性能2D グラフィック処理ユニット )
- オーディオ インターフェイス ( オーディオデータ通信: I2S、LJ、RJ , オーディオ制御インターフェイス: SPI、I2C , オーディオ マスタクロック: USB に同期した小数分周クロック周波数 )
- 高速通信インターフェイス( USB 2.0 互換ハイスピードOn-The-Go (OTG) コントローラ , MII およびRMII インターフェイスを備えた10/100 Mbps Ethernet MAC )
- 12 ビットADC モジュール ( 最大6 個のADC 回路(5 つが専用、1 つが共有) による18 Msps の変換レート )
- 6 個のデジタル コンパレータと6 個のデジタルフィルタ
- LIN 1.2 およびIrDA® プロトコルをサポート
以上より、多くのRAMとグラフィックLCDコントローラ(GLCD)/2Dグラフィック処理ユニット(GPU)でLCDをコントロールできる機能が内蔵していますので、TFT液晶パネルの表示に挑戦したいと思います。
グラフィックLCDコントローラ GLCD コントローラの主な特長は以下の通りです。
- 最大50 MHz の画素クロック
- 最大800×480 (WVGA)、オーバーレイあり( アプリケーションに依存)
- 最大1280×1024 (SXGA) の静止画像
- 色深度: 8、16(1)、18、24 ビット
- 入力フォーマット: RGBA8888、ARGB8888、RGB888、RGB565、RGBA5551、YUYV、RGB332、LUT8、グレースケール
- 出力フォーマット: RGB888、RGB666、BT.656
- 18 ビット ディスプレイ向けディザ処理
- 高品質YUV 変換
- 256 色をサポートするCLUT (Global color palettelook-up table)
- グローバルなガンマ補正/ 輝度/ コントラストをサポート
- 設定可能なカーソル(16 色をサポート)
- 設定可能なHSYNC、VSYNC、DE、PCLK 極性
- 内蔵DMA によるCPU 負荷の軽減
- 設定可能なHSYNC およびVSYNC 割り込み( エッジトリガとレベルトリガを選択可能)
また、2D グラフィック処理ユニット(GPU)の主な特長は以下の通りです。
- メモリに対する64 ビット バスアクセス( 高スルー プット)
- グローバルなクロックゲート処理( 低消費電力)
- コマンドバッファ
- プログラマブルなラスタ演算( 完全なアルファ ブレンディングと透過性を提供 :ROP2、ROP3、ROP4)
- 固定関数 ( 線描画 , 矩形塗りつぶし, 矩形クリア , ビットブロック転送(Bit blit) ( 拡大/ 縮小/ フィルタ処理) )
- ソースデータ フォーマット ( RGB888、RGB555、RGB565、RBG323、1 ビット モノクローム )
- デスティネーション データ フォーマット ( RGB888、RGB555、RGB565 )
- YUV → RGB 変換
- ディザ処理
- 回転
- クリッピング
- テキスト描画
LCDインターフェースの信号ラインは以下のようになっています。
- VSYNC/RJ4(150pin)
- HSYNC/RJ5(149pin)
- GCLK/RJ6(148pin)
- GEN/RJ7(147pin)
- GD23/RK0(137pin) – B7
- GD22/RD13(81pin) – B6
- GD21/RH15(92pin) – B5
- GD20/RJ3(151pin) – B4
- GD19/RK7(130pin) – B3
- GD18/RJ10(146pin) – B2
- GD17/RF4(97pin) – B1
- GD16/RF5(89pin) – B0
- GD15/RK6(131pin) – G7
- GD14/RK5(132pin) – G6
- GD13/RK4(133pin) – G5
- GD12/RK3(134pin) – G4
- GD11/RD3(75pin) – G3
- GD10/RD2(74pin) – G2
- GD9/RJ12(145pin) – G1
- GD8/RJ14(143pin) – G0
- GD7/RD12(80pin) – R7
- GD6/RF0(91pin) – R6
- GD5/RF1(90pin) – R5
- GD4/RG1(95pin) – R4
- GD3/RG0(96pin) – R3
- GD2/RD9(76pin) – R2
- GD1/RA4(127pin) – R1
- GD0/RJ13(144pin) – R0
PIC32MZ DA(QFP:176ピン)の種類
型名 PIC32MZ | プログラム メモリ(KB) | データ メモリ(KB) | DDR2 コントローラ | DDR2 容量(MB) | 暗号 | DMA |
1025DAA176 1025DAK176 | 1024 | 256 | No | 0 | No | 8/24 |
1025DAB176 1025DAL176 | 1024 | 256 | No | 0 | Yes | 8/26 |
1064DAA176 1064DAK176 | 1024 | 640 | No | 0 | No | 8/24 |
1064DAB176 1064DAL176 | 1024 | 640 | No | 0 | Yes | 8/26 |
2025DAA176 2025DAK176 | 2048 | 256 | No | 0 | No | 8/24 |
2025DAB176 2025DAL176 | 2048 | 256 | No | 0 | Yes | 8/26 |
2064DAA176 2064DAK176 | 2048 | 640 | No | 0 | No | 8/24 |
2064DAB176 2064DAL176 | 2048 | 640 | No | 0 | Yes | 8/26 |
1025DAG176 1025DAR176 | 1024 | 256 | Yes(INT) | 32 | No | 8/24 |
1025DAH176 1025DAS176 | 1024 | 256 | Yes(INT) | 32 | Yes | 8/26 |
1064DAG176 1064DAR176 | 1024 | 640 | Yes(INT) | 32 | No | 8/24 |
1064DAH176 1064DAS176 | 1024 | 640 | Yes(INT) | 32 | Yes | 8/26 |
2025DAG176 2025DAR176 | 2048 | 256 | Yes(INT) | 32 | No | 8/24 |
2025DAH176 2025DAS176 | 2048 | 256 | Yes(INT) | 32 | Yes | 8/26 |
2064DAG176 2064DAR176 | 2048 | 640 | Yes(INT) | 32 | No | 8/24 |
2064DAH176 2064DAS176 | 2048 | 640 | Yes(INT) | 32 | Yes | 8/26 |
回路図
PIC32MZ-DA_circuitプリント基板外形(部品面パターンとシルクのみ表示)
PIC32MZ_DA_PCB部品表
部番 | メーカー名 | 型名 | 個数 |
seeed | プリント基板 (58.42*58.42mm) | 1 | |
U1 | マイクロチップ | PIC32MZ1025DAG176 | 1 |
U2 | TI | LM1117MPX-1.8V | 1 |
U3 | エプソン | FA238 24MHz | 1 |
NF1-14 | 村田 | NFM18PF105R0J3D(1μF/6.3V) | 14 |
P1-4 | 秋月 | ピンソケット(2*8+2*10) | 4 |
R1 | チップ抵抗 | 1MΩ 1608 | 1 |
R2-R12 | チップ抵抗 | 20kΩ 1608 | 11 |
R13 | チップ抵抗 | 1kΩ 1608 | 1 |
R14 | チップ抵抗 | 10kΩ 1608 | 1 |
C1-3 | 電解コンデンサ | 22μF/16V(MH7) | 3 |
C4-5 | チップコンデンサ | 22pF/50V 1608 | 2 |
C6 | 電解コンデンサ | 100μF/16V(MH7) | 1 |
C7-8 | チップコンデンサ | 0.1μF/25V 1608 | 2 |




動作チェック
リフローが終了したら、ピンヘッダーを取付け、85ピンMCLR、170ピンPGED2(RB7)、13ピンPGEC2(RB6)、+3.3V電源、GNDピンを PICプログラマを利用し下記のプログラムを書き込みます。書き込み終了後、オシロスコープで各ピンの波形を観測します。この時きれいな矩形波でないときは、隣のピンなどとショートしている可能性がありますので、ピンのはんだ付けを修正してください。
161ピン(RC14)、162ピン(RC13)は入力専用ピンですので、この方法ではチェックができません。
動作チェック用ソフトウエア
クロック仕様
クロック名 | 適用モジュール | 周波数 |
SYSCLK | WDT,DMT,GPU,ADC,EBI,DMA,Iterrupt | 60MHz~200MHz |
PBCLK1 | System Module | DC~100MHz |
PBCLK2 | SPI | DC~100MHz |
PBCLK3 | Timers,OC,IC | DC~100MHz |
PBCLK4 | Ports(SFR access only) | DC~100MHz |
PBCLK5 | SDHC,Flash,RNG,USB,SQI(SFR access only) | 60MHz~100MHz |
PBCLK6 | RTCC(SFR access only) | DC~100MHz |
PBCLK7 | CPU,DMT | DC~200MHz |
REFCLKO1 | SPI | 50MHz max |
REFCLKO2 | SQI | 50MHz max |
REFCLKO3 | ADC | 50MHz max |
REFCLKO4 | SDHC | 50MHz max |
REFCLKO5 | GLCD | 50MHz max |
1)システムクロック設定(SYSCLK)・・・コンフィグレーションで設定する。
2)周辺クロック 出力周波数設定(fpbout)
Fpbout = SYSCLK(200MHz)/(PBDIV+1)
*PBDIVは、PBxDIVbits.PBDIVで設定する
3)リファレンスクロック出力周波数設定(Frefout)
Frefout = Frefin/(2(N+M/512))
*Freinは、REFOxCONbits.ROSEL で設定する
*Nは、REFOxCONbits.RODIV で設定する
*Mは、REFOxTRIMbits.ROTRIM で設定する
バグ情報
PIC32MZ1025DAG176を使用しているが、チップのバグが見つかった。
内蔵のDDR2が動かいないので、調査していたら DDR2を動作させるDDRVREFの内部回路が動作しないことがわかった。
対応策として、外部に0.9Vの電源をDDRVref(66ピン)に接続することが、Sillicon Errataに書かれていた。
ソフトウエアは、DDR2の初期化前に、CFGMPLLレジスタのINTVREFCONを0にすること(外部電源を使用する)
海外のサイトでは、VDDR1V8の電圧1.8Vを1kΩの抵抗2本で0.9Vを接続している例があった。
LCD解像度 vs データーメモリ容量
レイヤ数 | 1レイヤ | 1レイヤ | 1レイヤ | 2レイヤ | 2レイヤ | 2レイヤ | 3レイヤ | 3レイヤ | 3レイヤ |
LCD解像度 | RGB332 | RGB565 | RGB888 | RGB332 | RGB565 | RGB888 | RGB332 | RGB565 | RGB888 |
表示色 | 256色 | 65536色 | 1677万色 | 256色 | 65536色 | 1677万色 | 256色 | 65536色 | 1677万色 |
320*240 | 75kB | 150K | 225kB | 150kB | 300kB | 450kB | 225kB | 450kB | 675kB |
640*480 | 300kB | 600KB | 900KB | 600KB | 1200KB | 1800KB | 900KB | 1800KB | 2700KB |
800*480 | 375KB | 750KB | 1125KB | 750KB | 1500KB | 2250KB | 1125KB | 2250KB | 3375KB |
800*600 | 469KB | 938KB | 1407KB | 938KB | 1875KB | 2813KB | 1407KB | 2813KB | 4219KB |
1024*768 | 768KB | 1356KB | 2304KB | 1356KB | 2712KB | 4068KB | 2304KB | 4608KB | 6912KB |
注意:LCD解像度をRGB565に設定すると、GD0(R0),GD1(R1),GD2(R2),GD8(G0),GD9(G1),GD16(B0),GD17(B1),GD18(B2)は汎用IOとして使用できます。
GLCDモジュールの設定

