DDCMP sync?
Mattis Lind
mattislind at gmail.com
Tue Jan 26 13:35:18 CST 2021
Hello Paul,
>
> Mattis, thanks! That's an implementation along the lines I was thinking.
> If yours can get close to 1 Mb/s, chances are one could get all the way
> there with the Arduino Itsy Bitsy M4, that's a 120 MHz ARM chip (Cortex
> M4). It has USB built-in. I'll study your code; that approach of using a
> fast loop for consistent reliable timing matches what I was thinking.
>
> Actually the STM32F103 has built-in USB so there is no difference there,
really.
> DDCMP is a bit harder because it's normally full duplex.
I think the code should handle full-duplex, but I have not really tested
it. At least Tx and Rx is separate flows in the software.
> The framing is different but no harder, I think. And I was thinking of
> leaving the protocol state machine to the host, so the microcontroller
> would only do framing -- deliver completed good frames to the host without
> interpretation.
>
I made a very quick check on DDCMP. It looks a bit like BSC but using a
byte counter rather than various characters to end the frame. That would
probably simplify the software. It seems to use SYN SYN which is identical
to BSC so that part of the code that takes care of framing could probably
be used directly.
There are also the small STM32F411 Weact boards out there (
https://github.com/WeActTC/MiniF4-STM32F4x1). 100 MHz and the ART
accelerator. From other projects where I have used the STM32F103 have seen
that it executes slower than I expected since it was reading code from
flash. The ART accelerator should help here to achieve near zero wait state
so perhaps 1 Mbit/s would be possible?
I made the design of the board so that it should work with the Weact board
as well. But never got around testing it, mainly because the
stm32duino hasn't support for them. But converting to the more official
STM32 Arduino core would probably not be that hard.
If you have further questions feel free to ask. Would be nice to add DDCMP
support as well! Then perhaps I could try those M8203 / M8207 boards I have
sitting here.
/Mattis
>
> paul
>
>
>
More information about the cctech
mailing list