DAVE™ Forum Discussions
Hello, I need to install DAVE IDE on a Windows 32-bit machine. From the release notes, the latest version is 64-bit only. Is it possible to download the previous version of the DAVE (version 4.4.2)?
Show LessI've followed the tutorial in the link below to export my configuration to MDK, but when opening the gpdsc file, it said "Cannot read project file 'Project_name.gpdsc'!" in MDK's prompt window.
https://www.keil.com/appnotes/files/apnt_258.pdf
What should I do next?
MDK version: V5.35.0.0
DAVE version: V4.5.0
Many thanks.
Show LessI've been using the elf tool extensively (pulled from here https://www.infineonforums.com/threads/4869-Save-4.3.2-Static-memory-analyzer-does-not-work-for-me?p=14553&viewfull=1#post14553 ) for static memory analysis.
We're using the XMC family for the elf analysis. I'm noticing that the elf tool does not account for stack usage in the graph visualization. Our codebase has an increased stack size and starts from PSRAM1 a few KB in (0x1FFE8000 + stack size)
Is it possible to update the elf tool to display the graphs with stack usage? And also, if an object falls between two memory regions, can we have a way to visually display that as well?
Thanks! Show Less
Hi all,
I built a project with Dave 4.4.2. Now I would like to upgrade to Dave 4.5.0.
What's the best way to do that?
I could rebuild the project with Dave 4.5.0 but with more than 40 components there is a lot of work.
Is there an automatic way to do this?
Are the components then also updated automatically or interactively?
Has anyone already done this and knows a safe workable method here?
Best regards,
Karl
Show LessHello, I have an xmc4700 relax kit, I want to rotate a pmsm motor using it. I downloaded the dave software and added the pmsm app, configured all the motor parameters and the driver parameters. The motor rotates in V/f mode with a high current and does not rotate in direct foc mode, kindly let me know how to debug and rectify the issue.
Show LessI am using DAVE CAPTURE_GetPeriodInNanoSec to measure the period of a signal. I am calling that function every 2 ms (500 Hz). When the signal frequency drops below about 250 Hz the status code from CAPTURE_GetPeriodInNanoSec is always CAPTURE_STATUS_NEW_VAL_NOT_CAPTURED. I believe this is because the CAPTURE_GetPeriodInNanoSec is looking for both a rising and falling edge between calls and at input signal frequencies below half of the capture calling frequency that will never happen.
I have modified CAPTURE_GetPeriodInNanoSec such that it only returns CAPTURE_STATUS_NEW_VAL_NOT_CAPTURED if neither a rising nor falling edge was captured. This seems to do what I want. Does anyone have any insight into this?
Another possible solution is to call CAPTURE_GetPeriodInNanoSec at a lower frequency, but that makes it harder to use the filter that I would like to when my signal goes into a higher frequency range.
PS: the reason I need to use the return code at all is to detect when the frequency of my signal suddenly drops to zero. In those cases I expect to get CAPTURE_STATUS_NEW_VAL_NOT_CAPTURED returned and I can use that to know that the frequency is now zero. Show Less
I have implemented a TCP connection between a XMC4800 and a server. The XMC is my client. I can see in Wireshark, that the Controller receives packages because an Ack-Flag is sent afterwards to the server. Sending TCP Packages works fine, but I need to save the response from the server in a buffer, in order to work with the data.
Unfortunately, I co not want to unable the poll opportunity because in my further project, I need to work with an ethercat bus. Does anybody have an idea, why my code doesn't work?
void recv_data()
{
tcp_recv(pcb_recv, client_recv); //ocb_recv is an empty pcb
}
err_t client_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
{
tcp_recved(pcb_recv, p->tot_len);
memcpy(recv_buffer, p->payload, p->tot_len);
pbuf_free(p);;
return ERR_OK;
}
/* @brief main() */
int main(void)
{
DAVE_STATUS_t status;
uint32_t timer_systimer_lwip, timer_systimer_counter;
uint8_t counter_old=0;
int buff_length = strlen(recv_buffer);
bool send = false;
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");
while(1U)
{
}
}
/* Initialize and start lwip system timer */
timer_systimer_lwip = SYSTIMER_CreateTimer(100000,
SYSTIMER_MODE_PERIODIC ,
tim_sys_check_timeouts_wrap,0);
SYSTIMER_StartTimer(timer_systimer_lwip);
/* Initialize and start client state counter timer */
timer_systimer_counter = SYSTIMER_CreateTimer (5000000,
SYSTIMER_MODE_PERIODIC ,
tim_counter_increment,0);
SYSTIMER_StartTimer(timer_systimer_counter);
while(1)
{
/* Check if client state counter was incremented */
if (counter!=counter_old)
{
/* Connection already/still active? */
if ((connection_ready==0)&&(pcb_valid==0))
{
client_init();
}
else
{
if(send==false)
{
send_data(data1);
send = true;
}
else
{
recv_data();
send = false;
}
}
counter_old=counter;
}
}
Thanks for your help 🙂
Maxi Show Less
Where I can download this ?
Somebody can help me ?
Thanks
Regards
Marco Show Less
then i couldn't select the same clock input for all channels:
and then I have to configure three different clock inputs, and they could not be the same.
Is there some way to use only one clock input with three data channels?
Thanks. Show Less