VPさん

マゾ時計にはメインのプロセッサの他に表示を担当するVP(ビジュアルプロセッサ)と呼んでいるPICが3つあって、それぞれLEDマトリクスの行(VP0)、右半分の列(VP1)、左半分の列(VP2)を担当している。

それぞれはシリアルで繋がっていて、メインプロセッサのTXから行VPのRXへ、行VPのTXから二つの列プロセッサのRXへ、左側の桁VPのTXからメインプロセッサのRXに繋がっている。

桁VPからは水平同期に一回、各種ステータスを含んだデータが来る。

それをトリガーにしてメインプロセッサは1ライン分のデータを行VPに送信する。実際は行VPは256バイトのFIFOを持っているため、メインプロセッサは数ライン先のデータまで先行して送る。

ここで送られるデータにはフレームバッファの内容の他、同期信号、全体輝度の情報、電波受信ユニットに渡すバンド切り替え信号を含んでいる。

行VPはメインプロセッサからのデータの中の同期信号を探し、同期信号を見つけると、順々に行信号をLEDマトリクスの行駆動用トランジスタアレイに出力するようになり、同時に桁VPにデータを送るようになる。

桁VPに送るデータにも同期信号が含まれており、桁VPは同期信号を見つけると以降は行VPと完全に同期して動作するようになる。

フレームバッファの内容は各ドットの輝度として送られてくるので、桁VPは送られてきたフレームバッファの内容を分解し、各LEDの点灯時間を制御するためのデータに変換し、そのタイミングにしたがって各LEDを点灯、消灯する。

また、電波受信ユニットに渡すバンド切り替え信号の出力、全体輝度を制御するためのPWM信号の出力を行い、ボタン入力のスキャン、リモコン信号の受信、電波受信ユニットからの信号の受信も行う。

ボタンの押下情報や、受信したデータは水平同期に一回、メインプロセッサに送り返す。

このループの繰り返しで表示が成立する。