<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">On 05.11.2022 14:59, Mike Bryant wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CWLP265MB3682B7C0AB754294C77449ABDB3A9@CWLP265MB3682.GBRP265.PROD.OUTLOOK.COM">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof
ContentPasted0">
> Mind to share with us, which ones actually do?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof
ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof
ContentPasted0">
Sorry I wasn't being clear. I was doing it in software which
really needs the RBIT instruction to do it quickly.
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof
ContentPasted0">
But not all ARM MCUs have this instruction. <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof
ContentPasted0">
A single counter, output RBITed, then a line of compare
instructions driving GPIOs.<br>
</div>
</blockquote>
<p><br>
</p>
<p>Ah, ok. Technically almost all MCU can do this in software,
question is only how fast.</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CWLP265MB3682B7C0AB754294C77449ABDB3A9@CWLP265MB3682.GBRP265.PROD.OUTLOOK.COM">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof
ContentPasted0">
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof
ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
However for a hardware only approach, have a look at Cypress
PSoCs. You can use the UDMs or the pseudo-random mode of the
TCPWM blocks which isn't quite the same but similar result.</div>
</blockquote>
<br>
<p>I know that the ESP32 has a PDM, only as a mode in the I2S
peripheral. And a similar to PDM functioning SDM (Sigma Delta),
but its 8 bit. I haven't checked if this is done HW or SW. <br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CWLP265MB3682B7C0AB754294C77449ABDB3A9@CWLP265MB3682.GBRP265.PROD.OUTLOOK.COM">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
Or use a cheap FPGA on the side of a MCU<br>
</blockquote>
<p><br>
</p>
<p>I've done this using an FPGA, I think it was just with an
overflowing counter.</p>
<p><br>
</p>
<p>One caveat with PDM at higher frequencies is that you need fast
and symmetric rise and fall times on the digital drivers. A little
turn-on or turn-off delay (and any imbalance) distorts your
signal. <br>
</p>
<p><br>
</p>
<p>Cheers,</p>
<p> René<br>
</p>
<br>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-abbreviated" href="mailto:synth@schmitzbits.de">synth@schmitzbits.de</a>
<a class="moz-txt-link-freetext" href="http://schmitzbits.de">http://schmitzbits.de</a></pre>
</body>
</html>