【问题解决记录】STM32F030C8读取CS1237采集模拟

您所在的位置:网站首页 6069h供电不稳 【问题解决记录】STM32F030C8读取CS1237采集模拟

【问题解决记录】STM32F030C8读取CS1237采集模拟

2024-07-14 09:48:47| 来源: 网络整理| 查看: 265

问题描述

提示:这里描述项目中遇到的问题:

使用STM32F030C8读取CS1237采集模拟电压时,遇到CS1237的CONFIG寄存器无法读写正常的困扰;就是配置 RefOut_OFF | SpeedSelct_1280HZ | PGA_1 | CH_A 这些参数无法正确写入,实际是我要写入0x70,但是读出来是随机值;而修改代码,上电MCU直接读取CONFIG,得到数值是0x0C(和手册默认值是对应的,说明读操作正常)。 而直接读取CS1237的ADC转换数值是和外界输入电压是一致的,只是设置CONFG寄存器读写不一致。

原因分析:

提示:这里填写问题的分析:

第一个想到的原因是,CS1237的操作时序问题,有几个注意点是: (1) 设置STM32的DOUT端口为INPUT,监测来自CS1237的DOUT电平,一般芯片上电后,CS1237的DOUT会不断地输出高脉冲(示波器测量约20us的高脉冲),代码中要监测到DOUT的”下降沿“,然后才是读写配置和读取ADC转换数值的操作; (2)参考了网络好多示例代码,尤其是”技小新“的CS1237模块,LCSC立创商城可以搜到有;我的代码基本和他的demo一样; (3)CS1237上电后需要延时300毫秒的启动时间?这个实际测试后发现,这个时间不是必须; 在这里插入图片描述 一顿仔细检查代码,发现了STM32端口配置的”笔误“,修改后,仍然无法正确配置CONFIG; 第二个想到的原因是,硬件CS1237和STM32的电平兼容问题,我的电路CS1237是5V供电,stm32是3V3供电,它们之间SPI通过22欧姆电阻串联。修改硬件电路,将CS1237的电源电压改为3V3后,虽然仍无法正确配置CONFIG,但是采集电压变得稳定许多; 修改串联电阻为100欧姆,600欧姆,6k5欧姆,几乎没有改善; 第三个原因是,设置CS1237的转换速率是不是对于STM32F0这个MCU来说有点太快了?于是我配置了SpeedSelct_1280HZ 是配置不正常,而设置其他SpeedSelct_640HZ及以下频率,发现CONFIG寄存器正常读写 ,没错!是可以正常读写,而PGA的放大倍数也可以正常设置了。

下面是关键部分的代码:

#include "gp8211s.h" #include "main.h" #include "delay.h" uint8_t Gp8211s_Channel_Sel; void Gp8211s_Choose_Channel(uint8_t ch) { if( !ch ) Gp8211s_Channel_Sel = 0; else Gp8211s_Channel_Sel = 1; } void Gp8211s_SCL_Clr() { if( !Gp8211s_Channel_Sel ) HAL_GPIO_WritePin(GP1_SCLK_GPIO_Port, GP1_SCLK_Pin, GPIO_PIN_RESET); else HAL_GPIO_WritePin(GP2_SCLK_GPIO_Port, GP2_SCLK_Pin, GPIO_PIN_RESET); } void Gp8211s_SCL_Set() { if( !Gp8211s_Channel_Sel ) HAL_GPIO_WritePin(GP1_SCLK_GPIO_Port, GP1_SCLK_Pin, GPIO_PIN_SET); else HAL_GPIO_WritePin(GP2_SCLK_GPIO_Port, GP2_SCLK_Pin, GPIO_PIN_SET); } void Gp8211s_SDA_Clr() { if( !Gp8211s_Channel_Sel ) HAL_GPIO_WritePin(GP1_SDA_GPIO_Port, GP1_SDA_Pin, GPIO_PIN_RESET); else HAL_GPIO_WritePin(GP2_SDA_GPIO_Port, GP2_SDA_Pin, GPIO_PIN_RESET); } void Gp8211s_SDA_Set() { if( !Gp8211s_Channel_Sel ) HAL_GPIO_WritePin(GP1_SDA_GPIO_Port, GP1_SDA_Pin, GPIO_PIN_SET); else HAL_GPIO_WritePin(GP2_SDA_GPIO_Port, GP2_SDA_Pin, GPIO_PIN_SET); } void Gp8211s_IIC_SdaOut() { GPIO_InitTypeDef GPIO_InitStruct; if( !Gp8211s_Channel_Sel ) { GPIO_InitStruct.Pin = GP1_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init( GP1_SDA_GPIO_Port, &GPIO_InitStruct ); } else { GPIO_InitStruct.Pin = GP2_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init( GP2_SDA_GPIO_Port, &GPIO_InitStruct ); } } void Gp8211s_IIC_SdaIn() { GPIO_InitTypeDef GPIO_InitStruct; //return; if( !Gp8211s_Channel_Sel ) { GPIO_InitStruct.Pin = GP1_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init( GP1_SDA_GPIO_Port, &GPIO_InitStruct ); } else { GPIO_InitStruct.Pin = GP2_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init( GP2_SDA_GPIO_Port, &GPIO_InitStruct ); } } void Gp8211s_IIC_Init() { Gp8211s_IIC_SdaOut(); Gp8211s_SDA_Set(); Gp8211s_SCL_Set(); delay_us(10); } void Gp8211s_IIC_Start(void) { Gp8211s_IIC_SdaOut(); Gp8211s_SDA_Set(); Gp8211s_SCL_Set(); delay_us(10); Gp8211s_SDA_Clr(); delay_us(10); } void Gp8211s_IIC_Stop(void) { Gp8211s_IIC_SdaOut(); Gp8211s_SDA_Clr(); Gp8211s_SCL_Set(); delay_us(10); Gp8211s_SDA_Set(); delay_us(10); } void Gp8211s_IIC_SendByte(uint8_t txd) { uint8_t t; uint8_t tdata = txd; Gp8211s_IIC_SdaOut(); Gp8211s_SCL_Clr(); delay_us(10); for(t=0; t


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭