Other Parts Discussed in Thread: ADS7028
器件型号: TMS320F28377D
主题: ADS7028 中讨论的其他器件
我尝试在自动序列模式下在 ADS7028 中读取数据。 我已经开始发送数据以在 ADS 上写入、但我想在连接控制卡 ADS7028 SPI 连接器之前检查以下配置。
下面是我的代码。
#include “driverlib.h"</s>“
#include “device.h"</s>“
define ADS_SPI_BASE spic_base
#define ADS_CS_GPIO 53 //手动芯片选择
#define OPCODE_WRITE 0x08
#define REG_ADDR 0x11
#define REG_DATA 0x01
//--原型--
void InitGPIO (System_And_);
void InitSPI_DebugMode (void);
void ADS_RegisterWrite (uint8_t regAddr、uint8_t data);
void main (void)
{
// 1。 初始化系统
设备初始化 ();
device_initGPIO();
interrupt_initModule();
Interrupt_initVectorTable();
// 2. 设置引脚
System_And_();
// 3. 设置 SPI((1MHz、用于 3 字节写入的 8 位模式)
InitSPI_DebugMode();
// 4. 上电延迟
DEVICE_DELAY_US (5000);
while (1)
{
ADS_RegisterWrite (0x11、0x01);
DEVICE_DELAY_US (50);
}
}
System_And_初始化 GPIO (void)
{
GPIO_unlockPortConfig (GPIO_PORT_B、0xFFFFFFFF);
//配置 SPI-C 引脚 (GPIO 50、51、52)
GPIO_setMasterCore (50、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_50_SPISIMOC);
GPIO_setPadConfig (50、GPIO_PIN_TYPE_PULLUP);
GPIO_setQualificationMode (50、GPIO_QUAL_ASYNC);
GPIO_setMasterCore (51、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_51_SPENSIC);
GPIO_setPadConfig (51、GPIO_PIN_TYPE_PULLUP);
GPIO_setQualificationMode (51、GPIO_QUAL_ASYNC);
GPIO_setMasterCore (52、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_52_SPICLKC);
GPIO_setPadConfig (52、GPIO_PIN_TYPE_PULLUP);
GPIO_setQualificationMode (52、GPIO_QUAL_ASYNC);
//将 CS 引脚 (GPIO 53) 配置为手动输出
GPIO_setMasterCore (53、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_53_GPIO53);
GPIO_setDirectionMode (53、GPIO_DIR_MODE_OUT);
GPIO_writePin (53、1);//起始为高电平
}
void InitSPI_DebugMode (void)
{
SPI_disableModule (ADS_SPI_BASE);
//配置:1MHz、8 位数据大小、模式 0(极性 0、相位 0)
//我们使用 8 位大小、因此我们可以发送操作码 (8)+ Addr (8)+ Data (8)
SPI_setConfig (ADS_SPI_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA1、
SPI_MODE_MASTER、1000000、8);
spi_disableLoopback (ADS_SPI_BASE);
SPI_setEmulationMode (ADS_SPI_BASE、SPI_emulation_free_run);
//启用 FIFO(有助于缓冲 3 个字节)
SPI_enableFIFO (ADS_SPI_BASE);
SPI_enableModule (ADS_SPI_BASE);
}
void ADS_RegisterWrite(uint8_t regAddr、uint8_t 数据)
{
GPIO_writePin (ADS_CS_GPIO、0);
DEVICE_DELAY_US (2);
GPIO_writePin (ADS_CS_GPIO、0);
DEVICE_DELAY_US (2); // t_CSSC 延迟
//发送所有 3 个字节
SPI_writeDataBlockingFIFO (ADS_SPI_BASE、opode_write); //写入命令
SPI_writeDataBlockingFIFO (ADS_SPI_BASE、regAddr); //寄存器地址
SPI_writeDataBlockingFIFO (ADS_SPI_BASE、DATA); //数据
//等待传输完成
//检查 SPI 是否仍然繁忙
while (SPI_isBusy (ADS_SPI_BASE)){}
DEVICE_DELAY_US (20);
GPIO_writePin (ADS_CS_GPIO、1);
DEVICE_DELAY_US (2);
}


CLK 信号
2. mosi
3. Cs.
硬件中没有用于任何信号的上拉电阻器。 MOSI 应该在时钟周期内生成信号位、对吗?
