Intro til AVR. Mads Pedersen, OZ6HR mads@oz6hr.dk



Relaterede dokumenter
Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007

Microcontroller, Arduino

Arduino Programmering

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Arduino Programmering

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

uprocessorens hardware

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

// Definition af porte og funktioner

Programmering i C Intro og grundlæggende C 5. marts 2007

Start på Arduino og programmering

Fra programmering til mikroprocessor

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Arduinostyret klimaanlæg Afsluttende projekt programmering C

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Internt interrupt - Arduino

Microcontroller, Arduino

Filnavn: main.c

Hvorfor & Hvordan lære Elever At programmere Arduinoer

Analoge indgange og A/D konvertering. Analoge udgange

ARDUINO PROGRAMMERING

Indholdsfortegnelse:

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007

Embedded controller, almen.

Af: OZ7EC Erik Christiansen Chiptemperatur med Arduino

8 bit unsigned integer værdier vist som binær, decimal og hexdecimal. Embeddede systemer. En introduktion til MSP430

Hvorfor & Hvordan lære. at programmere Arduinoer

Indholdsfortegnelse :

Design & Produktion. Valle Thorø. Sønderborg. ELektronik. ( Pendler-ordning gør det muligt! )

Projekt Træningsmaskine

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Hvorfor & Hvordan lære Elever At programmere Arduinoer

Hardware dokumentation Skrevet af. Gruppen. Version 1.0

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring Side 1 af 15

LCD boost converter C4 C5 C6 Q8 R10 R11 Q1 R12 IC8 R21 IC10 IC8 IC8

2. Delgennemløb af Realisationsfasen Indholdsfortegnelse

Datamaters arkitektur og programmering

MiniLIAB Byggesæt no. 1:

Introduktion til Microcontrollere Version

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

APPLICATION NOTE. OJ-DV Modbus protokol. OJ Drives A DRIVES PROGRAMME DEDICATED TO VENTILATION SOLUTIONS C 11/16 (OSH) 2016 OJ Electronics A/S

Programmering I Java/C#

GSM / SMS dør/port kontrol enhed

danske karakterer på Lcd

BAS 920. Datablad. BA Systems Petershvilevej 1 DK-3200 Helsinge

QUICKVEJLEDNING til Piccolo Light

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) )

Særlige funktioner. på 2 C-bussen: speed er på 100 Kbps. I den udgave, som kaldes fast speed, er missionshastigheden på op til 400 Kbps.

Det er muligt at chekce følgende opg. i CodeJudge: og

Programmering i C. Lektion september 2009

ECE 551: Digital System * Design & Synthesis Lecture Set 5

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.

GT2000 GT2000. Brugervejledning

System Arkitektur og Integration

Netværk & elektronik

Automatisk Guitartuner

Grafisk visning af hjertelyde

PMDK PC-Side Basic Function Reference (Version 1.0)

5. systemet skal indeholde 2 stk 1 Mbit(8 bit ROM implementeret som flash memory.

Arduino kursus lektion 3:

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

Introduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno

MultiProgrammer Manual

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

16. september 2013 InClimate funktionalitets og modbus setup version 7.1 Side 2

Enes Kücükavci Roskilde Tekniske Gymnasium Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

Lær Python dag 1 - modul 1

FLEKSIBLE MÅLINGER: Adgang til viden om tryk og temperatur

Port & Bitmanipulation

Projekt - RoboNet Del Journal.

INSTALLATION GOLDen GATE Lonworks FTT-10,

Adressering af ind- og ud gange på BCxxxx IEC1131 PLC uden TC system manager

GSM SMS Modem MODEL: SA RTU-1 V1.01

Alt elektronik heri er købt via og arduino udviklingssoftware er hentet fra

MCE2040 SERIEL KOMMUNIKATIONSMODUL

up/ansi Eksamensspørgsmål

9. Tyverialarm med buzzer

Automatisering Af Hverdagen

Programmeringseksempel tl BCxxxx (Seriel)

Bits DM534. Rolf Fagerberg, 2012

Lektion 6 / Analog Arduino

INSTRUKTION. OJ-DV Hterm. OJ Drives A DRIVES PROGRAMME DEDICATED TO VENTILATION SOLUTIONS /15 (OSH) 2015 OJ Electronics A/S

Programmering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale

MCE9637 DeviceNet Modul

ATS MASTER Integreret sikkerhedsløsning

16/04/12 50% 50% Waveform Chart Waveform Graph XY Graph Indicator Graph 33% 17% 88% 13%

Stokerbot 1.0. Bruger vejledning. Denne vejledning er stadig i et meget tidligt stadie, og mange ting er ikke forklaret grundigt nok.

S Integreret S og HMI i samme software

LCD intro. LCD Character display-intro. Redigeret 4/6-2019

BRUGERVEJLEDNING FLTA

64 til BBC micro:bit en. :GAME Advarsel: TM. Kortets layout:

Brugermanual Model Raxtune Oxygen

WT-1011RC Programmer User Guide

En Krystalstabil Oscillator til dit næste projekt

ISC2100 kan kommunikere via RS232, RS485, Ethernet og LON, bruge USB enhed og USB host.

GSM / SMS port kontrol enhed

Projekt Når maskinen reagerer - Dataopsamling og aktuatorer

Transkript:

Intro til AVR Mads Pedersen, OZ6HR mads@oz6hr.dk

Projektidé Brug en AVR-microcontroller Mål temperatur vha. temperatursensor Vis på display Send til computer og vis temperatur Slide 2

Plan 27/10-2005: Introduktion 10/11-2005: Få alle boards op at køre 08/12-2005: Temperatur + display + seriel Slide 3

Agenda for introduktionen Hvad er en microcontroller? Info om vores AVR-microcontroller Info om LCD-display Info om temperatursensor (og I 2 C-bussen) Programmering af microcontrollere Introduktion til BASCOM Slide 4

Hvad er en microcontroller? En computer i en chip : CPU ROM RAM Bi-directional ports Interrupts Internal clock + Mange andre funktioner Slide 5

Hvor bliver microcontrollere brugt? DVD, TV, VCR XBOX, Play Station PDA er Mobiltelefoner Biler Portåbner til garagen Husholdningsapparater Radioamatørformål: Frekvenstæller, LCD, og til alle mulige andre formål! Slide 6

Hvad skal vi bruge? Evaluation board Med en AVR AT90S2313 Inspireret af http://www.rowalt.de/mc/ 9V strømforsyning Programmer -kabel Serielt kabel LCD-display (HD4478-baseret) Temperatursensor (LM75) samt print Udviklings-/programmeringsmiljø (BASCOM) Slide 7

Info om AVR AT90S2313-10 (Atmel Corporation) 8 bit, 2K flash 8- og 16-bit timer Analog-digital converter (ADC) Watchdog SPI/UART 20 pins, hvoraf 15 er programmerbare I/O 0-10 MHz http://www.avrfreaks.net/index.php?module=freaksdevices&func=di splaydev&objectid=9 http://www.atmel.com/dyn/products/product_card.asp?family_id=607 &family_name=avr+8%2dbit+risc+&part_id=1993 Slide 8

Baggrundsinfo Display Temperaturmåler (I 2 C) Slide 9

LCD: Info Chip: HD4478 Standard-chip udviklet af Hitachi Bruges i mange displays, i mange størrelser, f.eks. 1x8, 2x16, 4x20 Drivere implementeret i mange programmeringssprog (f.eks. BASCOM) Slide 10

LCD: Benforbindelser Slide 11

Temperatursensor: Info Inspiration: http://www.avrprojects.net/tcn75_thermo.htm LM75 Udviklet af National Semiconductor Info: http://www.national.com/pf/lm/lm75.html Specifikationer: -55 ºC 125 ºC I 2 C-bussen Overtemperature Shutdown (O.S.) Kan bruges til f.eks. at alarmere, når temperaturen overstiger en valgt grænse Slide 12

Temperatursensor: Benforbindelser Slide 13

I 2 C-bussen: Introduktion I²C Forkortelse for Inter-Integrated Circuit, udtales "eye-squared-see" Udviklet i starten af 1980 erne af Philips Formål Nem kommunikation mellem CPU og udstyr i et TV I dag: De-facto standard i industrien Slide 14

I 2 C-bussen: Detaljer Two-wire seriel bus Serial Clock Line (SCL) Serial Data Line (SDL) Bussen kontrolleres af en Bus Master Fortæller slaver, hvornår de kan tilgå bussen Hver slave har en unik 7- eller 10-bit adresse Kommunikation mellem master og slave: Når masteren vil tilgå en slave, sender den adressen på slaven samt enten en read- eller write-bit. Den valgte slave sender Ack og masteren kan enten læse fra eller skrive til slaven. Slide 15

I 2 C-bussen: Adressering LM75 har en 7-bit slave-adresse De 4 første bits er hardcoded/forudvalgt i LM75 og er 1001 De 3 sidste bits tildeles vha. pins A2 A0 Enten lav (0: GND) eller høj (1: VCC) Slave-adressen er derfor: Slide 16

I 2 C-bussen: Adressering (fortsat) 7-bit adressering giver 2 7 =128 enheder på hver bus. Dog kun muligt at have 112 på én bus (16 af de 128 adresser er reserverede) De 3 bits giver mulighed for 2 3 =8 enheder af samme type (f.eks. 8 LM75) på samme bus Slide 17

I 2 C-bussen: Timing Eksempel hvor der læses en tempereratur (2 bytes) Slide 18

I 2 C-bussen: Alternativer Andre bus-teknologier One-Wire http://www.maxim-ic.com/1-wire.cfm CAN http://www.semiconductors.bosch.de/de/20/can/index.asp Analog temperatursensor F.eks. LM35: http://www.national.com/pf/lm/lm35.html Andre I 2 C-enheder: DS1621: Også temperatursensor til I 2 C-bussen http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2737 PCF8591: 8-bit A/D and D/A converter http://www.semiconductors.philips.com/pip/pcf8591p.html Slide 19

I 2 C-bussen: Links http://en.wikipedia.org/wiki/i2c http://www.semiconductors.philips.com/markets/ mms/protocols/i2c/facts/index.html http://embedded.com/story/oeg20010718s0073 http://www.esacademy.com/faq/i2c/ http://www.totalphase.com/support/i2c/ Slide 20

Programmering af μc Mange muligheder: Maskinkode Assembler C Basic (os) Slide 21

Programmering af μc: Maskinkode Computerens/microcontrollerens native sprog 8260: 6D 81 00 80 00 80 00 00 00 00 00 0A 00 DF 38 32 m...82 8270: 35 36 21 81 30 00 14 00 E7 00 1E 00 21 30 31 32 56!.0...!012 8280: 33 34 35 36 37 00 4D 00 D2 8B A0 00 0B 02 A0 00 34567.M... 8290: 1F 08 B8 82 D2 8B 97 A4 27 27 0C 86 D2 8B A0 00...''... 82A0: 37 08 14 00 DF 09 BA 82 A0 00 F7 09 0C 00 84 0A 7... 82B0: 13 90 56 7E 98 7E 0F 81 80 00 C0 0C C0 0C C0 0C..V... 82C0: C0 0C A0 00 26 10 80 94 17 A0 41 41 13 87 C0 E5...&...AA... 82D0: 37 37 80 65 87 00 C1 15 80 40 C1 65 80 47 A0 00 77.e...@.e.G.. 82E0: C2 15 80 40 C2 65 7D 42 A0 00 C3 17 52 82 C5 10...@.e}B...R... 82F0: C1 E0 B0 7E C0 E5 30 30 80 65 87 00 28 23 21 44...00.e..(#!D 8300: 46 2C 31 35 2C 34 31 2C 30 30 2C 36 34 2C 38 32 F,15,41,00,64,82 8310: 2C 33 37 2C 30 39 00 32 23 21 31 30 2C 30 30 2C,37,09.2#!10,00, 8320: 34 38 2C 34 35 2C 34 43 2C 34 43 2C 34 46 2C 32 48,45,4C,4C,4F,2 8330: 30 00 3C 23 21 35 37 2C 34 46 2C 35 32 2C 34 43 0.<#!57,4F,52,4C 8340: 2C 34 34 2C 32 31 2C 32 30 2C 30 30 00 46 23 21,44,21,20,00.F#! 8350: 46 36 2C 30 31 2C 44 46 2C 30 39 2C 34 38 2C 31 F6,01,DF,09,48,1 8360: 32 2C 38 34 2C 30 30 00 0F 27 E4 00 00 00 00 00 2,84,00..'... Slide 22

Programmering af μc: Assembler Det laveste niveau, man normalt programmerer på i dag.def Temp = R16.org 0x0000 rjmp RESET ;Gives "Defines" Register R16 the name Temp ;Places the following code from address 0x0000 ;Take a Relative Jump to the RESET Label RESET: ;Reset Label ldi Temp, 0xFF ;Store 255 in R16 (Since we have defined R16 = Temp) out DDRB, Temp ;Store this value in The PORTB Data direction Register Loop: ;Loop Label out PORTB, Temp ;Write all highs (255 decimal) to PORTB dec Temp ;Decrement R16 (Temp) rjmp Loop ;Take a relative jump to the Loop label Slide 23

Programmering af μc: C Mest udbredt til programmering af microcontrollere i dag void main() { printf("start\n\r"); LM75_init(); printf("reading Temperature\n\r"); } while (1) { result = LM75_read_temperature(); printf("temperature = %d\n\r", result); delay_ms(1000); } Slide 24

Programmering af μc: Basic Det sprog vi vil anvende $regfile = "2313def.dat $crystal = 3686400 Ddrd = &B0001000 Portd = &B0000100 Do If Pind.2 = 0 Then Portd.4 = 0 Portd.5 = 1 Else Portd.4 = 1 Portd.5 = 0 End If Loop End Slide 25

Værktøjer til projektet BASCOM Til at programmere med (programmeringsmiljø) Version 1.11.7.9: http://www.quasarelectronics.com/bascom_software.htm Version 1.11.7.4: http://www.grifo.it/soft/bas_avr.htm TwinAVR Til at overføre det kompilerede program med Ikke nødvendigt, når BASCOM anvendes http://www.rowalt.de/mc/avr/progd.htm AVRTerm Se udprintninger til serielporten Ikke nødvendigt, når BASCOM anvendes http://www.rowalt.de/mc/avr/toolsd.htm Slide 26

Intro til BASCOM Skal stå på Universal MCS Interface Skal stå på WinAVR and SP12 Tjek for fejl Seriel terminal Kompilér Simulér Kør programmer Options Programmer Slide 27

Til næste gang Alle skal som minimum være færdige med at lodde deres board. Næste gang vil vi sikre, at alle boards er i orden og vi vil lave en simpel testopstilling. Slide 28