Recent discussions
Hi,
I am developing a board with XMC1400 micro. Can you explain how to output printf() to one of the serial uart ports? I looked at some examples but they all use Jlink connection and DAVE IDE console.
Thanks,
mh09
Show LessHi, I would like to know what is the expected total ADC error rate for the part number XMC1402Q048X0032AAXUMA1.Along with that I would Iike to know whether the error rate is after calibration is done or not.
Show LessI want to communicate over SPI with 16MHz.
The issue is that there is an isolation IC with a 32nsec propagation delay between the master (XMC4800) and slave device.
1. Master delay compensation did not work on my first attempt. USIC AI.008 provides an explanation for why the "close loop delay compensation" does not working. Still not fixed?
2. The datasheet describes that sharp edge (A2) pads rise/fall time 3.7nsec. In my testing the "strong driver sharp edge" pads faster than "strong driver soft edge", but still rise/fall time about 20 nsec. I miss something?
Best Regards...
Show LessDear Receive,
How to build a selected file in DAVE 4.5...?!
I found there is a function that can be built a selected file but when I pressed it and no any response.
Please check the attached file...
Thank you so much.
Show LessThe UART can send data but cannot receive data. The UART port uses P2.0 and P2.1. The following is my code. Can you explain what went wrong? Thank you!
#include "xmc_gpio.h"
#include "xmc_uart.h"
#define TICKS_PER_SECOND 1000
#define TICKS_WAIT 1000
const uint8_t message[] = "Hello world!!\n";
XMC_GPIO_CONFIG_t led1_config;
XMC_GPIO_CONFIG_t rx_pin_config;
XMC_GPIO_CONFIG_t tx_pin_config;
XMC_UART_CH_CONFIG_t uart_config;
int main(void)
{
/* Configure LED1 */
led1_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL;
XMC_GPIO_Init(XMC_GPIO_PORT0,6, &led1_config);
/* UART configuration */
uart_config.data_bits = 8U;
uart_config.stop_bits = 1U;
uart_config.baudrate = 115200;
/* Configure RX pin */
rx_pin_config.mode = XMC_GPIO_MODE_INPUT_INVERTED_TRISTATE;
XMC_GPIO_Init(XMC_GPIO_PORT2,1, &rx_pin_config);
XMC_UART_CH_SetInputSource(XMC_UART0_CH0,XMC_UART_CH_INPUT_RXD,USIC0_C0_DX0_P2_1);
/* Configure UART channel */
XMC_UART_CH_Init(XMC_UART0_CH0, &uart_config);
/* Start UART channel */
XMC_UART_CH_Start(XMC_UART0_CH0);
/* Configure TX pin */
tx_pin_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT6;
XMC_GPIO_Init(XMC_GPIO_PORT2,0, &tx_pin_config);
/* Send a message via UART periodically */
SysTick_Config(SystemCoreClock / TICKS_PER_SECOND);
while(1)
{
/* Infinite loop */
uint16_t recvdata=XMC_UART_CH_GetReceivedData(XMC_UART0_CH0);
if(recvdata!=0)
{
XMC_UART_CH_Transmit(XMC_UART0_CH0, recvdata);
}
}
}
Show Less
Dear community members,
I have a question according to "OSC_ULP Oscillator Watchdog (ULPWDG)" in chapter 11.6.9.1 in Reference Manual V3.6 of XMC4500 family.
I see that "In case of external crystal failure the clock source switches automatically to the Internal
Slow Clock Source generating f_OSI.".
I just want to ask you whether there is a possibility to check if the internal slow clock source is in use instead of the external crystal. I assumed the SCU.HDCR.RCS bit changes automatically on failure of external crystal but it does not. Is there maybe any bit I can read out for that purpose?
Thanks!
Best regards,
autoUser
Show LessHello everyone,
I am trying to make the following code run. After building there seems to be no error and everything looks fine.
#include <DAVE.h>
// int8_t RxBuffer[64] = { 0 };
// int8_t TxBuffer[64] = { 0 };
uint8_t Bytes;
uint32_t event_count;
uint32_t result_Isignal;
uint32_t i = 0;
bool Isignalstatus = 0;
int8_t TxBuffer[64];
int main(void)
{
DAVE_STATUS_t status;
status = DAVE_Init();
if (status == DAVE_STATUS_FAILURE)
{
XMC_DEBUG(("DAVE Apps initialization failed with status %d\n", status));
while (1U)
{
}
}
if(USBD_VCOM_Connect() != USBD_VCOM_STATUS_SUCCESS)
{
return -1;
}
while(!USBD_VCOM_IsEnumDone());
ADC_MEASUREMENT_StartConversion(&ADC_MEASUREMENT_0);
while (1U)
{
if (Isignalstatus==1)
{
sprintf(TxBuffer,"\n\rResult=%d",result_Isignal);
for(int i=0;TxBuffer != '\0';i++)
{
USBD_VCOM_SendByte(TxBuffer);
CDC_Device_USBTask(&USBD_VCOM_0);
}
Isignalstatus = 0;
}
}
return 1;
}
void Time_Interval_Event(void)
{
/* Acknowledge Period Match interrupt generated on TIMER_CCU_1 */
TIMER_ClearEvent(&TIMER_0);
ADC_MEASUREMENT_StartConversion(&ADC_MEASUREMENT_0);
}
/*End of measurements interrupt*/
void Adc_Measurement_Handler(void)
{
/*Read out conversion results*/
result_Isignal = ADC_MEASUREMENT_GetResult(&ADC_MEASUREMENT_Channel_A_handle);
Isignalstatus = 1;
}
/*
{
Bytes = USBD_VCOM_BytesReceived();
if (Bytes)
{
USBD_VCOM_ReceiveByte(&RxBuffer[0]);
USBD_VCOM_SendByte(RxBuffer[0]);
}
CDC_Device_USBTask(&USBD_VCOM_cdc_interface);
}
return 1;
}
*/
Now my XMC4500 is connected to my laptop. After debugging I on
I can't run the code after debugging as you can see. Also When Using Teraterm (instead of putty) there is no data flow.
Best regards 🙂
Show LessI have downloaded all required software for the XMC Flasher (Java JRE 18.0.2) as well as Segger JLink but when I attempt to run the XMC Flasher from both the developer center, as well as the file installation location I am receiving a Java Exception. I have attempted to run this from windows powershell as well and I also receive an error of: Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application.
I'm not exactly sure what to do at this point, so any help will be appreciated.
Show LessDear sir:
I am using DAVE to develope a programme for XMC4000, using it to perform some data processing using CMSIS. Using float32 to calculate data will meet significant calculation error. May I possible to update the dave's app CMSIS to its latest version 1.10, so many newer fuctions will be available. Thanks so much.
regards.
Show Less