XMC™ Forum Discussions
I want to be able to set the direction of the counter by software, but cannot find a way to do this. The counting direction bit TCST.CDIR is read only. There does not seem to be any bit anywhere to select the direction.
The direction can be controlled by an external event, but the inputs of the events are all other peripherals, there is no software input.
I feel sure there must be a way to control the direction by software.
Does anyone have any ideas? Show Less
Reviewing the linker file in the XMC4300, the 256kB flash has been divided up with the data section limited to half of the flash. Additionally there appears to be nothing assigned to 0x0C010000 to 0x0C01FFFF. Can the data section be increased to fill the unallocated space? Or the entire flash memory?
How can the memory usage be evaluated? The static memory analyzer doesn't appear to be up the built elf/map file.
Show LessHello all,
I finally got my rotary encoder running on the XMC4800 EtherCAT relax board.
When I output the CCU timer register, I see the value incrementing / decrementing by 4 for every click I do on the rotarey encoder.
Is this somewhat related to the x4 clock generation stated in POSIF block diagram in Reference manual ch. 25.1.2? If so, is there a way to make the attached CCU only count single increments instead of 4?
(I'd rather use a correct approach than right-shift the timer register value by 2 bits ...)
Best regards,
ErnieT
Show LessHello, for a project enhancement we are looking to move from XMC4502 to XMC4800 microcontroller.
After a first check it seems feasable but we would like to ask for a migration guide, if any.
Have some of you done the same? Comments, suggestions, problems?
Thank you in advance for your support
Fede
Show LessHi Team,
We are using XMC1300 Kit (24V, 300W, 120W motor) and working on Current Control. Where Motor is running continuously in Current control scheme. He is taking POT as Reference current and DC_Current as Feedback Current.
Initially when we increment POT to increase RPM it is running. But when we decrement POT to reduce speed of the running motor it is not reducing. It is running with same speed (Running in open loop speed-maximum). How can we control speed (Increase/Decrease) here in current control scheme.
Assigning maximum amplitude and updating as duty cycle.
Any suggestions would be very thankful.
Hello Team members , i am developing a Som board based on xm4800 with its ethercat functionality the reference Design phy is not available and now obsolete . kindly suggest a phy that has already working code example of Dave ide.
Thank you
Show LessHello,
I'm trying to use the buttons available on the board. Button1 I can use with the help of DAVE APPS no problem. But BUTTON2, referred as HIB1, i can't use. I can't assign him to a digital I/O. I've been trying to understand how to use it without DAVE APPS but with no success. I want to now when the butto is being pressed, basically the the same functionality as
DIGITAL_IO_GetInput (const DIGITAL_IO_t *const handler) |
I was trying to debug a code which was developed in older version of DAVE IDE and I don't know which DAVE IDE version was used, a lot of DAVE apps is used in the code . Now when I tried to debug this code in DAVE-IDE-4.4.2-64Bit version I am facing hardfault exception state. Should I use the same DAVE IDE version which was used to develop this code ? If yes how to find out in which version it will work fine . There is no compilation error. The Hardfault exception state occurs during DAVE App initialization. I am using cortex M0 , xmc1402 microcontroller.
Please don't send the below link
https://www.embedded.com/debugging-hard-faults-in-arm-cortex-m0-based-socs/
Because It does not solve my issue .
Show Less
Hi,
I am using XMC4400 to read two analog lines. A timer triggers ADC to read two channels (A,B) and the result events trigger DMA transfer. The DMA transfer for each channel has block size of 512. After few minutes of running the data stops flowing from channel A. I put a counter variable inside DMA_A enevnt handler and the error event count was 2700+(almost half the number of block transfer). The data keeps flowing from channel B though.
My question is: what could cause a DMA error: XMC_DMA_CH_EVENT_ERROR ?
Thanks,
Ali
Show LessIn my application a single line for reception and transmission is used for the UART. System voltage is 3.3V.
My UART App in DAVE is setup like this:
Operation Mode: Half Duplex
...
Transmit mode: Direct
Receive mode: Interrupt
Enable transmit FIFO to Size: 16
Disable receive FIFO
Enable data input inversion
Enable data output inversion
...
End of receive callback: BlaBla_Rec_IRQHandler
...
Enable advanced pin characteristics
Transmit Mode: Push Pull
The UART uses channel 1 of the USIC in the XMC 1100.
The system I'm developing acts as a slave listening on the UART line.
If a special two byte message is received by my system where the second byte is the ID
of my system it answers with a sequence of bytes which are written to the FIFO
using UART_TransmitWord(...). After that the system again activates reception of
the next request by the master using UART_Receive(...)
My idea of "Half Duplex" using the Transmit Mode "Push Pull" is that the UART
automatically strongly drives '0's and '1's it sends out on the line beginning with the start bit,
but tristates the output buffer after the stop bit is transmitted.
Unfortunately this seems not to be the case. My oscilloscope shows that the
request messages sent onto the line by the master come in with high levels barely
rising to 2.1V (although the master uses 3.3V signaling levels).
When starting my system in the debugger at the beginning the high level sent by
the master reaches 3.3V. But as soon as the instruction DAVE_Init(); has executed
the high level is restricted to 2.1 V.
I also tried the Transmit Mode "Open Collector" which of course does not work in my system, because
there is no pull-up resistor. Even with this setting the 3.3V-to-2.1V high level downshift is there
right after DAVE_Init();
Since the master drives the UART line using a 74x1G126 (single gate tristate buffer) over a 50 Ohms
series resistor I suppose that the XMC UART seems to load the line using not only a pull-up or
pull-down, but actively holds the line on low level (inverted signaling is used).
If I switch
Enable data output inversion
off, the behavior is mirrored. The low level is shifted up to about 1.2V and the inactive level
is high now (although held to low via 20k pull-down at the master device).
Any idea on how to switch off the line driver when the UART is not actually transmitting?
Best Regards,
Markus Show Less