11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作基板 / JLCPCB】RV-8803を使った自作RTCモジュールの製作!

前回のこちらの記事の続きとなります。

【自作基板 / JLCPCB】JLCPCBに発注していた自作RTCモジュールが届きました![RV-8803]

上記前回の記事では、自作したRTCモジュール基板が到着したので、基板の外観や製作した目的などを簡単に紹介しました。

RTC(リアルタイムクロック)は、現在時刻や日付を管理するためのICで、マイコンの電源が切れていてもコイン電池などのバックアップ電源を使って時刻を保持できる便利なデバイスです。

時計機能はもちろん、タイマー機能やデータロガーなどにも利用できることから、電子工作でもよく使われる定番モジュールの一つだと思います。

例えば、DS3231を使ったRTCモジュールは安価で入手しやすく、電子工作でもよく見かけるモジュールになると思います。

私自身も電子工作を始めた頃はこのDS3231を使うことが多く、Arduinoで簡単な時計を作るなど、RTCの基本的な使い方を試していました。

【Arduino入門編⑲】RTC(リアルタイムクロック)モジュールDS3231を使いシンプルな時計を作る![I2C通信]

ただ、モジュールサイズがやや大きく、また自作基板でこのRTCチップを使うとなるとIC自体が大きいため、基板上のスペースに制約がある場合には少し使いにくそうな印象を受けます。

今後製作する自作基板でもRTCを使う予定があったので、あらためて調べてみると、最近のRTCチップには驚くほど小型なものがあり、高精度かつ多機能な製品がたくさんあるようですね!

これくらい小さなチップであれば、自作基板にも組み込みやすそうです。

そこで今回は、Micro Crystal製のRTCチップ「RV-8803」を使った自作RTCモジュールを2種類製作してみることにしました。

1つは、ブレッドボードに接続してRV-8803の各機能を試せるようにしたブレークアウトボードです。

I2Cによる基本的な時刻管理だけでなく、EVI、INT、CLKOUTなど、RV-8803が備えているさまざまな機能を実際に試せるよう、必要な信号を外部へ引き出しています。

もう1つは、実際の自作基板などへ組み込んで使うことを想定したコンパクトなRTCモジュールです。

こちらは基本的なRTC機能を手軽に利用できるよう基板サイズをできるだけ小さくまとめ、Qwiicコネクタからケーブル1本でマイコンと接続できる構成としました。

RV-8803を使った自作RTCモジュールの製作!

今回製作したのは、Micro Crystal製のRTCチップ「RV-8803」を使った2種類の自作RTCボードです。

私自身、自作基板でRTCチップを使うのは今回が初めてだったので、まずはRV-8803の各機能を試せるよう、ブレッドボードに接続して使えるブレークアウトボードとして製作しました。

また今後、自作基板などへ組み込んで使うことなどを想定し、必要な回路をコンパクトにまとめたミニサイズのRTCモジュールも製作しています。

この2種類を用途に応じて使い分けることで、ブレッドボード上でRV-8803の機能を試したり、実際の電子工作で製作した機器などへ組み込んだりすることを想定しています。

RTCチップ RV-8803とは?

RV-8803は、スイスのMicro Crystal社が製造するリアルタイムクロック(RTC)です。

今後自作基板等で使えるRTCチップとしていくつかチョイスしていた中で、LCSCにある程度の在庫があり入手やPCBAで利用しやすそうだったので、このチップを今回選定しました。

I2Cインターフェースに対応してマイコンから現在時刻や日付を読み書きできるほか、バックアップ電源を接続することで、マイコンの電源が切れている状態でも時刻を保持することができます。

また、単純に時刻を保持するだけではなく、アラームやタイマー、外部イベント入力、割り込み、クロック出力など、多くの機能を備えているのも特徴です。

今回製作したブレークアウトボードでは、これらの機能をできるだけ試せるように、RV-8803の各信号を外部へ引き出す構成としています。

RV-8803の主な端子および機能

RV-8803の主な端子と機能は以下のようになっています。

詳しくはデータシートを参照下さい。

参考 RV-8803 Application ManualSparkFun
端子機能
VDDRTCの電源入力(1.5-5.5V)
VSS(GND)グランド
SDAI2Cデータ通信
SCLI2Cクロック
EVI外部イベント入力
INTアラームやタイマーなどの割り込み出力
CLKOUTクロック信号の出力
CLKOECLKOUT出力の有効/無効を制御

I2C(SDA / SCL)

基本的にRTCとして使用するだけなら、VDD、GND、SDA、SCLをマイコンへ接続すれば、I2C経由でRV-8803と通信できます。

マイコンから現在時刻や日付を設定したり、RTCに保持されている時刻を読み出したりすることができるため、一般的なRTCモジュールと同じように扱うことができます。

また、アラームやタイマーなどの各種機能についても、I2C経由でレジスタを設定して使用します。

EVI(External Event Input)

EVIは、外部から入力されたイベントを検出するために使用します。

例えば、スイッチ操作やセンサーからの信号などをイベントとしてRTCに入力し、そのイベントが発生した時刻を記録することができます。

RV-8803にはタイムスタンプ機能が用意されているため、単純に「イベントが発生した」という情報だけでなく、「いつ発生したのか」という時刻情報までRTC側で記録できるのが特徴です。

そのため、データロガーなどでイベントの発生時刻を記録したい場合などにも利用できそうです。

INT(Interrupt Output)

INTは、RTC内部で発生したイベントをマイコン等へ通知するための割り込み出力端子です。

アラームやタイマーなど、あらかじめ設定した条件が成立したときにINTを使ってマイコンへ通知することができます。

例えば、省電力化のためにマイコンをスリープモードにしておき、RTC側で指定した時刻になったらINTから割り込みを発生させ、マイコンをスリープから起床させるといった使い方ができます。

CLKOUT / CLKOE

CLKOUTは、RTCからクロック信号を外部へ出力するための端子です。

RV-8803では、32.768kHz、1024Hz、1Hzの3種類のクロック信号を出力することができます。

32.768kHzはRTCでよく使われる周波数で、外部回路の基準クロックとして利用したり、また1Hzの信号を出力すれば1秒周期の基準信号として利用できます。

CLKOEは、このCLKOUTからのクロック出力を有効または無効にするための端子です。(本ボードではデフォルトでプルダウンして無効としています)

このようにRV-8803は、単純に現在時刻を保持するだけのRTCではなく、外部イベントの検出やタイムスタンプ、アラームやタイマーによる割り込み、クロック出力など、いろんな機能を備えています。

今回製作したブレークアウトボードでは、これらの機能を実際に試せるように基本的なI2C端子だけでなく、EVI、INT、CLKOUT、CLKOEといった端子も外部へ引き出しています。

RV-8803 ブレークアウトボード

まずこちらは、RV-8803の各機能を実際に試すために製作したブレークアウトボードです。

今回、RTCモジュール自体を製作すること、そしてRV-8803を使用することが初めてだったため、評価や今後の試作などにも使えるようにブレッドボード上で各機能を確認できる評価用ボードとして製作したものとなります。

I2Cによる時刻や日付の管理だけでなく、外部イベントの検出やタイムスタンプ機能、INTによる割り込み、CLKOUTからのクロック出力など、RV-8803が備える各種機能を外部へ引き出し、ブレッドボードへ接続するだけでこれらの機能を個別に試せるようにしています。

RTCとして重要なバックアップ電源には、CR1220コイン電池を使用しました。

マイコン側から電源が供給されている間は通常そちらからRTCを動作させ、マイコン側の電源が切れた場合でもバックアップ用電池によってRV-8803の時刻を保持できる、一般的なRTCモジュールと同様の構成です。

通常はボード上のコイン電池からRV-8803へ電源を供給していますが、マイコン側からの外部電源(VDD)が接続されると、そちらからの電源供給に切り替わり、ボード上のLEDが点灯するようにしています。(背面のジャンパーで点灯をカットすることも可)

また、EVIは外部イベントを入力するための端子ですが、データシートには「フロートさせてはいけない」と記載されています。

接続する外部機器や回路構成に合わせて、EVIを通常時HIGH(プルアップ)またはLOW(プルダウン)のどちらかにしておくように、こちらも背面ジャンパーで選択できるようにしています。

RV-8803側ではレジスタ設定によって、HIGHまたはLOWのどちらをイベントとして検出するかを切り替えることができます。

本ボード側でEVIの入力状態をプルアップまたはプルダウンで設定し、ソフトウェア側ではイベントの検出条件を設定することで、どのような外部回路にも対応できるようにしています。

その他は、I2Cライン(SDA / SCL)のプルアップ抵抗、外部割り込みピンのINTはオープンドレイン出力となっているためVDDレベルでプルアップさせています。

また、CLKOUTについては、クロック出力を制御するCLKOEをプルダウンしており、デフォルトではCLKOUTからクロック信号が出力されない状態としています。

以上が、今回製作したRV-8803ブレークアウトボードの主な構成となります。

コンパクトなRTCモジュール

続いてこちらは、RV-8803を実際の機器や自作基板などへ組み込んで使用することを想定して製作したミニボードです。

基本的な回路構成は、先ほどのブレークアウトボードと同様です。

基本的なRTC機能をI2C経由で外部マイコンと接続できるように、ボード上の端子はQwiic端子(JST-SH)のみとし、EVIやINT、CLKOUTなどのその他の信号ピンについては、通常の使用では必須ではないため、必要に応じて背面のパッドから引き出せる構成としています。

先ほどのブレークアウトボードがRV-8803の各機能を試すための評価用なのに対し、こちらは自作機器などへ組み込んで使用するための実用向けRTCモジュールという位置付けです。

小型化したことで、限られたスペースにも配置しやすくなり、今後RTC機能を必要とする自作基板などへ組み込む際にも使いやすいモジュールになったと思います。

JLCPCBに基板を発注

基板の製造は、JLCPCBを利用しました。

今回製作したRV-8803を使ったRTCモジュール基板ですが、無事に動作確認まで行うことができたので、基板データ(Gerber / BOM / CPL)もいつものようにダウンロードできるようにしておきます。
何かの参考になれば幸いです!

使用したRTCチップのRV-8803は、3.2×1.5mmと非常に小型のパッケージで、端子ピッチも狭いチップです。

自宅リフロー環境で自身でパーツを実装することも考えましたが、今回はJLCPCBのアセンブリサービス(PCBA)を利用し部品の実装まで行ってもらいました。

自身でパーツを入手して実装する場合と比べると多少コストはかかってしまいますが、基板の製造から部品実装までまとめて依頼できるため、完成した基板が届けばすぐに検証や評価を始められるのが大きなメリットです。

特に今回のような小型で実装が難しい部品を使用する基板では、自宅での実装作業を省略でき、基板を完成させるまでの手間や時間を大きく減らすことができます。

【自作基板 / JLCPCB】自作基板の下準備。PCBAでDIP化基板を作り、チップ待ち・実装待ちを解消し試作時間を短縮する!

JLCPCBの基本的な基板発注方法などは、こちらの記事でまとめています。

【電子工作 / 基板製作】これから始める自作基板。JLCPCBでの基板発注ガイド(2025年版)

また、JLCPCBのPCBAサービスの利用方法などについては、こちらの記事でまとめていますので、これからPCBAを利用してみたい方の参考になればと思います。

【自作基板 / 電子工作】JLCPCBのパーツ実装サービスPCBAを試してみました!自作基板の製造からパーツ実装までをおまかせ発注

基板の到着

JLCPCBに実装までお願いしていた基板は、発注から10日かからずに手元に届きました。(配送方法はOCS Expressを選択)

実装まで含めた基板がいつもこのスピード感で届くのは非常にありがたいですね!

今回のような評価用途のボードでは、基板が届いてから自分で部品を実装する必要がないため、到着後すぐに検証や評価作業へ移ることができるので毎回重宝しています。

ブレークアウトボードの方は、未実装としていたピンヘッダーを取り付けて完成です。

これでRV-8803の各機能をブレッドボード上で試すことが出来ます。

テストがてら、手元にあったE-inkを使ったボード(Badger2040)で時計アプリを作りながらRV-8803のRTC機能を試しているところです…

使用パーツ一覧

今回使用したパーツの一覧です。

先述のとおりBOMファイルもダウンロードできるようにしていますが、自身でパーツを入手し実装される場合や、自作ボードの回路・パーツ選びなどの参考にして頂ければと思います。

RV-8803 Breakout Board

パーツ定数入手先
電池ホルダーBT1 CR1220ホルダー(SMD)AliExpress / 秋月電子
コンデンサ
(0603)
C1 10μFAliExpress
ダイオード
(SOT-23)
D1 BAS70-05AliExpress
LED
(0603)
D2 PWR LEDAliExpress
QwiicコネクタJ1 JST-SH(4P SMD)AliExpress
抵抗
(0603)
R1 1.5kΩ
R2/R3/R4/R8 10kΩ
R5/R6 4.7kΩ
R7 2kΩ
AliExpress
RTCU1 RV-8803-C7LCSC
その他ピンヘッダーーーー

RV-8803 ミニモジュール

パーツ定数入手先
電池ホルダーBT1 CR1220ホルダー(SMD)AliExpress / 秋月電子
コンデンサ
(0402)
C1 10μFAliExpress
ダイオード
(SOT-23)
D1 BAS70-05AliExpress
QwiicコネクタJ1 JST-SH(4P SMD)AliExpress
抵抗
(0402)
R1/R2/R3/R5/R6/R7 10kΩ
R4 1.5kΩ
AliExpress
RTCU1 RV-8803-C7LCSC

最後に!

今回は、Micro CrystalのRV-8803を使った自作RTCモジュールを2種類製作してみました。

RV-8803は、基本的な時刻や日付の管理だけでなく、外部イベントの検出やタイムスタンプ、割り込み、クロック出力などにも対応しているため、いろいろな用途に応用できそうです。

また今回は、JLCPCBのPCBAサービスを利用して部品の実装までお願いしたことで、基板が到着してすぐに評価や検証作業へ移ることができました。

これまでは基板が届いてから自分でパーツを実装する必要があり、実際に動作確認を始めるまでにどうしても時間がかかっていましたが、今回のような評価・検証用ボードではPCBAを利用することでその工程を省くことができ、よりスピーディーに進められるのは大きなメリットだと感じました。

ほんと、JLCPCBのPCBAサービスは、製造から部品実装まで含めても製造納期が早いんですよねー!

コメントを残す

メールアドレスが公開されることはありません。