Open 1250364116 opened 2 months ago
The size of the data from the PIO is indicated as 0xffffffff-actual size (it counts down from 0xffffffff) and the data is limited to 31 bits. So, highest bit can be used to distinguish size (end of packet) from the data bits.
The only time PIO0 can push 0xffffffff is when the actual size is 0, and that only happens in the case of a line reset (D+=low, D-=low), which appears as a valid start of packet marker, but then does not have synchronization field.
But 0xffffffff is never pushed as an additional data, it is always pushed as a length part.
So for each data sample, g.buffer is filled only with 3 elements: size, time, data itself.
در تاریخ یکشنبه ۸ سپتامبر ۲۰۲۴، ۱۸:۵۳ Alex Taradov < @.***> نوشت:
The size of the data from the PIO is indicated as 0xffffffff-actual size (it counts down from 0xffffffff) and the data is limited to 31 bits. So, highest bit can be used to distinguish size (end of packet) from the data bits.
The only time PIO0 can push 0xffffffff is when the actual size is 0, and that only happens in the case of a line reset (D+=low, D-=low), which appears as a valid start of packet marker, but then does not have synchronization field.
But 0xffffffff is never pushed as an additional data, it is always pushed as a length part.
— Reply to this email directly, view it on GitHub https://github.com/ataradov/usb-sniffer-lite/issues/19#issuecomment-2336725079, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2VUWY7YRITJFSGWIIOND5LZVRTYLAVCNFSM6AAAAABN3AZVACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZWG4ZDKMBXHE . You are receiving this because you authored the thread.Message ID: @.***>
Correct. You get data + size from the PIO itself and the time is added in the loop after the last element is read from the PIO.
hello. As I see, the pio0 for each 32-bit sampled data fills the buffer by two values: the size of the sampled data and the sampled 32-bit data itself. then you add the end time of sampling that data as the third element. thus for each 32 data sampling, the buffer is filled by 3 elements in a row. but sometimes pio0 pushes out another element as a fourth value which is 0xFFFFFFFF. so, what is this value and what does it mean? is it a flag for the end of the frame?