【dsPIC33FJ128MC802】デジタルポテンションメータAD5245を使ってみる。
◆dsPIC33FJ128MC802でアナログデバイスのデジタルポテンションメータAD5245を使ってみます。
抵抗値をI2C制御で変更できるので様々や用途で活躍できると思います。
本デバイスはREAD/WRITE可能ですが、WRITEのみにチャレンジしてみたいと思います。
パッケージがSOT-23ですがピッチが狭いので半田付けが大変です。
AD5245の仕様
・分解能:256段階
・抵抗値:5kΩ/10kΩ/50kΩ/100kΩ
・電源:2.7V~5.5V
参考
データーシートを参考にしました。
WRITEの手順
StartBIT発行→「SLAVE_ADDRESS」→ACK→「Instruction」→ACK→「data」→Ack→StopBIT発行
・SlaveAddress:01011000(書き込み時/AD0pinをLOW時)
・Instruction:00000000
ソース
ソースは前後かなり端折りましたのでご注意ください。
//== AD5245 ====================================================================== void ad_5245_write(unsigned char data); //write unsigned char data; //===================================================================== while(1) { sprintf(string_box,"%03u",data); sb1602_string_write(string_box,1,4); //bmp_data_write ad_5245_write(data); delay_ms(10); data++; }//while(1) }//int main(void) //== SB1602 Write ==================================================== void ad_5245_write(unsigned char data) { //StartBIT while(I2C1CONbits.SEN || I2C1CONbits.PEN || I2C1CONbits.RCEN || I2C1CONbits.ACKEN || I2C1STATbits.TRSTAT); I2C1CONbits.SEN = 1; //start_bit while(I2C1CONbits.SEN); //start_wait //address I2C1TRN = 0b01011000; //slave_address while(I2C1STATbits.TBF); //transmit_wait while(I2C1STATbits.ACKSTAT); //ACK_CHECK //mode_select while(I2C1CONbits.SEN || I2C1CONbits.PEN || I2C1CONbits.RCEN || I2C1CONbits.ACKEN || I2C1STATbits.TRSTAT); I2C1TRN = 0b00000000; //command_write while(I2C1STATbits.TBF); //transmit_wait while(I2C1STATbits.ACKSTAT); //ack_check //data while(I2C1CONbits.SEN || I2C1CONbits.PEN || I2C1CONbits.RCEN || I2C1CONbits.ACKEN || I2C1STATbits.TRSTAT); I2C1TRN = data; //transmit while(I2C1STATbits.TBF); //transmit_wait while(I2C1STATbits.ACKSTAT); //ack_check //StopBIT while(I2C1CONbits.SEN || I2C1CONbits.PEN || I2C1CONbits.RCEN || I2C1CONbits.ACKEN || I2C1STATbits.TRSTAT); I2C1CONbits.PEN = 1; //stop_bit while(I2C1CONbits.PEN); //stop_bit_wait }//void ad5245_data_write(unsigned char data) //========================================================================
オシロで確認
8bitレジスタに毎回+1加算してAD5245に書き込み。
Wピンをオシロで確認
ディスカッション
コメント一覧
まだ、コメントがありません