460 likes | 620 Views
SEM tanfolyam 4. előadás. ATMEL AVR mikrokontroller család hardver-felépítése. Mi az mikrokontroller?. Programozható eszköz, melyet program által vezérelhetünk. Mitől több egy uC egy CPU-tól?. memória: flash és eprom interrupt kezelő I/O portok
E N D
SEM tanfolyam4. előadás ATMEL AVR mikrokontroller család hardver-felépítése
Mi az mikrokontroller? Programozható eszköz, melyet program által vezérelhetünk.
Mitől több egy uC egy CPU-tól? • memória: flash és eprom • interrupt kezelő • I/O portok • kommunikációs interfészek: I2C, SPI, UART, USB, CAN… • perifériák: időzítő, számláló, PWM, watchdog • órajel generátor • ADC, DAC • program/debug support
Mikrokontroller gyártók • ARM (32bit) • Atmel: AVR(8bit), AVR32, AT91SAM(32bit) • Microchip: PIC(8bit), dsPIC(16bit), PIC32 • Cypress Semiconductor: PSoC • Freescale: Coldfire(32bit), SO8 • Intel 8051(8bit) • TI: MSP430(16bit) • Hitachi • NXP • STMicroelectronics • Toshiba
Milyen AVR core családok léteznek? • tinyAVR — the ATtiny series • 0.5–8 kB program memory • 6–32-pin package • Limited peripheral set • megaAVR — the ATmega series • 4–256 kB program memory • 28–100-pin package • Extended instruction set (Multiply instructions and instructions for handling larger program memories) • Extensive peripheral set • XMEGA — the ATxmega series • 16–384 kB program memory • 44–64–100-pin package (A4, A3, A1) • Extended performance features, such as DMA, "Event System", and cryptography support. • Extensive peripheral set with DACs • Application-specific AVR • megaAVRs with special features not found on the other members of the AVR family, such as LCD controller, USB controller, advanced PWM, CAN etc. • FPSLIC™ (AVR with FPGA) • FPGA 5K to 40K gates • SRAM for the AVR program code, unlike all other AVRs • AVR core can run at up to 50 MHz • 32-bit AVRs
AVR programozási lehetőségei • SPI: csak programozásra használható; mindegyik AVR típushoz használható • JTAG: debugger, amely csak ATmega16-tól érhető el
uC PORT lábak • I/O láb, PORT egyik bitjeként • Interfész kivezetéseként
uC interrupt • Esemény hatására jön létre • Prioritás van az interruptok közt • Belső és külső interruptok
uC Timer egység • Számláló kiegészítő regiszterekkel és vezérlő logikával • 8/16 bites timer • Felhasználása: • Egyszerű számláló • Frekvencia generátor • Külső esemény számláló • Órajel osztó • PWM
uC timer egységconfig • Clk prescaler • Interrupt flags: TIMSK, TIFR • Control registers: TCCR1A, TCCR1B, TCCR2 • Special function register: SFIOR
uC Watchdog • Watchdog timer • Túlcsorduláskor reset impulzust generál • Kifagyás elleni védelem
Serial Peripheral Interface(SPI)Bus Fizikai felépítés
Serial Peripheral Interface(SPI)Bus Időzítési diagram
Serial Peripheral Interface(SPI)Bus 1 Master – 1 Slave
Serial Peripheral Interface(SPI)Bus 1 Master – Multi Slave
Serial Peripheral Interface(SPI)Bus Megvalósítás AVR-ben
Serial Peripheral Interface(SPI)Bus Használata AVR programozásban
Serial Peripheral Interface(SPI)Bus Használata AVR programozásban
Universal Asynchronous Receiver Transmitter(UART) Kommunikáció felépítése
Universal Asynchronous Receiver Transmitter(UART) Fizikai felépítés
Universal Asynchronous Receiver Transmitter(UART) Felhasználási lehetőségek
Universal Asynchronous Receiver Transmitter(UART) Felhasználási példa (RS232)
Universal Asynchronous Receiver Transmitter(UART) Megvalósítás AVR-ben
Universal Asynchronous Receiver Transmitter(UART) Használata AVR programozásban
Universal Asynchronous Receiver Transmitter(UART) Használata AVR programozásban
Inter-Integrated Circuit(I²C) Bus Felépítése
Inter-Integrated Circuit(I²C) Bus Fizikai felépítés
Inter-Integrated Circuit(I²C) Bus Protocol
Inter-Integrated Circuit(I²C) Bus Felhasználás - hőmérséklet mérés - memória illesztés - általános kommunikáció - ADC/DAC - RTC
Inter-Integrated Circuit(I²C) Bus Használata AVR programozásban
Inter-Integrated Circuit(I²C) Bus Használata AVR programozásban Adatlap 170.oldal (ATmega8)
Pulse Width Modulation (PWM) Elvi működés
Pulse Width Modulation (PWM) Megvalósítás
Pulse Width Modulation (PWM) Felhasználás - motor vezérlés - LED vezérlés: fényerő szabályzás - feszültségszabályozás
Pulse Width Modulation (PWM) Használata AVR programozásban
Pulse Width Modulation (PWM) Használata AVR programozásban #define PULSE_WIDTH 0x40 void pwm_start() {OCR1AL = PULSE_WIDTH; //Load Pulse widthOCR1AH = 0;DDRD |= (1<<5); //PortD.5 as o/pTCCR1A = 0x81; //8-bit, Non-Inverted PWMTCCR1B = 1; //Start PWM }
DAC típusok • R/2R létra negatív visszacsatolású műveleti erősítővel • PWM D/A átalakító
ADC típusok • Integráló A/D • Dual Slope A/D • Szukcesszív Approximációs(SAR) A/D • Delta/szigma A/D