2020-08-11から1日間の記事一覧

I2C / ビットレートジェネレーターユニット / 非公式訳

ATmega328Pデータシート非公式訳 22.5.2 ビットレートジェネレーターユニット このユニットでマスターモード時のSCL周期を制御します。SCL周期は、TWI Bit Rate Register (TWBR)の設定と、TWI Status Register (TWSR)のPrescalerビットとで制御します。スレ…

I2C / マスターモードのときのプログラミング手順

pp.602-603 非公式訳 マスターモードのときは、I2Cの初期化、STARTコンディションの送信、データの送信(または受信)、STOPコンディションの送信ができなければなりません。それぞれについてもう少し詳しく説明します。 初期化する I2Cモジュールをマスターモ…

I2C / arbitration (調停)

p.596 非公式訳 I2Cプロトコルでは、同じバスに複数のマスターが存在できます。ただし複数のマスターが同時にバスを使えるわけではありません。各マスターは、現在のデータ転送が終わるのを待ってからバスの使用を開始します。しかし複数のマスターがほぼ同…

I2C / クロックストレッチ

p.596 非公式訳 I2Cプロトコルの機能の1つにクロックストレッチ(clock stretching)があります。一種のフロー制御です。アドレス指定されたスレーブは、データを処理する余裕のないときには、何らかのデータビットを受信(または送信)したあと、クロックライン…

I2C / general callアドレス0b0000 000_

p.594 非公式訳 前に述べたように、アドレス0b0000 000_はgeneral callのためのアドレスです。マスターがアドレス0b0000 000_を送信すると、すべてのスレーブはSDAラインをゼロにし、データバイトが送られてくるのを待ちます。これは、マスターからすべての…