Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Packaging:
https://ww1.microchip.com/downloads/ https://ww1.microchip.com/download
Data sheet en/DeviceDoc/ATmega48A-PA-88A- s/en/DeviceDoc/Atmel-2586-AVR-8-
completo: PA-168A-PA-328-P-DS- bit-Microcontroller-ATtiny25-
DS40002061B.pdf ATtiny45-ATtiny85_Datasheet.pdf
Arduino Nano (official): Digistump Digispark (contributore):
Arduino
https://www.arduino.cc/en/Main/Ardui https://digistump.com/wiki/digispark
project noBoardNano
https://content.arduino.cc/assets/Nano https://s3.amazonaws.com/digispark/
V3.3_sch.pdf DigisparkSchematicFinal.pdf
Schemi
elettrici
board
1
ATMEGA 328P vs ATTINY85
CPU AVR
2
Porte I/O
3
Funzioni I/O Alternative – ATTINY85
Pin Funzioni alternative 1/3
PB5 /RESET/dW/ADC0/PCINT5
• /RESET: E’ la funzione di default, attiva a livello basso ma con resistenza di
pullup disabilitata (necessario quindi collegarne una esterna per evitare possibili
reset causati da “rumore”. Programmando a “1” il Fuse RSTDISBL, tale porta
può essere usata come di seguito indicato.
• dW: Programmando a “1”il Fuse DWEN e lasciando non programmati I bit di
lock, si abilità la funzionalità di “debugWIRE” gestita da apposito dispositivo di
controllo/debug.
• ADC0: Analog to Digital Converter, Channel 0. – vedi ADMUX
• PCINT5: Pin Change Interrupt source 5. – vedi PCMSK
PB4 XTAL2/CLKO/ADC2/OC1B/PCINT4
• XTAL2: Chip Clock Oscillator pin 2. Usato, insieme a PB3, come sorgente
clock, nel caso si sia impostata la modalità di clock esterno;
• CLKO: Programmando il Fuse CKOUT è possibile definire tale pin come
clock di uscita.
• ADC2: Analog to Digital Converter, Channel 2. – vedi ADMUX
• OC1B: Output Compare Match output – vedi PWM
• PCINT4: Pin Change Interrupt source 4.- vedi PCMSK
Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [7]
4
Funzioni I/O Alternative – ATTINY85
Pin Funzioni alternative 3/3
PB1 MISO/AIN1/OC0B/OC1A/DO/PCINT1
• MISO: Master Data input, Slave Data output pin for SPI channel.
• AIN1: Analog Comparator Negative Input.
• OC0B: Output Compare Match output.
• OC1A: Output Compare Match output:
• DO: Three-wire mode Universal Serial Interface Data output.
• PCINT1: Pin Change Interrupt source 1.
PB0 MOSI/AIN0/OC0A/OC1A/DI/SDA/AREF/PCINT0
• MOSI: SPI Master Data output, Slave Data input for SPI channel.
• AIN0: Analog Comparator Positive Input.
• OC0A: Output Compare Match output.
• OC1A: Inverted Output Compare Match output:
• SDA: Two-wire mode Serial Interface Data.
• AREF: External Analog Reference for ADC.
• DI: Data Input in USI Three-wire mode.
• PCINT0: Pin Change Interrupt source 0.
5
Organizzazione della memoria
Memoria di programma (Flash)
ATMEGA 328P ATTINY85
6
Organizzazione della memoria
Memoria dati (EEPROM)
Di tipo “permanente”, è accessibile, per singolo byte, trmite registri dedicati:
EEAR, EEDR e EECR. Vita massima: 100.000 cicli di scrittura.
Accesso in lettura
sbic EECR, EEPE ; Wait for completion of previous write
rjmp $-1
out EEARH, r18 ; Set up address (r18:r17) in address register
out EEARL, r17
sbi EECR, EERE ; Start eeprom read by writing EERE
in r16, EEDR ; Read data from data register
ret
Accesso in Scrittura
sbic EECR,EEPE ; Wait for completion of previous write
rjmp $-1
ldi r16, (0<<EEPM1)|(0<<EEPM0) ; Set Programming mode
out EECR, r16
out EEARH, r18 ; Set up address (r18:r17) in address register
out EEARL, r17
out EEDR, r19 ; Write data (r19) to data register
sbi EECR, EEMPE ; Write logical one to EEMPE
sbi EECR, EEPE ; Start eeprom write by setting EEPE
ret
Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [13]
INTERRUPT
Tutti gli interrupt sono a Vettore diretto, memorizzato in una tabella dedicata.
Priorità determinata dalla posizione nella tabella: valori bassi alta priorità.
Commutazione di contesto minima (solo PC)
ATMEGA 328 ISR TABLE ATTINY85 ISR TABLE
.org 0x0000 ; .org 0x0000 ;
jmp RESET ; Reset Handler
jmp EXT_INT0 ; IRQ0 Handler rjmp RESET ;
jmp EXT_INT1 ; IRQ1 Handler
jmp PCINT0 ; PCINT0 Handler
rjmp INT0_ISR ;
jmp PCINT1 ; PCINT1 Handler rjmp PCINT0_ISR ;
jmp PCINT2 ; PCINT2 Handler
jmp WDT ; Watchdog Timer Handler
rjmp TIM1_COMPA_ISR ;
jmp TIM2_COMPA ; Timer2 Compare A Handler rjmp TIM1_OVF_ISR ;
jmp TIM2_COMPB ; Timer2 Compare B Handler
jmp TIM2_OVF ; Timer2 Overflow Handler rjmp TIM0_OVF_ISR ;
jmp TIM1_CAPT ; Timer1 Capture Handler rjmp EE_RDY_ISR ;
jmp TIM1_COMPA ; Timer1 Compare A Handler
jmp TIM1_COMPB ; Timer1 Compare B Handler
jmp TIM1_OVF ; Timer1 Overflow Handler rjmp ANA_COMP_ISR ;
jmp TIM0_COMPA ; Timer0 Compare A Handler
jmp TIM0_COMPB ; Timer0 Compare B Handler rjmp ADC_ISR ;
jmp TIM0_OVF ; Timer0 Overflow Handler rjmp TIM1_COMPB_ISR ;
jmp SPI_STC ; SPI Transfer Complete Handler
jmp USART_RXC ; USART, RX Complete Handler rjmp TIM0_COMPA_ISR ;
jmp USART_UDRE ; USART, UDR Empty Handler rjmp TIM0_COMPB_ISR ;
jmp USART_TXC ; USART, TX Complete Handler
jmp ADC ; ADC Conversion Complete Handler rjmp WDT_ISR ;
jmp EE_RDY ; EEPROM Ready Handler rjmp USI_START_ISR ;
jmp ANA_COMP ; Analog Comparator Handler
jmp TWI ; 2-wire Serial Interface Handler rjmp USI_OVF_ISR ;
jmp SPM_RDY ; Store Program Memory Ready Handler
7
PROGRAMMING MODEL
32 Registri generali a 8 bit
8
STACK POINTER
9
Registri I/O – EEPROM … cont.
10
Registri Controllo e Reset (Tiny85)
Istruzioni Aritmetiche
(Diadiche)
Mod 0 1
Mnem. Opcode Normale Con Carry
ADD 000_11 000011 000111
SUB 000_10 000110 000010
11
Istruzioni Logiche
(Diadiche)
Mod 00 01 10 11
Mnem Opcod AND OR EOR MOV
LOGC 0010__ 001000 001001 001010 001011
12
Istruzioni Aritmetico-logiche
(Monoadiche)
13
Istruzioni di Salto corto condizionato
14
Istruzioni di trasferimento dati
15
Istruzioni di bit set-reset…
16
Tipi di dati e come riferirsi ad essi
Tipi di dati
• Valori interi da 8 o 16 bit, positivi o negativi (in complemento a 2) ALU
• Valori binari interi o frazionali, da 8 bit positivi o negativi con risultato a
16 bit per le operazioni di moltiplicazione (solo AT-MEGA)
• Valori decimali interi positivi, secondo la codifica packed BCD (due
cifre decimali per byte) per le somme e sottrazioni, gestendo da
software il riporto sul nibble basso (= Half Carry)
17