ms5614T
spi输出四路模拟量
为起到隔离作用选用spi通讯芯片
电路图如下所示tlp521-4与ms5614t组成隔离输出电路
选择输出是时,可根据下发数据决定输出那一路
0001- VOUTA
0101- VOUTB
1001- VOUTC
0101- VOUTD
连接单片机的为软件spi未使用硬件spi,光耦传输速度慢需添加延时
(一)gpio初始化代码
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
(二)ms5614下发数据
void MS5614_Send(uint16_t data)
{
uint8_t i;
SET_MS5614_FS();
SET_MS5614_CLK();
CLR_MS5614_CS();
CLR_MS5614_MOSI();
delay_us(2);
delay_us(20);
CLR_MS5614_FS();
delay_us(20);
for(i=0;i<16;i++)
{
delay_us(20);
if(data & (0x8000 >> i))
SET_MS5614_MOSI();
else
CLR_MS5614_MOSI();
delay_us(2);
delay_us(20);
CLR_MS5614_CLK();
delay_us(2);
delay_us(20);
SET_MS5614_CLK();
delay_us(20);
}
SET_MS5614_FS();
delay_us(2);
SET_MS5614_CS();
}