Jump to content
ELFORUM - Forumul electronistilor

PWM atmega8 , cod bascom , frecventa 30khz!


Cilibiu

Recommended Posts

Salut tuturor, am facut un montaj cu un atmega 8 si un tranzistor comandat in PWM de catre atmega8.

Insa am observat ca din helpul bascomului nu am reusit prea multe, frecventa maxima la care am ajuns a fost de 15,7khz, si as vrea sa ajung pe la 30khz sau si mai sus!

Codul bascomului este mai jos:

$regfile = "m8def.dat"$crystal = 8000000Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1Compare1a = 0end

Ce trebuie sa fac ca sa ridic frecventa si mai sus?

In help-ul bascomului nu am gasit nimic!

Link to comment
  • Replies 9
  • Created
  • Last Reply

Top Posters In This Topic

  • Cilibiu

    4

  • XAN77

    2

  • ole

    2

  • yo6pir

    1

Top Posters In This Topic

caută în datasheet, e cel mai relevant.cu fast pwm mode pe 8 biti, cu 8MHz clock, cred ca poti prinde semnal pwm de 8.000.000 / 256 = 31,250, deci 31KHz, pentru mai mult de atat va trebui sa maresti frecventa quartului.

Link to comment

Foloseste Timer1 setat pe modul Fast PWM cu TOP=ICR1. Astfel din ICR1 setezi frecventa (si implicit rezolutia PWM-ului) iar din OCR1A/B setezi factorul de umplere. ATENTIE! OCR1A/B este mai mic sau egal cu ICR1.

Link to comment
  • 3 weeks later...

Aici am pus un fisier de generator de frecventa intre ATENTIE! : o,12Hz-8MHz cu Atmega8 setat pentru fast-pwm cu cristal de 16MHz. Eu am folosit softul la un generator de joasa frecventa si am folosit si functia de frecventmetru dar numai pana la 8Mhz ca nu stie mai mult, dar e super-fain gandit. Incearca-l dar nu ma intreba de unde-l am ca nu mai stiu; de pe un site nemtesc...73!

frequency generator.zip

Link to comment
  • 1 year later...

Am analizat un pic codul scris in bascom, si sunt cam multe necunoscute pentru mine ( comenzi cu care nu am lucrat).

Am o rugaminte la tine, separa din codul bascom doar comanda pentru OC1A si OC1B FAST PWM.

Asta daca nu cer cam mult.

Iar o intrebare generala>>>> cat de instabil poate fi un uC fata de UC3843 folosit intr-un SMPS?

 

L.E. Am inceput sa ma joc cu , comenzile pentru fast pwm, si mia iesit asa.

 

Din codul de mai jos, daca modific valoarea lui "COMPARE1A =x" cresc sau scad FRECVENTA, duty cicle ramanand la 50%.

Cum pot face sa modific duti cicle?

De exemplu setez :

Compare1A=10 'undeva pe la 300khz

ce modific sa sa am duti cicle variabil?

 

$regfile = "m8def.dat".$crystal = 8000000Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1Tccr1a = &B0100_0011'                 ^^--WGM11 + WGM10 -> Fast PWM |TOP in OCR1A Mode 15'           ^---------COM1A0 -> Toggle OC1ATccr1b = &B0001_1001'                  ^--CS10 -> Clk no prescale'             ^-^-----WGM13 + WGM12 -> Fast PWM |TOP in OCR1A Mode 15'Ocr1bh = &B0111_1111'Ocr1bl = &B1111_1111                 'Register for duty-cycle (16-bit value 50%)Compare1a = 10End
Link to comment
  • 5 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines