logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega i PWM szybsze niż 62,5kHz.

ddokupil 01 Lip 2009 00:03 2124 16
REKLAMA
  • #1 6724414
    ddokupil
    Poziom 15  
    Czy istnieje możliwość wyciągnięcia ze zwykłego AVRa taktowanego 16MHz PWM o częstotliwości wyższej niż 62,5kHz? były kiedyś Attiny15 które miały nawet 100kHz przy rozdzielczości wypełnienia 255 ale teraz je dostać nie jest tak łatwo bo już są wycofane a poza tym potrzebuję ich więcej do projektu który będzie klepany w kilku sztukach co jakiś czas przez kilka następnych lat.
    Może ktoś zna jakiś układ który by dawał PWM o częstotliwości wyższej niż te 62,5kHz i wypełnienie sygnału miał do 0÷90%? Najchętniej programowalny.

    Generalnie proszę o jakikolwiek pomysł wygenerowania przebiegu PWM w okolicach 100kHz
  • REKLAMA
  • #2 6724541
    pubus
    Poziom 30  
    ATtiny26 wyciąga do 500kHz... wewnętrzne PLL 64MHz...
    Do zrobienia na m8, m16 itd...
    Ustawiasz 16-bitowy timer w tryb Fast PWM gdzie rejestr ICRx odpowiada za wartość TOP...
    Zmniejsza się rozdzielczość ale częstotliwość za to wzrasta...
    Wszystko zależy od tego jaką rozdzielczość potrzebujesz...
  • REKLAMA
  • #3 6724824
    ddokupil
    Poziom 15  
    O, to ciekawe rozwiązanie. Problem jedynie w tym, że to musiałby być drugi avr w układzie bo ledwo się z programem w atmedze32 mieszczę więc temat nadal pozostawiam otwarty.
  • #4 6725215
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #5 6725302
    tzok
    Moderator Samochody
    W trybie FastPWM osiągniesz to bez problemu, ale nie osiągniesz wypełnienia 0% - je będziesz musiał zrealizować poprzez odłączenie układu PWM od pinu.
  • REKLAMA
  • #6 6725586
    ddokupil
    Poziom 15  
    atom1477 napisał:
    Program na pewno można zkompresować.
    Konfiguracja Timera to max kilkasaście B pamięci programu.


    Nie chodzi o wielkość procedury obsługi licznika bo to faktycznie kilka bajtów tylko o to, że nie mogę zamienić m32 na t26 bo tak nie skompresuję programu. Zwłaszcza, że piszę go na FreeRTOS.

    A przy wypełnieniu 0% wiem, że jest "pik" i trzeba odłączyć wyprowadzenie.
  • #7 6727115
    pubus
    Poziom 30  
    Na m32 też to zrobisz tak jak to napisałem wyżej...
    ATtiny26 to był tylko taki ekstremalny przykład... :]
  • #8 6727469
    ddokupil
    Poziom 15  
    No tak, zrobię tylko bym musiał się pogodzieć z jakimiś 150 bitami rozdzielczości... Można spróbować. nic mnie to w sumie nie kosztuje...
  • #9 6727689
    Konto nie istnieje
    Poziom 1  
  • #10 6727863
    ddokupil
    Poziom 15  
    Zależy do czego. Ja chcę żeby to sterowało prądem od 100mA do 10A i zależy mi na rozdzielczości 100mA (przynajmniej w dolnych granicach).
  • #11 6727969
    Konto nie istnieje
    Poziom 1  
  • #12 6729598
    ddokupil
    Poziom 15  
    To ja może dokładnie napiszę o co chodzi. Mam teraz projekt ładowarki na przetwornicy Buck. Nie są to rurki z kremem bo ona ma mieć wydajność do 10A przy tam 20 kilku woltach na wyjściu. Dobrać do tego rdzeń do cewki nie było łatwo ale jest i działa - jakoś. Wahania napięcia na wyjściu są zbyt duże żeby tym ładować ogniwa Li-Pol. Wyższa częstotliwość ogólnie by polepszyła chyba wszystkie parametry. No i właśnie PWM ma sterować bezpośrednio kluczem. Jak rozdzielczość z Atmegi32 nie da rady to po prostu podłączę przez jakieś I2C Attiny26 i pozamiatane.
  • #13 6730201
    Nawigator
    Poziom 33  
    Weź ATtiny25 który ma FastPWM 64MHz i się do sterownika PWM idealnie nadaje, nawet kwarca nie potrzebujesz podłączać, ma też ADC które też można dodatkowo wykorzystać.
    Ma też opcję emulacji ATtiny15 jeżeli tak za nia tęsknisz...
    A w ogóle widzę ze mógłbyś przeglądnąć kilka not aplikacyjnych Atmela na te tematy. O ładowarkach też coś było, jest też nowy procesorek z funkcją zliczania ładunku, poszukaj na stronie Atmela.

    N.
  • #14 6730720
    shg
    Poziom 35  
    tzok napisał:
    W trybie FastPWM osiągniesz to bez problemu, ale nie osiągniesz wypełnienia 0% - je będziesz musiał zrealizować poprzez odłączenie układu PWM od pinu.

    E tam, od razu się nie da, jak się chce to się da.
    Trzeba pracować na odwrotnej polaryzacji (COM1x1=1 i COM1x0 =1), a do OCR1x ładować wartość TOP pomniejszoną o czas trwania cyklu. Nie osiągnie się wtedy 100%, ale jak mniemam, to w niczym nie przeszkadza.
  • #15 6730777
    ddokupil
    Poziom 15  
    shg napisał:
    tzok napisał:
    W trybie FastPWM osiągniesz to bez problemu, ale nie osiągniesz wypełnienia 0% - je będziesz musiał zrealizować poprzez odłączenie układu PWM od pinu.

    E tam, od razu się nie da, jak się chce to się da.
    Trzeba pracować na odwrotnej polaryzacji (COM1x1=1 i COM1x0 =1), a do OCR1x ładować wartość TOP pomniejszoną o czas trwania cyklu. Nie osiągnie się wtedy 100%, ale jak mniemam, to w niczym nie przeszkadza.


    No to zdecydowanie łatwiej po prostu wyłączyć licznik kiedy na pinie jest stan niski.
  • #16 6730829
    Konto nie istnieje
    Poziom 1  
REKLAMA