ccs 811デバッグガイド


前言
最近、CCS 811という集積環境パラメータ測定チップを使用しているが、CCS 811自体のせいでデバッグが非常にうまくいかない.今すでにデバッグして、自分の経験をみんなに分かち合います.マスタチップstm 32 f 103.
問題1:ハードウェアidおよびステータスを正常に読み取れない
この問題は次の可能性があります.
1.誤操作が行われ、CCS 811チップ自体が飛んでしまうため、どのようにリセットしても読み取れない.解決策はチップをリセットすること、すなわちINTピン接地2である.IIC通信自体に問題があり、IIC通信の読み取りと書き込みの遅延が大きくなり、少なくとも5 us
問題2:bootモードから測定モードへの変換に失敗
上記のパラメータが読み取れる場合、通信自体に問題はないが、CCS 811内部に集積されたMCUは、測定変換命令を送信した後、少なくとも180 usの時間を待たなければccs 811の読み書き操作ができず、読み書きが早ければCCS 811が飛ぶ時間変換モードが必要である.解決策は、変換命令を送信するときに180 us待たなければならない.コードは以下の通りである.
//         
void app_Start(void)
{
    nWAKE=0;
    delay_us(50);
    IIC_Start(); 
    IIC_Send_Byte(WRIT);       //     
    if(IIC_Wait_Ack()){
    IIC_Stop();return;}
    IIC_Send_Byte(0xF4);
    delay_us(180);          //    180us         
    if(IIC_Wait_Ack()){IIC_Stop();return;}
    IIC_Stop();
    nWAKE=1;

}

問題3:測定モードに入るが環境パラメータを読めない
この問題もCCS 811内部に集積されたMCUの鍋であり、測定モードに入るとCCS 811のIIC通信が遅くなり、すなわちIIC通信が遅くならなければならない.そうしないとCCS 811は反応しない.解決策はIICの読み書き速度を調整し,読み書き遅延は少なくとも50 usである.コードは次のとおりです.
//         
void IIC_Send_Byte(u8 txd)
{                        
    u8 t;   
        SDA_OUT();      
    IIC_SCL=0;//          
    for(t=0;t<8;t++)
    {              
        if((txd&0x80)>>7)
            IIC_SDA=1;
        else
            IIC_SDA=0;
        txd<<=1;      
        delay_us(50);   // TEA5767          
        IIC_SCL=1;
        delay_us(50); 
        IIC_SCL=0;  
        delay_us(50); 

    }    

}       
// 1   ,ack=1 ,  ACK,ack=0,  nACK   
u8 IIC_Read_Byte(unsigned char ack)
{
    unsigned char i,receive=0;
    SDA_IN();//SDA     
    for(i=0;i<8;i++ )
        {
        IIC_SCL=0; 
        delay_us(50);
                IIC_SCL=1;
        receive<<=1;
        if(READ_SDA)receive++;   
                delay_us(50); 
    }                    
    if (!ack)
        IIC_NAck();//  nACK
    else
        IIC_Ack(); //  ACK   
    return receive;
}

その他の質問
デバイスマニュアルの説明に従って解決できます
終わりの言葉
板をデバッグするのは本当に容易ではありません.特に公式ドキュメントに書かれている奇妙なことです.最初はIICに問題があると思っていたが、2、3日調整してから、何が起こっているのかが分かった.論理分析器があればそんなに長くはかからないだろう.私が書いたライブラリを添付して、一日も早く呼び出してください.https://ltengy.github.io/2018/08/04/ccs811%E8%B0%83%E8%AF%95%E6%8C%87%E5%8D%97/