Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
12452 Discussions

Serial port timeout- 10 seconds, but getting less samples than expected/desired

Altera_Forum
Honored Contributor II
825 Views

Dear Sir/Madam, 

 

 

I have the following error while trying to access serial port data sent from Nios II UART: The specified amount of data was not returned within the Timeout period or A timeout occurred before the Terminator was reached. 

 

 

The above error occurs when I set the timeout to be smaller than 10 seconds, say 2 seconds, or 6 or 8 etc. 

 

 

set(s,'BaudRate',115200,'timeout',10); %timeout is in seconds. 

 

 

If I set the timeout to be as '10' or larger, I did not get the timeout error, however, with this timeout, the sample rate is 0.067Hz and the total number of samples I can obtain is only 493 in 120 minutes which is far too less. In similar system with timeout set to 2 seconds, we can get 46253 samples in 120 minutes with sample rate= 5Hz. (this worked previously when no Nios system is used, just FPGA) 

 

 

What I think: I am getting so less samples because the Matlab needs to wait longer now compared to previous system where no Nios is used. 

 

 

What I dont know and need your opinion: how to increase the number of samples to be received?  

how to increase the sample rate? 

 

 

What is in my system (in C Code) : In main, the main calls for function "uart_multiple", I have 12 sets of data to be sent to the serial port, each set of data has 10 elements ('n' represents 10 bytes, one element is ONE byte), so I transmit one set of data one by one.  

 

 

I suspect this could be the cause of low sample rate, but I am not sure.  

 

 

Do you think we can transmit all 12 sets at the same time to avoid this issue? 

 

 

If it is, what should I do to transmit all 12 sets at the same time? 

 

 

int main (){ 

uart_multiple (&txdata1, n); 

uart_multiple (&txdata2, n); 

uart_multiple (&txdata3, n); 

uart_multiple (&txdata4, n); 

uart_multiple (&txdata5, n); 

uart_multiple (&txdata6, n); 

uart_multiple (&txdata7, n); 

uart_multiple (&txdata8, n); 

uart_multiple (&txdata9, n); 

uart_multiple (&txdata10, n); 

uart_multiple (&txdata11, n); 

uart_multiple (&txdata12, n);} 

 

 

Thank you in advance
0 Kudos
0 Replies
Reply