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

12 views (last 30 days)
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

Answers (1)

Michael Du
Michael Du on 18 Dec 2019
I have similar questions. Matlab seems to set an upper limit to the serial port timeout of ~20ms and the serial input size of 2kB. So there is an issue if one wants to use the serial port to transmit data larger than the specified size.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!