大家好、
我尝试使用 F28069M LaunchPad 通过 SPI_A 从 ADC 读取数据 我已使用控制套件示例作为起点来设置模块、并根据数据表进行更改。 我还没有尝试解释输入的数据、我只是尝试使用示波器检查是否正在生成时钟。 我希望时钟在其上可见的引脚永久处于逻辑高电平、而我希望看到一个大约1.6MHz 的时钟。
我的 GPIO 初始化代码如下:
//---组 B 引脚 GpioCtrlRegs.GPBCTRL.ALL = 0x00000000;// QUALPRD= SYSCLKOUT (对于所有组 B) GPIO GpioCtrlRegs.GPBQSEL1.ALL = 0x00000000;//对于所有组 B GPIO 无限定条件32-44 GpioCtrlRegs.GPBQ0000.ALL = 0x00000000;//无限定条件= 0x0000.GPIOL.CMP458L = 0x00000000 //所有组 B GPIO 都是输入 GpioCtrlRegs.GPBPUD.ALL = 0x00000000;//所有组 B 上拉被启用 GpioCtrlRegs.GPBDIR.bit.GPIO56=1; //将 GPIO56设置为输出方向 GpioCtrlRegs.GPBMUX1.bit.GPIO32=0;// 0=GPIO 1= SDAA 2=EPWMSYNCI 3=ADCSOCAO GpioCtrlRegs.GPBMUX1.bit.GPIO33=0;// 0=GPIO 1=SCLA 2=EPWMSYNCO 3=ADCSOCBO GpioCtrlRegs.GPBMUX1.bit.GPIO34=0;// 0=GPIO 1=COMP2OUT 2=rsvd 3=COMP3OUT GpioCtrlRegs.GPBMUX1.bit.GPIO35=0;// 0=GPIO (TDI) 1=rsvd 2=rsvd 3=rsvd GpioCtrlRegs.GPBMUX1.bit.GPIO36=0;// 0=GPIO (TMS) 1=rsvd 2=rsvd 3=rsvd GpioCtrlRegs.GPBMUX1.bit.GPIO37=0;// 0=GPIO (TDO) 1=rsvd 2=rsvd 3=rsvd GpioCtrlRegs.GPBMUX1.bit.GPIO38 = 0;// 0=GPIO/XCLKIN (TCK) 1=rsvd 2=rsvd 3=rsvd GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 0;// 0=GPIO 1=rsvd 2=rsvd 3=rsvd GpioCtrlRegs.GPBMUX1.bit.GPIO40=0;// 0=GPIO 1=EPWM7A 2=SCITXDB 3=rsvd GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 0;// 0=GPIO 1=EPWM7B 2=SCIRXDB 3=rsvd GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 0;// 0=GPIO 1=EPWM8A 2=TZ1 3=COMP1OUT GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 0;// 0=GPIO 1=EPWM8B 2=TZ2 3=COMP2OUT GpioCtrlRegs.GPBMUX1.bit.GPIO44 = 0;// 0=GPIO 1=MFSRA 2=SCIRXDB 3=EPWM7B GpioCtrlRegs.GPBMUX2.bit.GPIO50=0;// 0=GPIO 1=EQEP1A 2=MDXA 3=TZ1 GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 0;// 0=GPIO 1=EQEP1B 2=MDRA 3=TZ2 GpioCtrlRegs.GPBMUX2.bit.GPIO52=0;// 0=GPIO 1=EQEP1S 2=MCLKXA 3=TZ3 GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 0;// 0=GPIO 1=EQEP1I 2=MFSXA 3=rsvd GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 0;// 0=GPIO 1=SPISIMOA 2=EQEP2A 3=HRCAP1 GpioCtrlRegs.GPBMUX2.bit.GPIO55=0;// 0=GPIO 1=SPISOMIA 2=EQEP2B 3=HRCAP2 GpioCtrlRegs.GPBMUX2.bit.GPIO56=1;// 0=GPIO 1=SPICLKA 2=EQEP2I 3=HRCAP3 GpioCtrlRegs.GPBMUX2.bit.GPIO57=0;// 0=GPIO 1=SPISTEA 2=EQEP2S 3=HRCAP4 GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 0;// 0=GPIO 1=MCLKRA 2=SCITXDB 3=EPWM7A
和我的 SPI 模块初始化代码...
void InitSPI (void)//初始化 F2806x 上的 SPI 模块 { SpiaRegs.SPICCR.bit.SPISWRESET=0;//重置 SPI SpiaRegs.SPICCR.All=0x004F; //低电平有效时钟,16位字符 SpiaRegs.SPICTL.All=0x0007; // SPI 主模式、使能传输、使能中断 SpiaRegs.SPISTS.All=0x0000; //清除状态寄存器,复位所有标志。 SpiaRegs.SPIBRR=0x001B; //将波特率设置为大约1.6Mbps SpiaRegs.SPIFFTX.bit.SPIFFENA=0;//禁用 Tx FIFO 增强功能 SpiaRegs.SPIFFRX.bit.RXFFIENA=0;//禁用 Rx FIFO 中断 SpiaRegs.SPIFFCT.All=0x00; SpiaRegs.SPIPRI.bit.TRIWIRE=0; //禁用标准4线 SPI 的三线模式 SpiaRegs.SPICCR.bit.SPISWRESET=1;//启用 SPI }
我在 CCS 上使用了调试器来验证这两段代码都在执行、但引脚上仍然没有时钟信号的迹象。
有什么想法有什么问题吗?