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.