Go Down

Topic: Chiarimento pin PWM ATtiny85 (Read 317 times) previous topic - next topic

Quanti pin PWM ha questo micro?
Sul datasheet dice 2, http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf
ma qui dice che sono 3... http://blog.protoneer.co.nz/wp-content/uploads/2013/05/attiny_44_84_Pinout.png
Boh, insomma quanti ne ha?
Arduino UNO starter kit.

PaoloP

2 normali e 2 invertiti (con duty-cycle identico a i 2 impostati ma segnale invertito).
Quindi se non ti servono applicazioni particolari fai conto che ne abbia solo 2. (PB1 e PB4)


2 normali e 2 invertiti (con duty-cycle identico a i 2 impostati ma segnale invertito).

Invertiti in che senso? Che quando do'  255 l'usita è allo stato basso?
Arduino UNO starter kit.

leo72

Per segnale invertito si intende che quando un pin è HIGH, l'altro è LOW.
Sono 2+2 se prendiamo in esame l'uscita A del timer 1. Ma con il core Tiny credo che la configurazione sia 3+1, ossia 3 indipendenti ed 1 dipendente dallo stato del 3° ma con segnale invertito.
I pin PWM indipendeti sono PB0, PB1 e PB3. Il 4° pin, PB4, può solo rappresentare lo stato invertito del pin PB3.

leo72

PS:
però non ho un oscillatore per cui non posso verificare cosa il core Tiny faccia effettivamente.
Se ovviamente si lavora a livello di timer, a questo punto le uscite sono come le imposti tu.

PaoloP

Si, sono 3+1, ma anche 2+2, perché puoi configurare PB0 come indipendente o invertito rispetto a PB1.  ;)

leo72

Per dovere di cronaca, ho controllato il codice: parlando del solo core Tiny (perché il discorso del 2+2 vale sempre, a patto di lavorare direttamente coi timer) ho controllato e la configurazione è 3+1:
Ecco un commento che si legge nel core:
Quote
/* Note: By default, CORE_OC1A_PIN is not used for PWM.  It overlaps with
CORE_OC0B_PIN.  CORE_OC0B_PIN was used because it supports phase-correct PWM.

Quindi l'unico pin invertito resta PB3, cioè /OC1B.

Go Up