XMC™ Forum Discussions
Dear Sir,
We have a customer who wants to make an audio streaming by Ethernet RTP protocol in the Car system.
Our XMC has those interfaces to support this case, but I can't find the information about the RTP protocol for reference.
Could you help to check and give us comments on how to support this case?
Thanks.
Best Regards,
Billy
Show Less
Hi,
there is a description about Oscillator in Direct Input in XMC1400 datasheet.
But there is no parameter of VIHBX and VILBX in the table 21. External clock components cannot be selected.
Would you tell me the parameters or external clock components do you recommend ?
Best Regards,
Hayashi.k
Show Less
Hello all!
I have an XMC7200 Evaluation Kit.
I am trying to configure one of the UARTs using the CYHAL.
I am following the example code show on the docs here and pasted below.
The example code works fine for the debug UART, but when trying to use one of the other SCBs as shown in the pin mappings of the datasheet (P0_0 and P0_1) I get a pin configuration error back from the cyhal_uart_init function.
I am not sure why or how to use the HAL.
Does anyone have an example project showing how to use the CYHAL functions on one of the non-debug UART ports with the XMC7000 series?
#define DATA_BITS_8 8
#define STOP_BITS_1 1
#define BAUD_RATE 115200
#define UART_DELAY 10u
#define RX_BUF_SIZE 4
#define TX_BUF_SIZE 4
// Variable Declarations
cy_rslt_t rslt;
cyhal_uart_t uart_obj;
uint32_t actualbaud;
uint8_t tx_buf[TX_BUF_SIZE] = { '1', '2', '3', '4' };
uint8_t rx_buf[RX_BUF_SIZE];
size_t tx_length = TX_BUF_SIZE;
size_t rx_length = RX_BUF_SIZE;
uint32_t value = 'A';
// Initialize the UART configuration structure
const cyhal_uart_cfg_t uart_config =
{
.data_bits = DATA_BITS_8,
.stop_bits = STOP_BITS_1,
.parity = CYHAL_UART_PARITY_NONE,
.rx_buffer = rx_buf,
.rx_buffer_size = RX_BUF_SIZE
};
// Initialize the UART Block
rslt = cyhal_uart_init(&uart_obj, P0_1, P0_0, NC, NC, NULL,
&uart_config);
// Set the baud rate
rslt = cyhal_uart_set_baud(&uart_obj, BAUD_RATE, &actualbaud);
// Begin Tx Transfer
cyhal_uart_write(&uart_obj, (void*)tx_buf, &tx_length);
cyhal_system_delay_ms(UART_DELAY);
// Send a Character
cyhal_uart_putc(&uart_obj, value);
cyhal_system_delay_ms(UART_DELAY);
// Begin Rx Transfer
cyhal_uart_read(&uart_obj, (void*)rx_buf, &rx_length);
cyhal_system_delay_ms(UART_DELAY);
Show Less
Hello specialist,
In my customer control board, we didn't use DP83848 PHY chip, using RTL8201F, which is used in our ET1100 system before, but now when using XMC 4800 MCU, it can't work as normal, so here we have some questions need your help.
1. we using the "XMC4800_Relax_Kit_Series-V1" SSC example for test, customer control board didn't have any response, BTW, all the design were referenced "Schematic_XMC4700_XMC4800_Relax_Kit_Series-V1.pdf" document. we can get the scope on TXDx or RXDx pins. I think it maybe the wrong PHY address.
2. using "XMC_EtherCAT_Phy_Board-V3" for debug test, download "XMC4800_Relax_Kit_Series-V1" SSC example, all the system can run as normal. BTW, checked found that V3 version Phy_board are difference with V1 Phy_board, but both of their PHY addresses are difference.
3. is there any documents guide or SOP to let us know how to do some setting while using a new type PHY address? not only suggested by your Relax_Kit board.
4. as we know, we also can do some regesiter value seting through MDIO/MCLK, how to do in Dave4 IDE?
5. is there any support mailbox? that we can using mail much better?
Many thanks,
Show LessHi everybody,
I am working with Ethercat XMC4300, based on Infineon design and it works fine. But the problem is related to BCM5241, it's Obsolete. (We cannot buy them in bulk for mass production).
So I want to change to DP83826E.
I attached PDF file about DP83826E, it is quite similar to BCM5241.
May I ask if this alternative is responsive?
And do I have to change the source code ethercat XMC4300?
Thanks for all your comments.
https://www.ti.com/lit/an/snla344b/snla344b.pdf?ts=1692262148410&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FDP83826I
Show Less
I'm trying to do a FW upgrade on a STM32F427IGH6 chip, having an Infineon XMC4800-F144K2048 chip as the master and the STM chip as the slave. They're connected via I2C; I've confirmed that the lines are connected properly, as I'm able to send data from the STM to the XMC - it's when the STM becomes the slave (and goes into the ROM bootloader) where several things can occur when the FW upgrade fails:
1. NACK received by XMC from STM
2. ACK received by STM, FW upgrade process begins, but then fails mid-way as the I2C bus is "busy"
I've also attached a scope to look at the signals on the I2C bus; edges and timing look ok. What could be possible reasons for the STM chip (while it's in the ROM bootloader) seemingly locking up or failing to send an ACK during this FW upgrade process?
Show LessI'm not sure if it's possible to design a debugging probe for the microcontroller families I mentioned. My idea is to design the hardware myself and find the pre-existing firmware in Infineon's documentation, so I can have my own debugging probe. Is this feasible?
Show LessHi,
I debug the program with DAVE, click the simulation and it runs automatically, and the simulation is always stuck in one place, resulting in no access to my program, why?
Best Regards
Show LessHi:
I purchased a set of "EVAL_800W_PSU_4P_C7" and completed the product registration,
after importing additional code using DAVE,
I first changed the "oring" from Pin1(P0.1) to Pin28(P2.8) using manual pin assignor, it works,
then want to change "sync2" from Pin25 (P2.15) to Pin1 (P0.1),
but there are no other pins supporting PWM_CCU80 in the dropdown list of the manual pin assignor,
there is only the original Pin25 (P2.15) in the list,
what is the reason?
Best Regards
Show LessHello everyone,
in my initial code, I use UART_Receive and UART_Transmit function in the main function to transfer data. But it has to use delay to ensure no Bus competition.
I don't want this delay, so want to try interrupt. But I don't know how to trigger the interrupt.
In the attachment is my project.
Hope you can improve it.
Thanks.
int main(void)
{
DAVE_STATUS_t status;
status = DAVE_Init(); /* Initialization of DAVE APPs */
if (status != DAVE_STATUS_SUCCESS)
{
/* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
XMC_DEBUG("DAVE APPs initialization failed\n");
}
uint8_t send_data[] = {0x1F, 0x08, 0x01, 0x06, 0x41, 0x43, 0x54, 0x34, 0x33, 0x30, 0xAE, 0x04};
uint8_t read_data = 0x00;
uint8_t read_data2[] = {0x00, 0x00, 0x00, 0x00};
/* Placeholder for user application code. The while loop below can be replaced with user application code. */
while(1U)
{
UART_Receive(&UART_0, &read_data, 1);
delay_100us();
if((read_data==0x00)||(read_data==0x1F))
{
UART_Receive(&UART_0, &read_data, 1);
delay_100us();
if(read_data==0x03)
{
read_data = 0x00;
UART_Receive(&UART_0, read_data2, sizeof(read_data2));
delay_5ms();
if((read_data2[0]==0x02)&&(read_data2[1]==0x06)&&(read_data2[2]==0x0B)&&(read_data2[3]==0x04))
{
delay_100us();
UART_Transmit(&UART_0, send_data, sizeof(send_data));
read_data = 0x00;
}
}
}
}
}
Show Less