瑞萨单片机论坛
直播中

jf_69121293

4年用户 23经验值
擅长:可编程逻辑,电源/新能源
私信 关注
[经验]

【RA-Eco-RA4M2开发板评测】+驱动MAX6675 K-Thermocouple-to-Digital Converter

MAX6675是美信(Maxim Integrated,现被ADI收购)推出的一款集成热电偶数字转换器芯片,专为K型热电偶设计。该芯片通过SPI接口与微控制器通信,可将热电偶的模拟信号转换为12位数字温度值,测量范围覆盖0°C至+1024°C,分辨率达0.25°C。其内部集成冷端补偿电路,可直接读取环境温度进行补偿计算,简化了传统热电偶测温所需的外部电路设计。此外,MAX6675内置信号调理、数字滤波和断线检测功能,抗干扰能力强,适用于工业控制、家电温控、实验室设备等场景。工作电压为3.3V-5V,兼容多数嵌入式系统。但需注意其仅支持K型热电偶,且高温段精度受热电偶特性限制,设计时需参考手册进行校准。该芯片以高集成度和易用性成为低成本测温方案的常见选择。
image.png

由图中可见这款芯片所需要的电路非常简单。所以我们选用它,但是这款芯片也有所不足,就是转换时间偏慢,可能会在后边我们的应用中存在不足。
image.png

接下来我们打通这颗芯片的数据读取:

在freertos中创建Thread

与瑞萨配套的FSP Smart Configurator 可以完成创建thread,并且图形化选项,省去我们搜索参数配置的繁琐。
image.png

首先在stacks选项中,我们点击New Thread
image.png

然后在Name后填入max6675。
image.png

接下来我们在这个thread中添加 New Stack中的r_sci_spi。
image.png

之所以选择sci的spi,而没有选择专用的spi模块,是因为io口与板载的串口冲突。为了方便调试,只能暂且忍让,呜呜呜,希望厂家能改进设计……
image.png
回到主题sci的spi需要配置
image.png
通道和name选择好之后,来到pins设置中
image.png
还需要为芯片的cs引脚配置,就近选择了p304 不锈钢牌io口,希望能如不锈钢般耐用好用:
image.png

点击 Generate project content,没有错误我们就可以回到keil中了

编写spi读代码

回到代码中,已经创建了thread文件,和留给我们编写代码的entry文件max6675_read_entry.c
直接调用接口R_SCI_SPI_Open,就可以完成spi的芯片端初始化。

void max6675_read_entry(void * pvParameters)
{
	FSP_PARAMETER_NOT_USED(pvParameters);

	/* TODO: add your own code here */
	R_SCI_SPI_Open(&g_sci_spi0_ctrl, &g_sci_spi0_cfg);

在while中,操作cs引脚和 spi读2个字节。

while(1)
	{
		g_ioport.p_api->pinWrite(g_ioport.p_ctrl, sci_spi0_cs, BSP_IO_LEVEL_LOW);
		vTaskDelay(1);
		R_SCI_SPI_Read(&g_sci_spi0_ctrl, &spi_data, 2, SPI_BIT_WIDTH_8_BITS);
		vTaskDelay(1);
		g_ioport.p_api->pinWrite(g_ioport.p_ctrl, sci_spi0_cs, BSP_IO_LEVEL_HIGH);

然后就可以摸鱼一会,从上面的手册知道,最少需要强制摸鱼220。我们姑且摸一架空客小飞机320吧。

vTaskDelay(320);

等等,还得看到读出来的数据

if (spi_data[1] & 0x4){
			printf("no K connect\r\n\r\n");
		} else {
			temp_data = spi_data[0] << 5;
			temp_data += spi_data[1] >> 3;
//			print_binary2(temp_data);
			temp = temp_data / 4;
			printf("temp---%d\r\n", temp);

			pwm_duty = (uint8_t)deal(temp, target_temp);
		}

好粗狂啊,直接丢失了0.25℃的精度

image.png

IMG_20250509_185821.jpg

  • 这就读到了,。没有热电偶的可以短接一下。短接后的读数按我理解就是max6675用来冷端补偿的参数。

回帖(1)

jf_69121293

4 天前
https://www.analog.com/media/en/ ... -sheets/MAX6675.pdf
另外 瑞萨的库目前sci的spi似乎不支持 16位,有专家了解详情吗
举报

更多回帖

发帖
×
20
完善资料,
赚取积分