■ LCDパネル SP521P デジタル時計の製作 ■


 秋月電子で販売されている、デジタル・パネルメーター用のセグメント液晶パネル、「SP-521」を使用した、デジタル時計を製作しました。
 文字も大きく、スタティック・パネルはコントラストが高いので、とても見やすいLCDです。
 液晶パネルは省電力で、電池駆動が可能です。


SP-521パネルの駆動方法
 
SP-521パネルにはマニュアルが付属していない上に、秋月電子のページにも駆動方法の詳細が
記載されていません。
ネットで検索すると、簡単な概略の英文マニュアルが見つかりました。
 
○駆動方法
 ・DC(直流)は、液晶が焼き付きを起こすので印加してはいけない。
 ・コモン(B.P)とセグメント間の、交流印加電圧の最大定格は、10V。
  (マニュアルにはこの定格が最大値なのか実効値なのかを記載されていないので、
   5V回路からの直接駆動は危険です)
 ・端子のDC残留電圧、50mV。
 ・保存温度、-20〜+60℃。
 ・動作温度、-10〜+60℃。
 ・動作電圧、3V〜6V。
 ・交流パルスの動作周波数、32Hz〜128Hz。
 ・消費電流、0.8μA/cm2

 ・COM(B.P)端子には、5V未満で32Hz〜128Hz間の任意の周波数パルスを加える。
 ・表示しないセグメント端子には、COM(B.P)端子と同相の(同じ)パルスを加える。
 ・表示するセグメント端子には、COM(B.P)端子と逆相の(反転)パルスを加える。
 





● フル・ロジックIC 版 ●

 マイコン(プログラム)を使用せずに、汎用のロジックICのみで構成したデジタル時計です。
 マイコン版と比べて、基板面積は3倍、機能は1/10程度になりますが、マイコンの書込器等は不要です。


回路の解説
 
1.電源回路

 
 ・単3または単4の乾電池、2本〜3本で動作します。
 ・電池のサイズは、収納するケースによって選択して下さい。
 ・電池の本数は、LCDドライバーICが「74HC4543」タイプの場合は、2本(3V)動作が可能です。
 ・LCDドライバーICが「4543B」の場合は、このICの動作電圧が3Vからなので、3本(4.5V)を
  お勧めします。

2.基準信号 発振回路
 
 ・時刻カウントの基準となる正確な1Hz信号を作ります。
 ・74HC4060は、水晶の発振回路と14段の分周回路(最大1/16384)を一つにまとめたICです。
 ・水晶(Xtal)は、時計用の32.768KHzを使用して、分周器の最終段からは2Hzの信号が出ます。
 ・この2Hzの信号を、さらに74HC107で1/2分周して1Hzを得ています。
 
 ・この水晶発振回路は、電源ノイズや基板のパターンにより大きく影響を受けますから、
  各パーツはICの近くにまとめて配置します。
 ・周波数カウンターがあれば、TP端子の周波数が32.768KHzに近づくようにトリマー・コンデンサー
  を調整して下さい。
 ・水晶の個体差や電源電圧により、発振が不安定になる場合がありますので、TP端子が
  32.768KHzから大きくずれる場合は、100PFのコンデンサーを取り付けてみて下さい。
 ・周波数カウンターが無い場合は、1日〜1週間の誤差を見ながら、トリマー・コンデンサーを回して
  微調整して下さい。

3.秒カウンター回路
 
 ・74HC390は、10進(2進+5進)の非同期BCDカウンターが2回路入っています。
  (クロックの立ち下がりでカウントアップ)
 ・1つめのカウンターで0〜9秒を計数し、2つめのカウンターは0〜5をカウントした後、出力が6に
  なった瞬間にこのカウンターをクリア(リセット)するので、2つ合わせて00秒〜59秒を計数します。
 ・最上位の出力S12(QC)は、次の「分カウンター」の計数信号(1分)になります。
 
 ・時刻の設定時には、[Sec Reset & Hold]スイッチをONにすると、秒カウンターが強制的に00に
  固定されますので、標準時刻が00秒になった時点でスイッチを解除します。

4.分カウンター回路
 
 ・秒カウンター回路と同じ74HC390構成で、00分〜59分をカウントします。
 ・最上位の出力M12(QC)は、次の「時カウンター」の計数信号(1時間)になります。

5.時カウンター回路
 
 ・SP-521パネルは±1999までの表示なので、時計として使用する場合は12時間制となります。
 ・74HC160は同期式の10進カウンター、74HC107はJKタイプのフリップフロップです。
 ・12時間制の場合、AM12:59の次にAM1:00になるため、カウンターをクリア(リセット)する際に
  [1]にセットする必要があります。
 ・この動作のために「時カウンター」が[12]になった次の時間で、74HC160に[1]をロードさせます。
 ・時の上位桁は[0]と[1]しか必要が無いので、74HC160が9になった時に出力されるキャリー
  [CRY]信号で74HC107を[1]にセットし、一連の動作で1時〜12時を計数します。
 
 ・AMとPMの表示は、AM11:59の次がPM12:00になるため、「時カウンター」が11になった次の
  時間で、AM/PM用の74HC107を反転させます。
 
 ・通電が開始されたときには、抵抗器・ダイオード・コンデンサーによる「パワーオン・リセット回路」
  により、「分カウンター」と「時カウンター」が0にリセットされます。
  (通電の最初のみ、時刻はAM0:00から始まります)

6.時刻設定スイッチ
 
 ・2つの押しボタンスイッチは、抵抗器とコンデンサーの積分回路と74HC14によるシュミット
  トリガーで、スイッチのチャタリングを除去します。
 
 ・74HC153は、4入力1出力(×2回路)のセレクターです。
 ・[Time Set (L)]ボタンを押すと、「分カウンター」に接続されている1分単位のクロックが2Hzの
  信号に切り替わり、「分カウンター」が0.5秒単位で進みます。
 ・[Time Set (H)]ボタンを押すと、「分カウンター」のクロックが8Hzの信号に切り替わり、
  「分カウンター」が0.125秒の高速で進みます。
 
 ・「時カウンター」は「分カウンター」を高速で進めることにより、桁上げされて設定できます。
 ・設定時刻が表示と大きく離れている場合は、[Time Set (L)]ボタンと[Time Set (H)]ボタンを
  同時に押すことにより、クロックが32Hzの信号に切り替わり、「分カウンター」をさらに高速で
  進めることができます。

7.秒表示回路
 
 ・LCDの桁数が4桁なので、秒の表示はスイッチにより切り換えます。
 ・74HC157は、2入力1出力(×4回路)のセレクターです。
 ・スイッチにより、[時:分]表示と[秒]表示になるように、各カウンターからの出力を選択します。
 ・秒表示が選択された場合は、PM表示と上位桁の表示をブランキング(非表示)にします。

8.LCDドライバー回路
 
 ・冒頭の解説通り、SP-521パネルを駆動するには、コモンとセグメント共に交流のパルスが
  必要です。
 ・74HC4543または4543Bは、4bitのBCDから7セグメントコードに変換すると同時に、LCD表示に
  合った位相の反転信号を作り出す機能を搭載したICです。
 ・2種類のICは、動作電圧範囲に違いがあります。 74HC4543: 2〜6V , 4543B: 3〜18V
 ・PH(Phase)端子にLCDのコモンと同じ信号を加えるだけで、各セグメントの出力信号は、
  表示の有無に合わせて同相と逆相に分けられます。
 
 ・コロン、時の上位桁、PM表示の信号は、74HC86の排他的論理和により、個別に位相の
  選択を行います。


回 路 図  PDF版 SP521PlogCir1.pdf (259KB)  PDF版 SP521PlogCir2.pdf (174KB)

部品配置図  GIF版 SP521PlogPcb.gif (127KB) 部品表
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。


百円均一(セリア) ケース

右側面

基板 部品面

基板 ハンダ面

基板用スペーサーを立てる(20mm)
電池ボックスを両面テープで貼り付け

ケース内に取り付け

 製作例では、Bタイプ基板(95x72mm)に実装するため、ICピンの穴に直接AWG30単線を差し込んでハンダ付けする配線方法で作ってあります。
 Bタイプ基板(95x72mm)よりも大きめの基板を使用して、 各IC間隔を2目取ると作りやすくなります。








● AVRマイコン 版 ●

 40ピンのAVRマイコン「ATmega164P」を使用して、基板面積をコンパクトにしたデジタル時計です。
 温度センサーを搭載し、一日の最高・最低気温も表示できます。


回路の解説
 
1.電源回路

 
 ・単3または単4の乾電池、2本〜3本で動作します。
  (電池の持ち時間と、コントラストに違いが出ます)
 ・電池のサイズは、収納するケースによって選択して下さい。
 ・電池と並列に接続した100μFコンデンサーで30秒ほど動き続けるので、その間に電池の交換が
  できます。

2.AVRとクロック
 
 ・AVRマイコンはATmega164P-20PUを使用し、動作クロックは内蔵RC発振器を1MHzで使用して
  います。
 ・時計用32.768kHzクリスタルをTimer2の発振回路に使用し、時刻をカウントする1Hzを得ています。
 ・1日〜1週間の誤差を見ながら、20PFのトリマー・コンデンサーを回して微調整して下さい。
 ・周波数カウンターをお持ちの方は、LCDのCOM端子に[32Hz]のパルスが出力されていますので、
  これを正確な[32Hz]になるようにトリマーコンデンサで調整して下さい。
 ・使用する水晶により、TOSC2端子側に0PF(取付無し)〜10PF程度のセラミックコンデンサが
  必要です。
  (トリマーコンデンサだけで32.768kHzに調整できない場合に必要です)
  (秋月電子の[VT-200-F 32.768kHz]では、10PFを取り付けました)

3.温度センサー
 
 ・マイクロチップ社の「MCP9700-E/TO」は、消費電力がきわめて少ないのでこれを採用しました。
 ・National Semiconductor社の「LM61BIZ」も選択できます。(消費電力は多くなります)
 ・これらのセンサーは、出力電圧値が温度に換算されます。
 ・AVR内蔵の基準電圧1.1Vを比較に使用するため、測定温度に上限があります。
   MCP9700-E/TO: -40℃〜+60℃
   LM61BIZ:      -25℃〜+50℃
 ・AVR内蔵の基準電圧(1.1V)は、10%程度の個体誤差があるので、「機能設定」で較正できます。
  (温度値の誤差を少なくします)

4.LCDのドライブ
 
 ・冒頭の解説通り、SP-521パネルを駆動するには、コモンとセグメント共に交流のパルスが
  必要です。
 ・40ピンAVRのポートをフルに使っているので、専用のドライバーIC等は一切不要です。
 
 ・AVRのTimer2で、時刻計数用の32.768KHzを1/8して4,096Hzにし、さらに1/64して64Hz
  (31.25mS)の割り込みを得ます。
 ・64Hz(31.25mS)の割り込み毎に、LCDのCOM端子に接続したポートを反転させて、32Hzの
  交流パルスを作っています。
 ・同時に、セグメントに接続されたポートに対して、表示/非表示に対応した位相の信号を出力
  します。
 ・これらは割り込み処理で定期的に行われるので、ユーザーはメインルーチンで各セグメントに
  対応したメモリー内容を準備するだけで、LCDの駆動信号が作られて表示されます。

5.ISP端子
 
 ・AVRマイコンにプログラムを書き込むための、ISP (In-System Program)端子です。
 ・AVRマイコンを、書き込み専用の基板やブレッドボードで書き込んでから実装する場合は、
  実機のISP端子を省略する事も出来ますが、ISP端子を付けておくと、後日プログラムが更新
  された場合に、この端子から直接プログラムの書き換えが行えます。


回 路 図  PDF版 SP521PclkACir.pdf (162KB)

部品配置図  GIF版 SP521PclkAPcb.gif (110KB)
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

プログラム  テキスト形式 ソースファイル  SP521Pclk101.TXT (53KB)
 BASCOM-AVR用 ソースファイル
 (BASCOM-AVR(製品版)が必要です)
 SP521Pclk101.bas (53KB)

注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)

AVRマイコン ATmega164Pの、ヒューズ ビット書き換え
 
AVR ATmega164Pは、工場出荷時にJTAGインターフェイスが許可になっているので、無効に書き換えます。

◎BASCOM-AVRでコンパイルして、「AVRISPmkII」の書き込みウィンドウを使用する場合は、
  ヒューズ ビットが自動で変更されますから、以下の操作は不要です。


HEXファイルを使用する場合は、下記ページの書き換え方法 「6.」を、以下の様に変更して、ヒューズ ビットの書き換えを行って下さい。
    ヒューズ ビット書き換え

   [ Fusebit High H ] の右欄 [ 0:JTAG enabled(portc.2-portc.5 not usable) ] を
   クリックすると、右側にプルダウンメニューが現れますから、[ 1:JTAG disabled ] を
   選択します。

「AVRWRT」 ライターの場合は、AWRT_SP521Pclk.gif
 [ 6:JTAGEN = 1 ]




百円均一(セリア)
木枠のフォトフレーム
手芸用の糸巻き・テープ入れ

基板 部品面

 
基板 ハンダ面

 
基板をスペーサー(8mm)
を通して木ネジで取り付け。
スイッチはLCDと同じ
ピンソケットでけた上げ。


操作方法
 
1.電源(電池)投入
 
 ・初めての電源(電池)投入時と、100μFコンデンサーの容量が無くなった場合は、4桁のLCDに
  現在のプログラム・バージョンが下位桁を点滅しながら表示されます。
 ・[SW1] を押すと、「2013年1月1日 AM12:00」から、時計動作に入ります。
 ・電源投入でリセットが働かない場合は、ISP端子の5ピンと6ピンを一瞬だけショートさせて下さい。
  (ハードウェアのリセットが働きます)
 
 ・電池の交換は、電池と並列に接続した100μFコンデンサーで30秒ほど動き続けるので、その間に
  行って下さい。

 
2.表示の切り換え操作
 
 ○ [SW1] 表示選択
 
  ・スイッチを押すたびに、下記の内容で表示が切り替わります。
  ・表示内容は、1秒間隔で更新されます。
 
表示順序
表示項目 時:分 温 度 時:分 + 温度
LCD表示
PM 8:34

52秒


2秒後に表示開始

  ・「時:分 + 温度」表示は、[t-c]の表示が出た2秒後に、時分と温度を交互に表示します。
  ・「時:分 + 温度」表示の温度の表示時間は、「機能設定」で変更が可能です。


 ○ [SW2] 日付・温度最高値・温度最低値
 
  ・スイッチを押すと、[月日] → [温度の最高値] → [温度の最低値] に表示が切り替わります。
  ・これらの表示は、機能設定で設定した秒数が経過すると、自動的に[SW1]の表示に戻ります。
  ・[SW1]表示選択を押した場合も、元の表示に戻ります。
 
表示順序
表示項目 月.日 温度の最高値 ℃ 温度の最低値 ℃
LCD表示
 8月1日



  ・温度の最高値と最低値は、機能設定で更新方法の選択が行えます。
  ・[SW2] を2秒以上押し続けると、LCD画面に[clr]の表示が出て、温度の最高値と最低値が
   初期化されます。

 
3.機能設定モード
 
 ・[SW1] を2秒以上押し続けると、各種の機能や動作を設定できます。
 
 ・[SW2] で、設定値が増加し、1秒以上押し続けると早送りになります。
 ・[SW1] を押すと、次の項目に移ります。
 
  設 定 項 目 LCD表示 設 定 内 容
温度の最高値と
最低値の初期化
0 : 自動で初期化をしない
1 : 日付が変わった時点(AM12:00)で初期化する
(初期値:1)
コロンの点滅を選択 0 : 点滅しない
1 : 1秒間隔で点滅する (初期値:1)
PMのマイナス表示
を選択
0 : PMを表示しない
1 : [-]で表示する (初期値:1)
時刻と温度を交互表示
の時刻表示秒数
1〜9秒 (初期値:8秒)
[SW2]の表示を
自動で戻す時間
2〜60秒 (初期値:5秒)
温度センサーの種別 0 : MCP9700-E/TO (初期値:0)
1 : LM61BIZ
AVR内蔵
1.1V基準電圧の校正
1.00V〜1.20V (初期値:1.10V) (注)

 (注) 基準電圧の較正がLCDに表示されると、AVRの32ピン(AREF)端子に基準電圧が出力され
     ますので、32ピンとGND間の電圧を電圧計(テスター)で測定します。
     (通電中なので、ショートに注意して下さい)
     測定した電圧値の小数点以下2桁を入力して下さい。 (1.xx)
 
 ・この設定は、内蔵EEPROMに記憶されますので、電池が切れた後も残されています。

 
4.時刻設定モード
 
 ・[SW1] と [SW2] を同時に押すと、時刻設定モードに入ります。
 
 ・時刻設定モードに入ると、下記の順に設定できる項目が点滅表示されます。
   (下位2桁) → 月 → 日 → 時 → 分 → 終了
 
  (年は、西暦2000年から2099年までの範囲で対応しています)
  
 ・[SW2] で、設定値が増加し、1秒以上押し続けると早送りになります。
 ・[SW1] を押すと、次の項目に移ります。
 
 ・の設定が終わると、を00にして通常の表示に戻りますので、秒の単位まで合わせる
  場合には、00秒になった時に [SW1] を押します。



◎ このプログラムの書き込み済みAVRとHEXファイルを、実費頒布しております。
 
  基板・部品の頒布室



   電子工作の部屋 Top へ 前のページへ戻る