Hello all,
I am new about XMC family. I tried to communicate with my sensor using DAVE apps but When I check signals, transmit signal is false. After that, I tried to communicate use XMC functions but the result is same.
I attached my output signals and my codes.
So,how can I solve my problem ?
XMC_SPI_CH_Init(XMC_SPI1_CH0, &spi_config);
XMC_SPI_CH_SetInputSource(XMC_SPI1_CH0,XMC_SPI_CH_ INPUT_DIN0,USIC1_C0_DX0_P0_5);
XMC_GPIO_SetMode(SPI_MOSI, XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2);
XMC_GPIO_SetMode(SPI_SS, XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2);
XMC_GPIO_SetMode(SPI_SCLK, XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2);
XMC_GPIO_SetMode(SPI_MISO, XMC_GPIO_MODE_INPUT_TRISTATE);
uint16_t readata = 0x85;
XMC_SPI_CH_Start(XMC_SPI1_CH0);
while(1U)
{
XMC_SPI_CH_EnableSlaveSelect(XMC_SPI1_CH0, XMC_SPI_CH_SLAVE_SELECT_0);
/*Sending a byte*/
XMC_SPI_CH_Transmit(XMC_SPI1_CH0,readata, XMC_SPI_CH_MODE_STANDARD);
/*Wait till the byte has been transmitted*/
while((XMC_SPI_CH_GetStatusFlag(XMC_SPI1_CH0) & XMC_SPI_CH_STATUS_FLAG_TRANSMIT_SHIFT_INDICATION) == 0U)
{
}
XMC_SPI_CH_ClearStatusFlag(XMC_SPI1_CH0, XMC_SPI_CH_STATUS_FLAG_TRANSMIT_SHIFT_INDICATION);
/*Disable Slave Select line */
XMC_SPI_CH_DisableSlaveSelect(XMC_SPI1_CH0);
XMC_SPI_CH_EnableSlaveSelect(XMC_SPI1_CH0, XMC_SPI_CH_SLAVE_SELECT_0);
Here is my code using DAVE Apps.
uint8_t readata = 0x85;
uint32_t status1 = 0;
uint32_t status2 = 0;
SPI_MASTER_SetMode(&SPI_MASTER_0, XMC_SPI_CH_MODE_STANDARD);
/* Clear the flags */
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_RECEIVE_INDICATION);
while(1U)
{
SPI_MASTER_Transmit(&SPI_MASTER_0,readata,1);
while(SPI_MASTER_0.runtime->tx_busy);
/* Wait till dummy data is received from epson sensor */
do
{
status1 = SPI_MASTER_GetFlagStatus(&SPI_MASTER_0,XMC_SPI_CH_ STATUS_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
status2 = SPI_MASTER_GetFlagStatus(&SPI_MASTER_0,XMC_SPI_CH_ STATUS_FLAG_RECEIVE_INDICATION);
} while(((status1 == 0) && (status2 == 0)));
/* Clear the flags */
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_RECEIVE_INDICATION);