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.

controlSTICK-Piccolo F28069片内温度传感器温度值读取

Other Parts Discussed in Thread: CONTROLSUITE

该款芯片的计数手册中关于0摄氏度时温度对应的数值和温度斜率给出了下面的说明

//Slope of temperature sensor (deg. C / ADC code, fixed pt Q15 format)
#define getTempSlope() (*(int (*)(void))0x3D7E82)()
//ADC code corresponding to temperature sensor output at 0-degreesC
#define getTempOffset() (*(int (*)(void))0x3D7E85)()

但当我用

getslope=getTempSlope();

getoffset=getTempOffset();

读取对应地址中存储的值时,在在线调试的时候,会进入一个保留的中断,而读不出来存储器中的值,请问这是怎么回事儿呢?

我用安装的controlsuite中的温度读取例程,也会出现这个问题,这个例程是你们官方写的吧,为什么也不对呢?

  • 楼主你好!

    楼主应该用的TMX的芯片吧,因为你手上的TMX样片较早出来,其中0x3D7E82和0x3D7E85中并未写入合适值而是0XFFFF,当PC跳到这个地址后取到的是ITRAP1指令,因此进入到ILLEGAL_ISR中断。

    然而正式量产的片子也即TMS的片子,出厂时会写入合适跳转值,因此就不会有这个问题。

    楼主可以参看例程中的说明如下:

    //###########################################################################
    // Description:
    //! \addtogroup f2806x_example_list
    //! <h1> ADC Temperature Sensor Conversion (adc_temp_sensor_conv)</h1>
    //!
    //! This example shows how to convert a raw ADC temperature sensor reading
    //! into deg. C and deg. K. Internal temperature is sampled continuously
    //! through ADCINA5. The coefficients required to compensate for temperature
    //! offset are read from TI OTP.
    //!
    //! \note
    //! THIS EXAMPLE USES VARIABLES STORED IN OTP DURING FACTORY TEST. THESE OTP
    //! LOCATIONS ,0x3D7E90 to 0x3D7EA4, MAY NOT BE POPULATED. ENSURE THAT THESE
    //! MEMORY LOCATIONS IN TI OTP ARE POPULATED WITH VALUES DIFFERENT FROM
    //! 0XFFFF