Deutsch English Français Italiano |
<vg2b15$an5m$1@solani.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Jan Panteltje <alien@comet.invalid> Newsgroups: sci.electronics.design Subject: Re: irrational Spicing Date: Fri, 01 Nov 2024 10:37:24 GMT Message-ID: <vg2b15$an5m$1@solani.org> References: <s235ijtgigajtlkef252jj38k0s0elvusj@4ax.com> <mu75ijtakpr25p7iu23a8lln3vc14r25iq@4ax.com> <6722af50$4$212409$882e4bbb@reader.netnews.com> <rdg5ijl8fkfqe3u3kjffoa90rupsgdot48@4ax.com> <tn1dvk-f20h.ln1@coop.radagast.org> <11p7ij12mv37pnq1du8fki8n4fn8ibqrm1@4ax.com> <vg20nf$35bfs$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; ISO-8859-15 Content-Transfer-Encoding: 8bit Injection-Date: Fri, 1 Nov 2024 10:37:25 -0000 (UTC) Injection-Info: solani.org; logging-data="351414"; mail-complaints-to="abuse@news.solani.org" User-Agent: NewsFleX-1.5.7.5 (Linux-5.15.32-v7l+) Cancel-Lock: sha1:VcgBCecz5myHe/pLLfTcy8eYNIM= X-User-ID: eJwNysEBwCAIA8CVREnQcdDA/iO09z4sGl84QUejhc7sB1qKiaK2Yo1o7ZFZYdVVjNIUfMDJ/Rc7ee9c75wPh7wWZQ== X-Newsreader-location: NewsFleX-1.5.7.5 (c) 'LIGHTSPEED' off line news reader for the Linux platform NewsFleX homepage: http://www.panteltje.nl/panteltje/newsflex/ and ftp download ftp://sunsite.unc.edu/pub/linux/system/news/readers/ Bytes: 4767 Lines: 65 On a sunny day (Fri, 1 Nov 2024 08:41:35 +0100) it happened Klaus Vestergaard Kragelund <klauskvik@hotmail.com> wrote in <vg20nf$35bfs$1@dont-email.me>: >On 31-10-2024 21:50, john larkin wrote: >> On Thu, 31 Oct 2024 12:17:49 -0700, dplatt@coop.radagast.org (Dave >> Platt) wrote: >> >>> In article <rdg5ijl8fkfqe3u3kjffoa90rupsgdot48@4ax.com>, >>> john larkin <jl@glen--canyon.com> wrote: >>> >>>> The Pi Pico CPU, the RP2040, has integer math hardware but the floats >>>> are "hardware assisted" subroutines in the rom bios. Single >>>> add/sub/mul floats take around 600 ns, roughly 100 instructions, which >>>> is kinda slow for my application, four power supply control loops. >>> >>> Roger that. I've recently finished porting a simple software "modem" >>> (ham-radio packet TNC) over from an STM32F411-based prototype, to a >>> Pico. The STM part has hardware single-precision floating point, and >>> each signal pipeline (a bunch of biquad filters) was taking about 5% >>> of the CPU. On the Pico, using the generic libc software floating- >>> point libraries (which are pretty poor for the M0 core) each pipeline >>> was taking about 35% of the CPU, and since I wanted three of them running >>> in parallel, it was a no-good situation. I haven't yet figured out how >>> to get the Zephyr library system to link into the "hardware assisted" >>> floating-point emulation in the ROM, and I'm not sure even that would >>> be fast enough for my needs. >>> >>> I switched over to a simple 1.15.16 fixed-point implementation of the >>> biquad filters. The performance was about 3x better, even though the >>> M0 doesn't have a 32x32->64 integer multiplier in hardware (the library >>> emulates one using four 16x16->32 multiplies). >> >> >> I'm planning to use the same math format, only I call it S16.16. That >> covers +-32 kilovolts with 15 uV resolution, which should be fine. >> >> The RP2040 manual says it will do a 32x32 mul in one clock, 7 ns. If >> that's not true, we can do hacks, like what you suggest, or round >> parameters up or down enough to use shifts instead of multiplies. >> >> I'll have four power supplies to service. We'll need to read an >> 8-channel SPI ADC to slurp the voltages and currents, do the voltage >> regulation and current limit loops, and generate four PWMs into the >> DRV8962 quad switcher thing. >> >> The power supply loop bw will be under 1 KHz, so we should have plenty >> of horsepower to do the math. It's a dual core ARM, so we will >> dedicate one core to just those four control loops. > >You would need to sample at least 40 times faster than the crossover, to >get phase erosion of less than 10 degrees. So in your case 40kHz. > >Using fixed point math, this should be doable on a small >microcontroller, not needing a Pico to do that, but I guess, in your >application cost is not an issue. > >Of course the advantage of the RP2040 is plenty of RAM The Microchip 18F14K22 I use for a lot of things has 4 12 bit ADC inputs, and a PWM generator goes for maybe 2 dollars in quantity, and has a hardware comparator that can directly stop the PWM for cycle by cycle current limiting. So 4 of those is all you need, with ADC capacity to spare,. Bit of asm, 64 MHz PLL internal clock.. More than enough for controlling a power supply... can drive voltage and current displays at the same time too.