spi bus(?) datasheet : https://www.ti.com/lit/ds/symlink/ads8684.pdf?ts=1667284885553&ref_url=https%253A%252F%252Fwww.google.co.kr%252F
I want to measure several sensors using spi, how can I get the value?
I thought it was a code that worked, but when I tried to use it, I couldn't get the price I think it means that the data sheet and the code are compared to the data sheet, but I don't know how to touch it because the data sheet doesn't show the parts that I knew as address values
Even if I look at the datasheet, I don't know how to fill it out in source code
Usually, the spi source code is stm32 board and there is only one spi and 1:1 source code, so I can't see the 1:N code
I don't understand how to access the spi, so please help me
The spi source code I received is as follows
void Uart7_Task(void const * argument)
{
/* USER CODE BEGIN Uart7_Task */
uint8_t T_buffer_C1[] = {0x03,0x01,0x00}; // 80: 7
uint8_t T_buffer_C2[] = {0x05,0xFE,0x00}; //7F: 7
uint8_t T_buffer_C3[] = {0x0B,0x06,0x00}; //0B : 0,0D : 1 19: 7
uint8_t T_buffer_C33[] = {0xA0,0x00,0x00,0x00};
uint8_t T_buffer_C4_3[] = {0x00,0x00,0x00,0x00};
uint8_t T_buffer_C5[] = {0xFF,0xFF,0x00,0x00};
uint8_t T_buffer_C1_[] = {0x85,0x00}; // 80: 7
uint8_t T_buffer_C2_0[] = {0x0B,0x00}; //7F: 7
uint8_t T_buffer_C2_1[] = {0x0D,0x05}; //7F: 7
uint8_t T_buffer_C2_2[] = {0x0F,0x05}; //7F: 7
uint8_t T_buffer_C2_3[] = {0x11,0x05}; //7F: 7
uint8_t T_buffer_C2_4[] = {0x13,0x05}; //7F: 7
uint8_t T_buffer_C2_51[] = {0x15,0x05}; //7F: 7
uint8_t T_buffer_C2_6[] = {0x17,0x05}; //7F: 7
uint8_t T_buffer_C2_7[] = {0x19,0x0F}; //7F: 7
uint8_t T_buffer_C33_[] = {0xA0,0x00,0xFF,0xFF};
uint8_t T_buffer_C4_[] = {0xFF,0xFF,0xFF,0xFF};
uint8_t T_buffer_C5_[] = {0x00,0x00,0x00,0x00};
/* Infinite loop */
HAL_SPI_Transmit(&hspi2, T_buffer_C1_, 2, 5);
HAL_SPI_Receive(&hspi2,R_buffer_Spi2, 2, 5);
HAL_SPI_Transmit(&hspi2, T_buffer_C2_0, 2, 5);
HAL_SPI_Receive(&hspi2,R_buffer_Spi2, 2, 5);
HAL_SPI_Transmit(&hspi2, T_buffer_C2_7, 2, 5);
HAL_SPI_Receive(&hspi2,R_buffer_Spi2, 2, 5);
HAL_SPI_Transmit(&hspi2, T_buffer_C5_5, 2, 5);
HAL_SPI_Receive(&hspi2,R_buffer_Spi2, 2, 5);
HAL_SPI_Transmit(&hspi2, T_buffer_C5_5+2, 2, 5);
HAL_SPI_Receive(&hspi2,R_buffer_Spi2, 2, 5);
for(;;)
{
osDelay(1);
if(timer_state==1)
{
for(int i=0; i<8; i++)
{
T_buffer_C5_5[0] = 0xC0 + (4 * i);
HAL_Delay(1);
HAL_SPI_Transmit(&hspi2, T_buffer_C5_, 2, 5);
HAL_SPI_Receive(&hspi2,R_buffer_Spi2, 2, 5);
HAL_SPI_Transmit(&hspi2, T_buffer_C4_, 2, 5);
HAL_SPI_Receive(&hspi2,R_buffer_Spi2, 2, 5);
spi2_Ch0 = R_buffer_Spi2[3];
spi2_Ch0 = spi2_Ch0 << 8;
spi2_Ch0 += R_buffer_Spi2[2];
R_buffer_Spi2_Temp[0] = R_buffer_Spi2[3];
R_buffer_Spi2_Temp[1] = R_buffer_Spi2[2];
R_buffer_Spi2_Temp[2] = 0x0D;
R_buffer_Spi2_Temp[3] = 0x0A;
HAL_Delay(5);
if(i==0)
{
spi2_Ch0 = 0;
spi2_Ch0 = R_buffer_Spi2_Temp[1];
spi2_Ch0 = spi2_Ch0 << 8;
spi2_Ch0 += R_buffer_Spi2_Temp[0];
}
else if(i==7)
{
spi2_Ch7 = 0;
spi2_Ch7 = R_buffer_Spi2_Temp[1];
spi2_Ch7 = spi2_Ch7 << 8;
spi2_Ch7 += R_buffer_Spi2_Temp[0];
}
}
HAL_SPI_Transmit(&hspi3, T_buffer_C4_3, 3, 5);
HAL_SPI_Receive(&hspi3,R_buffer_Spi3, 3, 5);
T_buffer_C5_5[0]=0xC0;
memset(R_buffer_Spi5,0x00,sizeof(R_buffer_Spi5));
memset(R_buffer_Spi2_Temp,0x00,sizeof(R_buffer_Spi2_Temp));
timer_state= 0;
}
}
/* USER CODE END Uart7_Task */
}
There are two things I want to know
- How to use spi rst
- To retrieve sensor measurements
If you tell me one way to measure the sensor, I think I can apply it to other things similarly
I wrote this while using a translator, so please understand even if the composition is wrong