d-ronin / openlager

STM32F4 based logging dongle for HIGH RATE logging
96 stars 25 forks source link

SDIO receive / transmit should use DMA #30

Closed mlyle closed 8 years ago

mlyle commented 8 years ago

Along with trying to be aligned / zerocopy in all cases...

mlyle commented 8 years ago

This is probably the limiting factor preventing higher USART rates right now. Very very easy to underrun the FIFO. (get 'WFLAG' morse after a few seconds sustained at 576000 bps)

mlyle commented 8 years ago

Adding retries (#31) gets around the 'WFLAG' for now, but that's hardly good for performance...

mlyle commented 8 years ago

1.5megabaud pegged loses nothing currently. 2megabaud pegged loses occasional bits when fully pegged-- e.g. first loss is 200 bytes 1331000-ish bytes into a session.

Gyros+accels+attitude+stabilizationdesired+actuatordesired uavtalk:

12+16+28+24+17=97
97 + 11*5=152

results in 152000 characters per second at 1000Hz, or precisely 76% utilization on a 2mbaud channel. This should be absolutely no problem for loss with the current scenario. And there's still multiblock writes and a few K of buffering available to make this work better.