自作リフローが完成しましたので、今まで 手の出せなかった 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
1024256No0No8/24
1025DAB176
1025DAL176
1024256No0Yes8/26
1064DAA176
1064DAK176
1024640No0No8/24
1064DAB176
1064DAL176
1024640No0Yes8/26
2025DAA176
2025DAK176
2048256No0No8/24
2025DAB176
2025DAL176
2048256No0Yes8/26
2064DAA176
2064DAK176
2048640No0No8/24
2064DAB176
2064DAL176
2048640No0Yes8/26
1025DAG176
1025DAR176
1024256Yes(INT)32No8/24
1025DAH176
1025DAS176
1024256Yes(INT)32Yes8/26
1064DAG176
1064DAR176
1024640Yes(INT)32No8/24
1064DAH176
1064DAS176
1024640Yes(INT)32Yes8/26
2025DAG176
2025DAR176
2048256Yes(INT)32No8/24
2025DAH176
2025DAS176
2048256Yes(INT)32Yes8/26
2064DAG176
2064DAR176
2048640Yes(INT)32No8/24
2064DAH176
2064DAS176
2048640Yes(INT)32Yes8/26

回路図

PIC32MZ-DA_circuit

プリント基板外形(部品面パターンとシルクのみ表示)

PIC32MZ_DA_PCB

部品表

部番メーカー名型名個数
seeed プリント基板 (58.42*58.42mm)1
U1マイクロチップPIC32MZ1025DAG1761
U2TILM1117MPX-1.8V1
U3エプソンFA238 24MHz1
NF1-14村田NFM18PF105R0J3D(1μF/6.3V)14
P1-4秋月ピンソケット(2*8+2*10)4
R1チップ抵抗1MΩ 16081
R2-R12 チップ抵抗 20kΩ 160811
R13 チップ抵抗 1kΩ 1608
R14 チップ抵抗 10kΩ 1608
C1-3電解コンデンサ22μF/16V(MH7)3
C4-5チップコンデンサ22pF/50V 16082
C6 電解コンデンサ 100μF/16V(MH7)1
C7-8 チップコンデンサ 0.1μF/25V 16082
PIC32MZ_DA_datasheet_JP

lm1117

FA238

NFM18PS

動作チェック

リフローが終了したら、ピンヘッダーを取付け、85ピンMCLR、170ピンPGED2(RB7)、13ピンPGEC2(RB6)、+3.3V電源、GNDピンを PICプログラマを利用し下記のプログラムを書き込みます。書き込み終了後、オシロスコープで各ピンの波形を観測します。この時きれいな矩形波でないときは、隣のピンなどとショートしている可能性がありますので、ピンのはんだ付けを修正してください。
161ピン(RC14)、162ピン(RC13)は入力専用ピンですので、この方法ではチェックができません。

動作チェック用ソフトウエア

クロック仕様

クロック名適用モジュール周波数
SYSCLKWDT,DMT,GPU,ADC,EBI,DMA,Iterrupt60MHz~200MHz
PBCLK1System ModuleDC~100MHz
PBCLK2SPI DC~100MHz
PBCLK3Timers,OC,IC DC~100MHz
PBCLK4Ports(SFR access only) DC~100MHz
PBCLK5 SDHC,Flash,RNG,USB,SQI(SFR access only) 60MHz~100MHz
PBCLK6 RTCC(SFR access only) DC~100MHz
PBCLK7CPU,DMT DC~200MHz
REFCLKO1SPI50MHz max
REFCLKO2SQI 50MHz max
REFCLKO3ADC 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解像度RGB332RGB565RGB888RGB332RGB565RGB888RGB332RGB565RGB888
表示色256色65536色1677万色256色65536色1677万色256色65536色1677万色
320*24075kB150K225kB150kB300kB450kB225kB450kB675kB
640*480300kB600KB900KB600KB1200KB1800KB900KB1800KB2700KB
800*480375KB750KB1125KB750KB1500KB2250KB1125KB2250KB3375KB
800*600469KB938KB1407KB938KB1875KB2813KB1407KB2813KB4219KB
1024*768768KB1356KB2304KB1356KB2712KB4068KB2304KB4608KB6912KB

注意:LCD解像度をRGB565に設定すると、GD0(R0),GD1(R1),GD2(R2),GD8(G0),GD9(G1),GD16(B0),GD17(B1),GD18(B2)は汎用IOとして使用できます。

GLCDモジュールの設定