R3などの適切なマイクロコントローラ開発ボードを、インターネットでダウンロードできるオープンソースライブラリやサンプルコードと組み合わせることで、組み込みシステムやIoTデバイスの専門的な設計者はすぐに本格的な開発を始める準備ができます。評価を完了したら、オープンソースハードウェア設計の適切な部分をBOBへの応用に取り入れ、その部分を各自の設計に直接組み込むことができます。同様に、オープンソースライブラリと、オープンソースの実例に基づいて開発したコードを取り入れ、それらを製品の一部として使用できます。RTCは両方ともシリアルI2Cバスを介してホストマイクロコントローラと通信します。ソフトウェア開発者が「しまった」と思いがちな事柄の一つは、このバスを形成する両方の信号(SCLやSDAと呼ばれる)にプルアップ抵抗が必要なことです。AdafruitのDS1307とDS3231(ChronoDot)のBOBには、これらの抵抗器は含まれていません。ChronoDotにはR1とR2の注記があるパッドが含まれており、それを追加できます。プルアップ抵抗が含まれていない理由は、I2Cバスに複数のデバイス(ICやBOB)を接続できることにあります。Addressで、バス上の全デバイスのアドレス指定に使用されるので、理論的にはバスで127個のディスクリートデバイスをサポートできることになります。実際には、サポート可能な事実上のデバイス数は、トレースと負荷の静電容量(合計400pFに制限)を含むバスの静電容量によって決まります。複数の抵抗を並列に接続した場合の等価の値を計算するために、ハードウェア設計者が使用する公式があります。ここでは説明のために、次のような簡単な例を考えてみます。2つのデバイスに同じ値のプルアップ抵抗がある場合、その抵抗は値の半分になります。4つのデバイスに同じ値のプルアップ抵抗がある場合、その抵抗は値の1/4です。プルアップ抵抗を持つI2Cデバイスが既にバス上にある場合は、特に何もする必要はありません。プルアップ抵抗が存在せず、将来的にプルアップ抵抗を搭載したBOBを追加しないことが100%確実な場合は、プルアップに4.7kΩの抵抗ペアを使用するのが最善の方法です。プルアップ抵抗を搭載したBOBを将来追加する可能性がある場合は、この時点では10kΩの抵抗ペアを追加すべきでしょう。これらは他のBOBをバスに追加する前と後を通じて機能するからです。ハードウェア開発者向けのソフトウェアのヒントとコツ「ワイヤライブラリ」は、I2Cデバイスとの2線式クラス通信を容易にする通信ライブラリです。<Wire.h>を追加するだけです。実際の手順としては、まず最適なRTCライブラリをトラックダウンします。代表的なものにはAdafruitのRTClibがあり、Githubからダウンロードできます。"RTClib.h"を追加します。RTC;を使用してRTCをインスタンス化(インスタンスを作成)します。その後、プログラムですべての設定を行うとき(Arduinoスケッチの場合はsetup()関数の一部として)、設計者はステートメントWire.begin();とRTC.begin();を追加して、I2C通信とRTCサブシステムを初期化する必要があります。前述のGithubページで提供されている例を使用すると、設計者は現在の日付と時刻にすぐにアクセスし調整できるようになります。多少わかりにくいのは、SQW(矩形波)出力にアクセスする方法です。デフォルトでは、電力節約のためにこの出力はアクティブではありません。このピンを使用する一つの方法は、たとえばこの出力をアクティブにして1Hzで動作するように設定し、この信号を使用してホストマイクロコントローラで割り込みをトリガすることです。ソフトウェア開発者にとって、ライブラリコードでこのような作業を一通り行うのは難しくないでしょう。ハードウェアの設計技術者にとっては、このコードで一通りの作業を行うのは難しい場合もあるので、以下に概略を示します。DS1307では、RTC.Ds1307SqwPinMode(<option>);という形のステートメントを1つまたは複数追加する必要があります。サポートされるオプションの値は、ON、OFF、SquareWave1Hz、SquareWave4kHz、SquareWave8kHz、SquareWave32kHzです。同様にDS3231では、RTC.Ds3231SqwPinMode(<option>);という形のステートメントを1つまたは複数追加します。サポートされるオプションの値は、ON、OFF、DS3231_SquareWave1Hz、DS3231_SquareWave1kHz、DS3231_SquareWave4kHz、DS3231_SquareWave8kHzです。まとめ小規模なチームで、しかも市場投入までの期間に厳しい制約があると、設計者は様々な分野での設計作業を掛け持ちし、ICやセンサ、ペリフェラルの評価を迅速化してコストを削減する方法を常に模索する必要があります。これまでに述べたように、その一つの解決方法となるのが、Arduinoをオープンソースハードウェアのセンサやペリフェラルのブレイクアウトボード(BOB)とともに活用し、オープンソースソフトウェアのライブラリやサンプルプログラムを合わせて利用する方法です。Electronicsの公式な方針を必ずしも反映するものではありません。このページのコンテンツはDigi-Key社より提供されています。英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。毎月一定額をご購入予定のお客様や量産部品としてご検討されているお客様には、マルツ特別価格にてDigi-Key社製品を供給いたします。条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。一度、マルツエレックにお見積もりをご用命ください。