由于中秋节假期,帖子审批以及工程师回复将会有所延迟,敬请谅解。

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于ADS7279使用中遇到的问题

Other Parts Discussed in Thread: ADS7279

学生党想用ADS7279连接STM32F103做一个AD转换,在单片机里初始化ADS芯片为自动模式且EOC后,通过A4引脚检测INT/EOC下降沿,然后采用spi的16bit模式读取ADC数据。

现在遇到的问题是单片机从来没有采集到过EOC的下降沿,修改程序检查ADS芯片刚上电时的模式,发现和datasheet里的默认CFR值不一样(读出来全是1)。在使用时发现芯片发热量很大。想请教一下是什么问题?提前感谢各位!

代码通过附件发送。下图是各个引脚的连接

ADC_module.rar

  • 工程在最下方的附件里,上面的图分别是引脚连接,单片机SPI初始化,7279初始化和ADC读取
  • void SPI_ReadADC(uint16_t * readAddr) //读取ADC结果
    {
    	 
      SPI_FLASH_CS_LOW();
    	
    	 SPITimeout = SPIT_FLAG_TIMEOUT;
      
      while (SPI_I2S_GetFlagStatus(FLASH_SPIx , SPI_I2S_FLAG_TXE) == RESET)
    	{
        if((SPITimeout--) == 0) {
    		SPI_TIMEOUT_UserCallback(0);
    		*readAddr = 0x0000;
    	}
       }
    
      //发送的0xd000用于读取结果
      SPI_I2S_SendData(FLASH_SPIx , 0xd000);
    
    	//SPITimeout = SPIT_FLAG_TIMEOUT;
      /* µÈ´ý½ÓÊÕ»º³åÇø·Ç¿Õ£¬RXNEʼþ */
      while (SPI_I2S_GetFlagStatus(FLASH_SPIx , SPI_I2S_FLAG_RXNE) == RESET)
      {
        if((SPITimeout--) == 0) {
    		SPI_TIMEOUT_UserCallback(1);
    		*readAddr = 0x0000;
    	}
       }
    
      /* ¶ÁÈ¡Êý¾Ý¼Ä´æÆ÷£¬»ñÈ¡½ÓÊÕ»º³åÇøÊý¾Ý */
      *readAddr = SPI_I2S_ReceiveData(FLASH_SPIx );
       SPI_FLASH_CS_HIGH();
       return ;
    }
    
    void ADC7279_Init(void){
    	SPI_FLASH_CS_LOW();
    	
    	 SPITimeout = SPIT_FLAG_TIMEOUT;
      /* µÈ´ý·¢ËÍ»º³åÇøΪ¿Õ£¬TXEʼþ */
      while (SPI_I2S_GetFlagStatus(FLASH_SPIx , SPI_I2S_FLAG_TXE) == RESET)
    	{
        if((SPITimeout--) == 0) {
    		SPI_TIMEOUT_UserCallback(5);
    	}
       }
    
      /* дÈëÊý¾Ý¼Ä´æÆ÷£¬°ÑҪдÈëµÄÊý¾ÝдÈë·¢ËÍ»º³åÇø */
      SPI_I2S_SendData(FLASH_SPIx , 0xedfd);
    
    	//SPITimeout = SPIT_FLAG_TIMEOUT;
      /* µÈ´ý½ÓÊÕ»º³åÇø·Ç¿Õ£¬RXNEʼþ */
      while (SPI_I2S_GetFlagStatus(FLASH_SPIx , SPI_I2S_FLAG_RXNE) == RESET)
      {
        if((SPITimeout--) == 0) {
    		SPI_TIMEOUT_UserCallback(5);
    	}
       }
    
      /* ¶ÁÈ¡Êý¾Ý¼Ä´æÆ÷£¬»ñÈ¡½ÓÊÕ»º³åÇøÊý¾Ý */
      SPI_I2S_ReceiveData(FLASH_SPIx );
       SPI_FLASH_CS_HIGH();
       return ;
       }

  • 您好,

    在使用时芯片发热量很大,芯片有多热呢,检查下各供电电压是否正常,建议您附上电路接线图,这样方便检查。
  • 您好,
    就是十分烫手的那种。电路连接方式我在第一幅图里标了出来,其中5V供电采用的是稳压直流源,不知道图里的引脚说明是否符合要求
  • ddddd做了很多天都不知道问题所在