FC2カウンター FPGAの部屋 MIPIボード用PMOD拡張ボードをテストする5(I2Cのテスト1)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

MIPIボード用PMOD拡張ボードをテストする5(I2Cのテスト1)

MIPIボード用PMOD拡張ボードをテストする4(I2Cのテスト用部品の到着)”の続き。

前回、I2C のテスト用のBME280使用 温湿度・気圧センサモジュールキットなどが到着した。今回は、そのBME280使用 温湿度・気圧センサモジュールキットにヘッダをはんだ付けし、I2C モードに設定して、ブレッドボード上に回路を組んでテストした。
PMOD_B4MIPI_B_test_28_190602.jpg

なお、MIPI ボード用PMOD 拡張ボードの 2 つのPMOD コネクタの内のP1 がGPIO でPL のポートが出ている。P2 コネクタがI2C とSPI でPS のペリフェラルを出してある。今回テストするのは、P2 コネクタのPS ペリフェラルのI2C となっている。
2 系統 PS のI2C をPMOD に出力しているが、今回テストするのは、 I2C0 ( /dev/i2c-2 ) だ。

Ultra96 のDebian を立ち上げて、GitHub のultra96_design/src/linux/caminit/src/ov5640.cc::init_ov5640() を参考にBME280 を制御するソフトウェアを作った。
PMOD_B4MIPI_B_test_26_190601.png

// BME280_temp.c
// 2019/06/01 by marsee
//
// Quote part of ultra96_design/src/linux/caminit/src/ov5640.cc::init_ov5640()
// https://github.com/fixstars/ultra96_design

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/i2c-dev.h>
#include <stdint.h>

int main(){
    int fd;
    uint8_t addr;
    uint8_t data0, data1;
    
    fd = open("/dev/i2c-2", O_RDWR);
    if(fd < 0){
        fprintf(stderr, "Can't open /dev/i2c-2\n");
        return(-1);
    }
    
    ioctl(fd, I2C_SLAVE, 0x76);
    
    addr = 0xfe;
    write(fd, &addr, 1);
    read(fd, &data0, 1);
    printf("0xfe = %x\n", data0);
    
    addr = 0xfd;
    write(fd, &addr, 1);
    read(fd, &data0, 1);
    printf("0xfd = %x\n", data0);
    
    addr = 0xd0;
    write(fd, &addr, 1);
    read(fd, &data0, 1);
    printf("0xd0 = %x\n", data0);
    
    return(0);
}


BME280_temp.c をコンパイルした。
gcc -o BME280_temp BME280_temp.c

sudo ./BME280_temp
で起動したところレジスタの値が取れた。
PMOD_B4MIPI_B_test_27_190601.png

Final Datasheet BME280 Environmental sensor から Table 18: Memory map を引用する。
PMOD_B4MIPI_B_test_30_190602.png

このレジスタマップのデフォルト値と取得した値は合っているので読めているようだ。

I2C の波形を示す。
PMOD_B4MIPI_B_test_29_190602.jpg
  1. 2019年06月02日 05:01 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/4542-51207a09
この記事にトラックバックする(FC2ブログユーザー)