Segnale onda quadra 670KHz

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

Segnale onda quadra 670KHz

Postby tnnbascom » 27 Mar 2013, 15:10

Salve,

Con un Atmega8 con quarzo 4Mhz, posso avere un pwm, o un segnale a onda quadra con frequenza di 670KHz?

Grazie
tnnbascom
 
Posts: 87
Joined: 27 Mar 2013, 15:06

Re: Segnale onda quadra 670KHz

Postby ulisse21 » 27 Mar 2013, 15:47

ciao
di che precisione ti accontenti???????
cioè, vuoi ottenere una freq "precisa" con che errore max??????

un consiglio :), almeno 2 parole x la presentazione, poi decidi tu.
ciao
ulisse21
 
Posts: 49
Joined: 10 Nov 2012, 14:36

Re: Segnale onda quadra 670KHz

Postby tnnbascom » 27 Mar 2013, 16:11

Mi scuso,

ma sono troppo preso da risolvere questo problema...

comunque complimenti per il forum, utilizzo da tempo quello in inglese, ma questo in lingua italiana è il top!

Per il discorso della frequenza +-3% di tolleranza... grazie
tnnbascom
 
Posts: 87
Joined: 27 Mar 2013, 15:06

Re: Segnale onda quadra 670KHz

Postby deluca » 27 Mar 2013, 22:12

@tnnbascom,
benvenuto ... e grazie per i complimenti, magari vediamo prima se riusciamo a risolvere .....
infatti, come ben sai, utilizzando il quarzo da 4mhz e configurando in modo appropriato i timer non potrai generare un pwm con freq di 670khz esatti.


670_KHz.jpg
670_KHz.jpg (49.02 KiB) Viewed 6202 times


questi sono i valori calcolati da assegnare al timer1 (come timer)

Tuttavia, nel caso in cui lo vuoi configurare come PWM devi considerare altri fattori,
poichè per raggiungere la freq da te indicata devi lavorare direttamente sui registri del timer1.
Il semplice "Config Timer" non ti permette di configurare il FastPwm mode.

- AVR microcontroller model
- Waveform generation mode select
- Clock select bit select
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Segnale onda quadra 670KHz

Postby tnnbascom » 28 Mar 2013, 16:21

Va bene con Timer1, basta che su un pin qualsiasi ho un onda quadra con freq. 670KHz circa...

Potresti gentilmente farmi un esempio del codice da usare... grazie.
tnnbascom
 
Posts: 87
Joined: 27 Mar 2013, 15:06

Re: Segnale onda quadra 670KHz

Postby deluca » 28 Mar 2013, 22:16

http://www.atmel.com/Images/Atmel-2486- ... asheet.pdf

da pag.96 a pag.101 del PDF c'è tutto quello che ti serve per settare i registri del Timer1 nella modalità Fast-pwm.

purtroppo non puoi configurare il Fast-pwm usando gli statament e i config di Bascom, come ti dicevo prima, devi configurare manualmente i registri del Timer1 per ottenere la freq da te richiesta.
inizia a scrivere uno stralcio di "source"......, appena un pò disimpegnato mettiamo le mani sul codice.

ciao
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Segnale onda quadra 670KHz

Postby tnnbascom » 04 Jun 2013, 08:16

Mi scuso per il ritardo, ho risolto in questo modo... (667Khz circa)... grazie a tutti.

Code: Select all
$regfile = "m8def.dat"
$crystal = 4000000
Config Portb.1 = Output                                     'PWM_PIN
Const Cpwmfreq = 5

   Tccr1a = &B10000010
                     'Bit 7:6 – COM1A1:0: Compare Output Mode for channel A set to 10
                     '        = Clear OC1A on Compare Match, set OC1A at TOP
                     'Bit 5:4 – COM1B1:0: Compare Output Mode for channel B set to 00
                     '        = Normal port operation, OC1B disconnected.
                     'Bit 3 – FOC1A: Force Output Compare for channel A set to 0 - not used in PWM
                     'Bit 2 – FOC1B: Force Output Compare for channel B set to 0 - not used in PWM
                     'Bit 1:0 – WGM11:0: Waveform Generation Mode set to ..10
                     '        = lower bits of Mode 14: fast PWM; TOP = ICR1

Tccr1b = &B00011001
                     'Bit 7 – ICNC1: Input Capture Noise Canceler set to 0 - not used in PWM
                     'Bit 6 – ICES1: Input Capture Edge Select set to 0 - not used in PWM
                     'Bit 5 – Reserved Bit set to 0
                     'Bit 4:3 – WGM13:2: Waveform Generation Mode set to 11..
                     '        = higher bits of Mode 14: fast PWM; TOP = ICR1
                     'Bit 2:0 – CS12:0: Clock Select set to
                     '        = higher bits of Mode 14: fast PWM; TOP = ICR1
                     'Bit 2:0 – CS12:0: Clock Select set to 010 = clkI/O / 8 (From prescaler)

Icr1 = Cpwmfreq

I = Cpwmfreq / 2                                            '50%

Pwm1a = I
....
tnnbascom
 
Posts: 87
Joined: 27 Mar 2013, 15:06


Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 2 guests