TI中文支持网
TI专业的中文技术问题搜集分享网站

PGA113程序驱动

驱动程序如下   电压一直放不大一直  找不到程序哪有问题

#include "PGA.h"

void PGA_GPIOInit(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能SPI时钟 */
PGA_SPI_APBxClock_FUN ( PGA_SPI_CLK, ENABLE );
/* 使能SPI引脚相关的时钟 */
PGA_SPI_CS_APBxClock_FUN ( PGA_SPI_CS_CLK|PGA_SPI_SCK_CLK|
PGA_SPI_MOSI_PIN, ENABLE );
/* 配置SPI的 CS引脚,普通IO即可 */
GPIO_InitStructure.GPIO_Pin = PGA_SPI_CS_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(PGA_SPI_CS_PORT, &GPIO_InitStructure);
/* 配置SPI的 SCK引脚*/
GPIO_InitStructure.GPIO_Pin = PGA_SPI_SCK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(PGA_SPI_SCK_PORT, &GPIO_InitStructure);

/* 配置SPI的 MOSI引脚*/
GPIO_InitStructure.GPIO_Pin = PGA_SPI_MOSI_PIN;
GPIO_Init(PGA_SPI_MOSI_PORT, &GPIO_InitStructure);

/* 停止信号 PGA: CS引脚高电平*/
SPI_PGA_CS_HIGH();

/* SPI 模式配置 */
SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx; SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;

SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(PGA_SPIx , &SPI_InitStructure);

/* 使能 SPI */
SPI_Cmd(PGA_SPIx , ENABLE);

}

void SPI_PAG_SendData (uint8_t data)
{
time_out = 10000;
while(SPI_I2S_GetFlagStatus( SPI2,SPI_I2S_FLAG_TXE) == SET)
{

SPI_I2S_SendData(SPI2,data);
}
}

static void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount–);
}

void WriteByte(u8 command)
{
unsigned char i;
SPI_PGA_CS_LOW(); Delay(0xffffee); for(i = 0; i < 16;i++)
{
SPI_PGA_SCK_LOW();
if(command&0x80)
SPI_PGA_MOSI_HIGH();
else
SPI_PGA_MOSI_LOW();
SPI_PGA_SCK_HIGH();
command <<= 1; }
SPI_PGA_SCK_LOW();
Delay(0xffffee); SPI_PGA_CS_HIGH();}
void configPGA(u8 ch,u8 gain)
{
unsigned char i;
switch(gain)
{
case 1: gain=pgaGain1;
break;
case 2: gain=pgaGain2;
break;
case 4: gain=pgaGain4;
break;
case 8: gain=pgaGain8;
break;
case 16: gain=pgaGain16;
break;
case 32: gain=pgaGain32;
break;
case 64: gain=pgaGain64;
break;
case 128: gain=pgaGain128;
break;
default: gain=pgaGain2;
break;
}
i=ch+gain;
SPI_PGA_CS_LOW(); WriteByte(0x01);
WriteByte(i);
SPI_PGA_CS_HIGH();
}

user151383853:

是修改增益, 可以再读出寄存器对比一下。 另外不能放大也可能硬件问题, 比如负载太重了

user6231271:

回复 user151383853:

我修改增益了 但是就是放不大硬件应该是没问题的

赞(0)
未经允许不得转载:TI中文支持网 » PGA113程序驱动
分享到: 更多 (0)