Not applicable
Feb 21, 2018
10:30 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Feb 21, 2018
10:30 PM
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_STATUS_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STATUS_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_STATUS_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STATUS_FLAG_RECEIVE_INDICATION);
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_STATUS_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STATUS_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_STATUS_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STATUS_FLAG_RECEIVE_INDICATION);
Labels
4 Replies
Mar 06, 2018
08:12 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 06, 2018
08:12 AM
I can help you but not based on XMC library functions. Tell me, please, what pins do you use for the SPI interface on XMC4800 and what data frame your sensor needs.
Cheers,
Alex
Cheers,
Alex
Not applicable
Mar 09, 2018
12:58 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 09, 2018
12:58 AM
Hello Alex,
Thank you for your reply
I use 0.4 0.5 0.6 0.11
I need to send 8bit data and also read 8 bit data
My clock cannot be up to 1 mhz to work with sensor.
Thank You,
Best Regards.
Kadir Karson
Thank you for your reply
I use 0.4 0.5 0.6 0.11
I need to send 8bit data and also read 8 bit data
My clock cannot be up to 1 mhz to work with sensor.
Thank You,
Best Regards.
Kadir Karson
Mar 30, 2018
01:45 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 30, 2018
01:45 AM
Do you have solved it?
Not applicable
Apr 02, 2018
06:12 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Apr 02, 2018
06:12 AM
No I still cannot communicate with them