詳細温度センサtmp 275駆動


TI(テキサス機器)のデジタル温度センサtmp 275を紹介し,駆動記述を一歩一歩説明した.详解温度传感器tmp275驱动_第1张图片
tmp 275典型的な接続:详解温度传感器tmp275驱动_第2张图片
tmp 275中国語チップデータマニュアル:http://download.csdn.net/detail/u012819339/9093043
このデバイスはI 2 C通信なので、I 2 Cを知っていると仮定し、
I2C_init(),     
I2C_start(),    
I2C_stop()I2C_respon()I2C_ACK()I2C_writebyte()I2C_read()

次に、上記の関数を用いて読み書きTMP 275レジスタのAPIを書き出し、TMP 275チップデータマニュアルを参照する.
TMP 275レジスタへのバイト書き込み:详解温度传感器tmp275驱动_第3张图片
チップでデータを書きたいときに必要な手順は、1.書き込みチップアドレス(チップA 0,A 1,A 2がともにローレベルであると仮定すると、アドレスバイトは0 x 90であるべきである).ライトポインタレジスタ
3.書き込み2バイトデータ(実際の読み出しバイト数は自己制御可能であり、ここでは2バイトを例に挙げる)これにより、以下のようにTMP 275チップレジスタを書き込むAPIを書くことができるようになった
void writeTMP275_reg(unsigned char address,unsigned int data)
{
  unsigned char data_H,data_L;
  data_L = (unsigned char)data;
  data_H = (unsigned char)(data>>8);
  I2C_init();
  I2C_start();
  I2C_writebyte(0x90);//      0, 
  I2C_respon();
  I2C_writebyte(address);
  I2C_respon();
  I2C_writebyte(data_H);
  I2C_respon();
  I2C_writebyte(data_L);
  I2C_respon();  
  I2C_stop();
}

TMP 275レジスタからデータを読み出す
シーケンス図によりデータを整理する手順:1.書き込みチップアドレス(チップA 0,A 1,A 2がともにローレベルであると仮定すると、アドレスバイトは0 x 90であるべきである).書き込みポインタレジスタ(前に説明したが、余計なことは言わない).再度チップアドレスを書き込むが、ここでは読み出し動作であるため、アドレスの最後のビットはハイレベルである(チップA 0,A 1,A 2がともにローレベルであると仮定すると、アドレスバイトは0 x 91であるべきである).2バイトデータの読み出し(実際の読み出しバイト数は自己制御可能であり、ここでは2バイトを例に挙げる)
読み出しTMP 275チップレジスタAPIは以下の通りである
unsigned int readTMP275_reg(unsigned char address)
{
  unsigned int temp = 0;

  I2C_init();
  I2C_start();
  I2C_writebyte(0x90);//      0, 
  I2C_respon();
  I2C_writebyte(address);
  I2C_respon();

  I2C_start();
  I2C_writebyte(0x91);//      0, 
  I2C_respon();

  temp = I2C_read();//     
  I2C_ACK();
  temp = (temp<<8);
  temp = I2C_read();//     
  I2C_ACK();
  I2C_stop();

  return temp;
}

tmp 275をどのように使うかは、その構成レジスタをよく構成しなければなりません.フォーマットは以下の通りです.
tmp275寄存器
チップマニュアルは自分で読むことができますが、本稿の重点はこれで終わります.