This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Capture Qei position and send to usb

Hi
I want to draw graphs of position of 2-phased QEI versus time. so I want to capture QEI position every time period. time gap between to position pulses is at least 7.2 microseconds.
I think I have to choose one of these methods:

1-send position to USB during time overflow interrupt(TIM_INT)

2-send content of the timer when the situation changes. (I don't know if it is possible to sense the changes as an interrupt?)

I think there are some restrictions due to interrupt latancy. so what is the highest resolution for my system. and which method is better? How can I define interrupt for 2nd method?
can i send data to buffer and send batch buffer to USB? Is it help me Reduce interrupt latancy effects? HOW?
Please Help me
Best Regards

Parents
  • > LPC_QEI->FILTER =???(What should i put??

    The time constant of the passive input RC (LC) filter is determined by the PCLK frequency of QEI.
    It's much less than (1/8 - 1/16) of PCLK
    QEI FILTER register holds a minimum expected interval of encoder transition, counted in PCLK scale.

    > Is it correct set priority of USB to 0 and QEI to 1??

    QEI should have the highest priority (0), and USB is assigned to lower priority than QEI.

    > I have written below codes to send the data to usb using usbhost lite.

    FILE_Open, FILE_Write and FILE_Close are too slow to run in the QEI ISR.
    Also, it is efficient to write data of sector size at a time.

    In the QEI ISR, the timer value is written to a buffer of 1024 bytes.
    When the buffer holds 512 bytes (sector size) or more, one sector of data is written to the USB drive.

    Tsuneo

Reply
  • > LPC_QEI->FILTER =???(What should i put??

    The time constant of the passive input RC (LC) filter is determined by the PCLK frequency of QEI.
    It's much less than (1/8 - 1/16) of PCLK
    QEI FILTER register holds a minimum expected interval of encoder transition, counted in PCLK scale.

    > Is it correct set priority of USB to 0 and QEI to 1??

    QEI should have the highest priority (0), and USB is assigned to lower priority than QEI.

    > I have written below codes to send the data to usb using usbhost lite.

    FILE_Open, FILE_Write and FILE_Close are too slow to run in the QEI ISR.
    Also, it is efficient to write data of sector size at a time.

    In the QEI ISR, the timer value is written to a buffer of 1024 bytes.
    When the buffer holds 512 bytes (sector size) or more, one sector of data is written to the USB drive.

    Tsuneo

Children
  • >The time constant of the passive input RC (LC) filter is determined by the PCLK frequency of QEI.
    It's much less than (1/8 - 1/16) of PCLK

    So, if i want to filter pulses less than 2us, what should i write?(clk=100mhz)
    LPC_QEI->FILTER =0xc8; /*200*/
    Is it correct?

    >When the buffer holds 512 bytes (sector size) or more, one sector of data is written to the USB drive.

    Oh, I am a beginner!
    I don't know how to access to the buffer. How can i get access to this Buffer?
    what should i write instead of *UserBuffer=LPC_QEI->QEITIME; ??
    can you help me with the codes?
    thanks

  • >When the buffer holds 512 bytes (sector size) or more, one sector of data is written to the USB drive.

    Thanks Dr Tsuneo Chinzei

    But how can i detect that number of bytes written in QEITIME is 512?
    And how to Empty the buffer after writing data?

    An other Question: Is it correct to write LPC_QEI->FILTER =0xc8; /*200*/ to filter less than 2us when clock is 100mhz?

    Best Regards?

  • I still haven't got answered my previous questions!
    I don't know how to get access to the buffer that included timer(QEITIME) values?

    another question:
    what is the practical difference between set register & enable register(QEISET & QEIIES)? Can you give me an example please?

    Amir
    hejazi1365[at]gmail[dot]com
    Best regards