MAX31855电偶至数字输出转换器开发笔记
MAX31855电偶至数字输出转换器1、【备货信息】 MAX31855KASA+T -200°C to +1350°C 8SO MAX31855JASA+T -40°C to +750°C 8SO MAX31855NASA+T -200°C to + 1300°C 8SO MAX31855SASA+T -50°C to +1600°C 8SO MAX31855TASA+T -250°C to +400°C 8SO MAX31855EASA+T -40°C to +900°C 8SO MAX31855RASA+T -50°C to +1770°C 8SO 2、【典型应用电路】blob:https://bbs.21ic.com/e759c3e7-a837-4e12-8d93-495e3a661a83 3、【实际应用电路】blob:https://bbs.21ic.com/55d5c030-a4f2-4c1d-a6e3-2ce206860777 4. SPI串口协议及时序 blob:https://bbs.21ic.com/b8e8cefa-781e-4071-aed5-cda059951b97 器件处理来自热电偶的读数,并通过串口发送数据。驱动CS为低电平,并在SCK端施加时钟信号,从SO读取结果。器件始终在后台执行转换,只有CS为高电平时才能更新故障状态和温度数据。 驱动CS为低电平时,SO引脚将输出第一位数据。通过串口读取完整的冷端补偿热电偶温度,需要14个时钟周期。读取热电偶和参考端温度需要32个时钟周期。在时钟下降沿读取输出位。第一位D31为热电偶温度符号位。 D位包含温度转换数据,顺序为MSB至LSB。D16位正常状态下为低电平,热电偶输入开路或对GND或VCC短路时变为高电平。参考端温度数据从D15开始。 输出转换数据时,CS任何时候均可变为高电平。 5. 存储器映射—位加权和功能说明blob:https://bbs.21ic.com/ce00f0b6-1216-4183-96af-a2d957a777b26. 程序源码MAX31855测温程序,分别使用STM32硬件SPI和软件模拟时序两种方式读取温度数据。 /** ****************************************************************************** * @file : max31855.c * @brief : MAX31855 cold-junction compensated thermocouple-to-digital * converter program body. ****************************************************************************** * * Copyright (c) respeke, www.etdev.net * All rights reserved. * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "max31855.h" #include "stm32f1xx_hal.h" /* External variables --------------------------------------------------------*/ SPI_HandleTypeDef hspi1; /* Private variables ---------------------------------------------------------*/ float tcTemp = 0, cjTemp = 0; bool tcError = false; /* Private function prototypes -----------------------------------------------*/ /** * @briefDelay about 11ns per NOP (72MHz*1.25MIPS/MHz=90MIPS) * @paramNone * @retval None */ static void SPI_Delay(uint32_t counter) { for(int i=0; i<counter; i++) { __NOP(); } } 未完待续……期待后期的讲解 //-----------------函数声明------------------
struct Thermocouple
{
u32 Data;
u32 Thermocouple;
u32 Internal;
};
extern struct Thermocouple MAX31855,MAX31855_0,MAX31855_1, MAX31855_2, MAX31855_3, MAX31855_4, MAX31855_5, MAX31855_6, MAX31855_7, MAX31855_8, MAX31855_9,
MAX31855_10, MAX31855_11, MAX31855_12, MAX31855_13, MAX31855_14, MAX31855_15, MAX31855_16, MAX31855_17;
void MAX31855_Init(void) ; //初始化
void MAX31855_1_Read(void) ;
void MAX31855_2_Read(void) ;
void MAX31855_3_Read(void) ;
void MAX31855_4_Read(void) ;
void MAX31855_5_Read(void) ;
void MAX31855_6_Read(void) ;
void MAX31855_7_Read(void) ;
void MAX31855_8_Read(void) ;
void MAX31855_9_Read(void) ;
void MAX31855_10_Read(void) ;
void MAX31855_11_Read(void) ;
void MAX31855_12_Read(void) ;
void MAX31855_13_Read(void) ;
void MAX31855_14_Read(void) ;
void MAX31855_15_Read(void) ;
void MAX31855_16_Read(void) ;
void MAX31855_17_Read(void) ;
#endif
期待讲解
页:
[1]