Programmable PWM source

Apr 11, 2022 22 Replies

Witam,



Czy ktoś może podpowiedzieć nazwę/symbol układu programowalnego generatora PWM ?



Istotne aby miał :


- programowanie/ sterowanie przez I2C



- fout 200 - 500 kHz



- wypełnienie 10 - 90%



- dowolną liczbę kanałów w zakresie 2 - 64



Pozdrawiam



Adam Górski


a) zrobic sobie na FPGA/CPLD,

b) PCA9685?

formatting link
J.

Lattice MachXO2/XO3.

Pozdrawiam, Piotr

To zawsze mogę. Szukam czegoś mniejszego.

Tego znalazłem. Na pierwszy rzut oka do 1.5kHz f wyjściowego.

Niestety.

Pozdrawiam

Adam Górski

Jest trochę lepiej. Można go popędzić zegarem 50MHz z zewnętrznego źródła, ale przy 12-bitowym podzielniku Fpwm wychodzi trochę ponad

12kHz, więc dalej mniej niż potrzebujesz.

Jacek.

poniedziałek, 11 kwietnia 2022 o 16:17:32 UTC+2 Adam Górski napisał(a):

Ale z jakim krokiem potrzebujesz te wypełnienia między 10% a 90%? Bo ATmega czy nawet ATtiny z zegarem 20MHz zrobi 200kHz z regulacją kroku po 1%. Na 500kHz po 2,5%.

W dniu 12.04.2022 o 22:25, Dawid Rutkowski pisze:

9-12 bitów byłoby super. 8 też od biedy.

Problem jest taki że chcę uniknąć programowania tegoż diwajsu na etapie produkcji.

Idealnie byłoby : sot-23-6 lub 8. I2C , vcc , gnd , out + ewentualnie fin oraz sync.

Niestety chyba nie istnieje.

Pozdrawiam

Adam Górski

środa, 13 kwietnia 2022 o 12:31:04 UTC+2 Adam Górski napisał(a):

Hmm, no bo ostre masz wymagania - 500kHz z 12-bitową regulacją oznacza bazę 2GHz. Hmm, niby AD9850 może generować sinusa do 125MHz 10-bitowym DACem, co dawałoby 128GHz, ale chyba jednak ten DAC napędzany jest z tego samego zegara i przy najwyższych częstotliwościach przestaje być aż tak 10-bitowo dokładny.

A po co aż tak wysoka częstotliwość PWM? Kondesator się nie mieści?

200kHz , 8 bitów jak masz - też będzie ok.

Taka potrzebna. W tej aplikacji nie ma LPF. Nie ma zatem i kondensatora. Mam scalak który parametry przyjmuje jako sygnał PWM a informacją jest wypełnienie. Minimalna f wejściowa sygnału PWM jest 200kHz.

Normalnie zrobiłbym to na pierwszym z brzegu STM32 i jego timerze. Tylko że takich scalaków ma być pierdylion zastosowanych.

Jak nie znajdę, to wezmę cpld/fpga.

Pozdrawiam

Adam Górski

10 bit przy fout 200 kHz to 200MHz wewnetrznej rozdzielczosci. 12 bit dla fout 500kHz to 2GHz.

Niby uklad z wewnetrznym generatorem 2GHz to juz nic nadzwyczajnego ...

J.

Wow, a coz to za scalak? Wewnetrznie analogowy, czy cyfrowy?

J.

czwartek, 14 kwietnia 2022 o 14:01:09 UTC+2 Adam Górski napisał(a):

Jak ma być kilka w jednym urządzeniu to pewnie będzie to najlepsze rozwiązanie, bo jeszcze nadziałbyś się na problem adresów I2C. A są cpld/fpga pędzone z 2GHz? Choć z drugiej strony styknie i 50MHz.

Niekoniecznie, cyfrowa linia opóźniająca może znacznie podnieść rozdzielczość bez zmiany bazy. Ale to znowu małe FPGA za kilkanaście złotych, a Adam szuka "czegoś prostszego".

Pozdrawiam, Piotr

Ale tak się szybkich i wysokorozdzielczych PWM nie robi. :-)))

Pozdrawiam, Piotr

Na RP2040 fajnie chodzi PWM. Może się da przenieść cały projekt na ten procesor?

Adam Górski wrote on 13.04.2022 12:31:

Niech główny µC to programuje na starcie.

PIC10, 12, 16 z HRPWM, 500kHz i 17-bitów, najmniejsze w SOT-23:

formatting link
STM32 z HRTIM, zegarem 4GHz, 10 kanałów:
formatting link

Cyfrowy na 99%. Niestety nie mogę podać symbolu. NDA.

Pozdrawiam

Adam Górski

Do problemów z adresami mam PCA9544.

Adam Górski

Linie opóźniające albo pll. Na Alterach/Intelu Cyclone III spokojnie zrobiłem 100kHz 16bit PWM bez żadnego problemu choć Cyclone III nawet nie zbliża się nawet do 6.5 GHz.

Prostszego również , ale bardziej mi zależy na nie programowaniu w czasie produkcji.

Pozdrawiam

Adam Górski

Może to i jest jakaś myśl ....

Tylko czy protokół do programowania jest dostępny ?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required