온도 센서 TMP235 삭제(IMU 온도로 대체)

This commit is contained in:
2026-06-15 11:58:41 +09:00
parent 6707a8d3df
commit 78c46c07ea
8 changed files with 25 additions and 213 deletions
+6 -29
View File
@@ -22,7 +22,6 @@
#include "echo_adc.h"
#include "imu_i2c.h"
#include "piezo.h"
#include "tmp235.h"
/*==============================================================================
* Piezo / echo measurement constants
@@ -718,46 +717,24 @@ static int cmd_msp(const uint8_t *data, uint8_t data_len)
return 1;
}
/* mst? → 피에조 전원 ON → TMP235 온도 측정 → 전원 OFF → rso: + 온도(°C × 100, BE)
*
* TMP235가 피에조 레일을 공유하므로 ON/OFF 시퀀스를 한 커맨드에서 처리.
* 안정화 대기 10ms: TMP235 start-up(~2ms) + 레일 RC 필터 여유분.
* 에러 응답: 0xFFFF = ADC 읽기 실패 */
/* mst? -> IMU internal temperature -> rso: + temperature (degC x 100, BE)
* Error response: 0xFFFF = IMU temperature read failed. */
static int cmd_mst(const uint8_t *data, uint8_t data_len)
{
ARG_UNUSED(data);
ARG_UNUSED(data_len);
/*
* mst?는 "온도만 읽는 명령"처럼 보이지만,
* 실제로는 TMP235가 piezo 전원 레일을 같이 쓰기 때문에
* 전원 ON/OFF 시퀀스까지 같이 처리해야 한다.
*/
power_button_suspend(true);
if (piezo_init() != 0)
{
power_button_suspend(false);
send_response_u16("rso:", 0xFFFF);
DBG_PRINTF("[CMD] mst: piezo init fail\r\n");
return 1;
}
int16_t t_cdeg = INT16_MIN;
int ret = imu_read_temperature_cdeg(&t_cdeg);
/* 전원 ON → 센서 안정화 대기 */
piezo_power_on();
k_msleep(10);
int16_t t_cdeg = temp_read_cdeg();
/* 전원 OFF (측정 완료, 레일 끄기) */
piezo_power_off();
power_button_suspend(false);
/* ADC 읽기 실패 → 에러 코드 0xFFFF */
if (t_cdeg == INT16_MIN)
if ((ret != 0) || (t_cdeg == INT16_MIN))
{
send_response_u16("rso:", 0xFFFF);
DBG_PRINTF("[CMD] mst: temp read fail\r\n");
DBG_PRINTF("[CMD] mst: imu temp read fail ret=%d\r\n", ret);
return 1;
}