This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
设计控制一颗DAC,使用了SPI外设,但是没有注意DAC的读写数据都是24bit为单位的,有寄存器地址和16位数据组成
由于SPI外设的buf大小为16bit,我的理解是SPI外设在完成16bit数据传输后,会将nSTE管脚拉高,这样的话对于我目前的DAC控制就有问题了
所以我现在配置的是SPI的8bit模式,每次向buf里写入8bit数据,通过查询判断是否可以写入,完成一次数据传输需要写入3次。
请问我可以将nSTE管脚配置为GPIO模式,按照需要控制其合适为高吗?
不希望SPI外设在完成设定长度的数据传输后,将nSTE信号拉高,我是希望传输完3个字节之后将其拉高
实际调试了一下 这样是可以的
下面是IO配置:
//
// InitSpiaGpio - Initialize SPIA GPIOs
//
void InitSpiaGpio()
{
EALLOW;
//
// Enable internal pull-up for the selected pins
//
// Pull-ups can be enabled or disabled by the user.
// This will enable the pullups for the specified pins.
// Comment out other unwanted lines.
//
GpioCtrlRegs.GPBPUD.bit.GPIO58 = 0; // Enable pull-up on GPIO58 (SPISIMOA)
GpioCtrlRegs.GPBPUD.bit.GPIO59 = 0; // Enable pull-up on GPIO59 (SPISOMIA)
GpioCtrlRegs.GPBPUD.bit.GPIO60 = 0; // Enable pull-up on GPIO18 (SPICLKA)
GpioCtrlRegs.GPBPUD.bit.GPIO61 = 0; // Enable pull-up on GPIO19 (SPISTEA)
//
// Set qualification for selected pins to asynch only
//
// This will select asynch (no qualification) for the selected pins.
// Comment out other unwanted lines.
//
//GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 3; // Asynch input GPIO58 (SPISIMOA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO59 = 3; // Asynch input GPIO59 (SPISOMIA)
//GpioCtrlRegs.GPBQSEL2.bit.GPIO60 = 3; // Asynch input GPIO60 (SPICLKA)
//GpioCtrlRegs.GPBQSEL2.bit.GPIO61 = 3; // Asynch input GPIO61 (SPISTEA)
//
//Configure SPI-A pins using GPIO regs
//
// This specifies which of the possible GPIO pins will be SPI functional
// pins.
// Comment out other unwanted lines.
//
GpioCtrlRegs.GPBGMUX2.bit.GPIO58 = 3; // Set Group Mux
GpioCtrlRegs.GPBGMUX2.bit.GPIO59 = 3; // Set Group Mux
GpioCtrlRegs.GPBGMUX2.bit.GPIO60 = 3; // Set Group Mux
GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 3; // Configure GPIO58 as SPISIMOA
GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 3; // Configure GPIO58 as SPISOMIA
GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 3; // Configure GPIO58 as SPICLKA
GpioCtrlRegs.GPBGMUX2.bit.GPIO61 = 0;
GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 0;
GpioCtrlRegs.GPBDIR.bit.GPIO61 = 1;
GpioDataRegs.GPBSET.bit.GPIO61 = 1;
EDIS;
}
我使用28379D的Launchpad控制DAC81416