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.

[参考译文] CCS/DRV8308:我无法使用内部寄存器 PWM 模式与 drv8308和 tm4c1294ncpdti 板通信

Guru**** 2390755 points
Other Parts Discussed in Thread: DRV8308

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/921959/ccs-drv8308-i-cant-communition-with-drv8308-and-tm4c1294ncpdti-board-using-internal-registor-pwm-mode

器件型号:DRV8308

工具/软件:Code Composer Studio

我无法使用内部寄存器 PWM 模式与 drv8308和 tm4c1294ncpdti 板通信

#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_ssi.h"
#include "inc/hw_types.h"
#include "driverlib/ssi.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"

uint32_t ui32SysClkFreq;

#define NUM_SSI_DATA 12.
uint8_t pui8DataTx[NUM_SSI_DATA];
uint8_t pui8DataTxdataMSB[NUM_SSI_DATA];
uint8_t pui8DataTxdataLSB[NUM_SSI_DATA];


int main (空)

uint32_t ui32Index;
uint32_t ui32Data;

ui32SysClkFreq = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);

SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_3);
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
// GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA4_SSI0XDAT0);
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_4|GPIO_PIN_2);

SSIConfigSetExpClk (SSI0_BASE、ui32SysClkFreq、SSI_FRF_MOTO_MODE_1、SSI_MODE_MASTER、1000000、 8);
SSIEnable (SSI0_BASE);


//
//初始化地址字节0
//
pui8DataTx[0]= 0x00;
pui8DataTx[1]= 0x01;
pui8DataTx[2]= 0x02;
pui8DataTx[3]= 0x03;
pui8DataTx[4]= 0x04;
pui8DataTx[5]= 0x05;
pui8DataTx[6]= 0x06;
pui8DataTx[7]= 0x07;
pui8DataTx[8]= 0x08;
pui8DataTx[9]= 0x09;
pui8DataTx[10]= 0x0A;
pui8DataTx[11]= 0x0B;

针对 MSB 数据的//TX 数据字节1.

pui8DataTxdataMSB[0]= 0x20;
pui8DataTxdataMSB[1]= 0x00;
pui8DataTxdataMSB[2]= 0x03;
pui8DataTxdataMSB[3]= 0x65;
pui8DataTxdataMSB[4]= 0x02;
pui8DataTxdataMSB[5]= 0x10;
pui8DataTxdataMSB[6]= 0x14;
pui8DataTxdataMSB[7]= 0x03;
pui8DataTxdataMSB[8]= 0x11;
pui8DataTxdataMSB[9]= 0x32;
pui8DataTxdataMSB[10]= 0xF4;
pui8DataTxdataMSB[11]= 0x0F;

针对 LSB 数据的//TX 数据字节2.

pui8DataTxdataLSB[0]= 0x11;
pui8DataTxdataLSB[1]= 0x57;
pui8DataTxdataLSB[2]= 0xB4;
pui8DataTxdataLSB[3]= 0xDC;
pui8DataTxdataLSB[4]= 0x55;
pui8DataTxdataLSB[5]= 0x5B;
pui8DataTxdataLSB[6]= 0xB1;
pui8DataTxdataLSB[7]= 0xB6;
pui8DataTxdataLSB[8]= 0x2C;
pui8DataTxdataLSB[9]= 0x58;
pui8DataTxdataLSB[10]= 0x79;
pui8DataTxdataLSB[11]= 0xA0;

while (1)

for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)

GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_3、0x00);
ui32Data =ui32Index;
// SSIDataPut (SSI0_BASE、0x00);
SSIDataPut (SSI0_BASE、pui8DataTx[ui32Data]);
SSIDataPut (SSI0_BASE、pui8DataTxdataMSB[ui32Data]);
SSIDataPut (SSI0_BASE、pui8DataTxdataLSB[ui32Data]);

/* for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)

ui32Data =ui32Index;
SSIDataPut (SSI0_BASE、* pui8DataTxdataMSB[ui32Data]);

for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)

ui32Data =ui32Index;
SSIDataPut (SSI0_BASE、* pui8DataTxdataLSB[ui32Data]);


*
GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_3、GPIO_PIN_3);
// SSIBusy (SSI0_BASE)
while (SSIBusy (SSI0_BASE))




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Govind、

    请发布显示 SCLK、SDI、SDO 和 nSCS 的 SPI 事务示波器图像。

    此致、

    -Adam

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     我在代码中有一些变化、之后我得到了这种类型的信号。

    #include
    #include
    #include "inc/hw_memmap.h"
    #include "inc/hw_ssi.h"
    #include "inc/hw_types.h"
    #include "driverlib/ssi.h"
    #include "driverlib/gpio.h"
    #include "driverlib/pin_map.h"
    #include "driverlib/sysctl.h"

    uint32_t ui32SysClkFreq;

    #define NUM_SSI_DATA 12.
    uint8_t pui8DataTx[NUM_SSI_DATA];
    uint8_t pui8DataTxdataMSB[NUM_SSI_DATA];
    uint8_t pui8DataTxdataLSB[NUM_SSI_DATA];


    int main (空)

    uint32_t ui32Index;
    uint32_t ui32Data;

    ui32SysClkFreq = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);

    SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
    GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_3);
    GPIOPinConfigure (GPIO_PA2_SSI0CLK);
    // GPIOPinConfigure (GPIO_PA3_SSI0FSS);
    GPIOPinConfigure (GPIO_PA4_SSI0XDAT0);
    GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_4|GPIO_PIN_2);

    SSIConfigSetExpClk (SSI0_BASE、ui32SysClkFreq、SSI_FRF_MOTO_MODE_1、SSI_MODE_MASTER、1000000、 8);
    SSIEnable (SSI0_BASE);


    //
    //初始化地址字节0
    //
    pui8DataTx[0]= 0x00;
    pui8DataTx[1]= 0x01;
    pui8DataTx[2]= 0x02;
    pui8DataTx[3]= 0x03;
    pui8DataTx[4]= 0x04;
    pui8DataTx[5]= 0x05;
    pui8DataTx[6]= 0x06;
    pui8DataTx[7]= 0x07;
    pui8DataTx[8]= 0x08;
    pui8DataTx[9]= 0x09;
    pui8DataTx[10]= 0x0A;
    pui8DataTx[11]= 0x0B;

    针对 MSB 数据的//TX 数据字节1.

    pui8DataTxdataMSB[0]= 0x20;
    pui8DataTxdataMSB[1]= 0x00;
    pui8DataTxdataMSB[2]= 0x03;
    pui8DataTxdataMSB[3]= 0x65;
    pui8DataTxdataMSB[4]= 0x02;
    pui8DataTxdataMSB[5]= 0x10;
    pui8DataTxdataMSB[6]= 0x14;
    pui8DataTxdataMSB[7]= 0x03;
    pui8DataTxdataMSB[8]= 0x11;
    pui8DataTxdataMSB[9]= 0x32;
    pui8DataTxdataMSB[10]= 0xF4;
    pui8DataTxdataMSB[11]= 0x0F;

    针对 LSB 数据的//TX 数据字节2.

    pui8DataTxdataLSB[0]= 0xA3;
    pui8DataTxdataLSB[1]= 0x57;
    pui8DataTxdataLSB[2]= 0xB4;
    pui8DataTxdataLSB[3]= 0xDC;
    pui8DataTxdataLSB[4]= 0x55;
    pui8DataTxdataLSB[5]= 0x5B;
    pui8DataTxdataLSB[6]= 0xB1;
    pui8DataTxdataLSB[7]= 0xB6;
    pui8DataTxdataLSB[8]= 0x2C;
    pui8DataTxdataLSB[9]= 0x58;
    pui8DataTxdataLSB[10]= 0x79;
    pui8DataTxdataLSB[11]= 0xA0;

    while (1)

    for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)

    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_3、GPIO_PIN_3);
    ui32Data =ui32Index;
    // SSIDataPut (SSI0_BASE、0x00);
    SSIDataPut (SSI0_BASE、pui8DataTx[ui32Data]);
    while (SSIBusy (SSI0_BASE));
    SSIDataPut (SSI0_BASE、pui8DataTxdataMSB[ui32Data]);
    while (SSIBusy (SSI0_BASE));
    SSIDataPut (SSI0_BASE、pui8DataTxdataLSB[ui32Data]);

    while (SSIBusy (SSI0_BASE));
    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_3、0x00);
    // SSIBusy (SSI0_BASE)
    // while (SSIBusy (SSI0_BASE){}


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢  您的帮助 ;非常感谢您的善意和支持。