工具与软件:
您好、我将在具有 F280025c 的 CCS 中使用这些代码来写入 CONFIG1寄存器中的 UVLO1电平。 但在我运行代码的这一刻、nFLT2变为低电平。 我感觉是不知何故地爱抚是错误的,但我无法确定在哪里。
我首先通过数据表表7-3中给出的 WR_RA 命令来设置寄存器、然后更改更低位 WRL。 请提供帮助
这是我的代码:
//UCC5870-Q1配置(使用 TI F280025C)
#include "F28002x_Device.h"//包含 F280025C 头文件
#include "driverlib.h"//包含 TI 驱动程序库
#include "device.h"//包含特定于器件的定义
//定义 SPI 设置
#define SPI_BAUD_RATE 1000000 // 1 MHz
#define SPI_CLK_POLARITY 0 //时钟极性
#define SPI_CLK_PHASE 1 //时钟相位
//为 LaunchPad 上的 SPI 定义 GPIO 引脚
#define SPI_CS_PIN 10 //片选(使用 GPIO10)
#define SPI_MISO_PIN GPIO_17_SPIA_SOMI // SDO (使用 GPIO17)
#define SPI_MOSI_PIN GPIO_16_SPIA_SIMO // SDI (使用 GPIO16)
#define SPI_CLK_PIN GPIO_9_SPIA_CLK
//定义芯片地址
#define CHIP_ADDR 0x0 //默认芯片地址
Volatile uint8_t faultDetected = 0;
//函数原型
void setupSPI (void);
void writeUCC5870 (uint16_t regAddr、uint16_t data);
uint16_t readUCC5870 (uint16_t regAddr);
void configureUCC5870 (void);
void checkFaultStatus (void);
void enterConfiguration2 (void);
void exitConfiguration2 (void);
void main (void){
//初始化设备
device_init();
device_initGPIO();
//设置 SPI
setupSPI();
//配置 UCC5870
configureUCC5870 ();
while (1){
//主循环
}
}
void setupSPI (void){
//为 LaunchPad 上的 SPI 配置 GPIO 引脚
GPIO_setPinConfig (SPI_MOSI_PIN);//配置 MOSI
GPIO_setPinConfig (SPI_MISO_PIN);//配置 MISO
GPIO_setPinConfig (SPI_CLK_PIN);//配置 CLK
GPIO_setPinConfig (GPIO_10_GPIO10);
GPIO_setDirectionMode (SPI_CS_PIN、GPIO_DIR_MODE_OUT);//将 CS 设置为输出
//配置 SPI
SPI_setConfig (SPIA_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA1、SPI_MODE_MASTER、SPI_BAUD_RATE、 16);
SPI_enableModule (SPIA_BASE);
SPI_setEmulationMode (SPIA_BASE、SPI_EMULATION_FREE_RUN);
}
void writeUCC5870 (uint16_t regAddr、uint16_t data)
{
GPIO_writePin (SPI_CS_PIN、0);//将 CS 拉至低电平
//步骤1:使用 WR_RA (0xC)设置寄存器地址
uint16_t 命令;
命令=(CHIP_ADDR << 12)|(0xC << 8)|(regAddr & 0x1F);
SPI_writeDataBlockingNonFIFO (SPIA_BASE、command);
DEVICE_DELAY_US (10);
//步骤2:使用 WRL 写入数据(0xB)
uint16_t txData =((CHIP_ADDR << 12)|(0xB << 8)|(DATA & 0xFF));
SPI_writeDataBlockingNonFIFO (SPIA_BASE、txData);
while (SPI_isBusy (SPIA_BASE));
GPIO_writePin (SPI_CS_PIN、1);//释放 CS
}
void configureUCC5870 (void){
//将 UVLO1 (寄存器地址0x00)配置为值0x00
写入 UCC5870 (0x00、0x00);
}
这是我在示波器上看到的内容(红色- nCS、蓝色- CLK、黑色- SDI)

