Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12600 Discussions

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

Altera_Forum
Honored Contributor II
1,254 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