No announcement yet.

Delay between receiving a command and data

  • Filter
  • Time
  • Show
Clear All
new posts

  • Delay between receiving a command and data


    I notice that the command and the data that is sent to your module needs a very short delay between receiving the command. I am running a RTOS which has time critical task thus my UART (RX/TX) FIFO is handle by an ISR. So I poke data into a TX ring buffer when ever the processor is idle enough, the ISR get triggered. This is because there are other task running that MUST COMPLETE within a given time so it is possible for data not to be sent right away.

    I am running into the problem where your module is expecting data right after the command is there anyway to have to have the module have a longer time out before it receives the data. That is let say I send the command 0xFFCB, then maybe 400ms later I sent the data. I notice this can't work because your module has already time out I am guessing and needs the command again.

    So is there anyway to change the time between command and data being sent?

    I am building a very time critical application

  • #2
    There is no timeout, what makes you think you are seeing one?


    • #3
      Hello Mark,

      The reason I believe there is a time out is because after I send a command. The module doesn't always receive the data. I believe majority of the problem exist when I send a MSB of the command the wait time to receive the LSB is too small.

      That is because I am using a ring buffer and then I have a ISR take care of the transmission. So sometime situation like this may happen
      1) Is the processor Idle enough ? Yes
      2) Trigger the transmission ISR
      3) Tranmission ISR send out one byte into the register and then hardware takes over
      4) Repeat for next byte if the processor is still in the ideal task

      That is repeated every time my RTOS hits the ideal task. Since I can only put 1 byte into my register at a time the MSB get sent but the LSB may not get sent right away.

      Is there anyway to change this? If not I could change my hardware FIFO to 16 bit but I am trying to avoid that since it requires a bit of redesign of my processor.


      • #4
        As I said, there is no timeout, you could wait weeks between sending each byte and the display would still be waiting for it.

        You need to put some sort of serial monitor on the TX and RX lines to try and figure out what part of your transmission is not being sent and/or received.