TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator



Relevanta dokument
AVRStudio på tre minuter. Micke Josefsson, 2005

Det finns en handledning till kortet på hemsidan. AVR STK500.

Datorteknik 1 (AVR 1)

AVR Studio 4 Och AVRFLASH

A-del motsvarande KS1

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

Systemkonstruktion SERIEKOMMUNIKATION

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.

Så här gör du för att lägga till nytt e-postkonto i Windows 8. Öppna E-post från startskärmen.

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Decipher och Datataker DT100

Välja aktivitet. 3FrontOffice. Meddela att du är på exempelvis möte. Välja aktivitet. Välja aktivitet

MSR Gjutarevägen Stenkullen

LABORATIONSINSTRUKTION

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Att komma igång med FirstClass (FC)!

Datorlaboration 0, Programmering i C++ (EDAF30)

Digitala Projekt (EITF11)

Software Translator 6.1 Manual

Skriv in sökvägen sam.sll.se

HÖGSKOLAN I KALMAR Institutionen för teknik Erik Loxbo LABORATION I PLC-TEKNIK SEKVENSSTYRNING AV TRANSPORTBAND SIMATIC S7 - GRAPH

Konfigurera Xenta från Point

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for PIC

Mer om Outlook. Extratexter till kapitel 4 Mejla. I avsnittet lär du dig: vad Outlook idag är och kan användas till

Clicker 5. Lathund kring de vanligaste och mest grundläggande funktionerna för att komma igång med Clicker. Habilitering & Hjälpmedel

mikroicd Avbuggare Handbok

Svensk version. Inledning. Installation av maskinvara. Installation av Windows XP. LW057V2 Sweex trådlösa LAN PCI-kort 54 Mbps

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Programmering av Thangram portregister System XIP (VA/08)

Flödesschema som visar hur man använder Quartus II.

Bruksanvisning DAB One

Survey&Report steg för steg: Skapa rapport

Milesight Motion Detection V1.0

Digital Termometer J10 B4 A4 GND GND GND B1 GND GND GND GND B3 A3 +5V +5V A3 +5V A2 +5V +5V A2. +5v B16 A16 UREG UREG B1 6 AC AC A1 6 A6 6

Datakommunikation med IR-ljus.

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

Microsoft Publisher. Laborationskompendium för digital behandling av publikationer. Detta exemplar tillhör:

Mirasys VMS 7.3. Workstation användarvägledning

Studentguide Adobe Connect Pro

Elisabeth Bejefalk IT-Assistent Avesta kommun

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Manual för Kollektomat

Datorsystem Laboration 2: Minnesmappade bussar

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD

Komma igång med Eventor

19. Skriva ut statistik

Utskick av respondentenkät

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Instruktioner för analys- appen

Manual för deltagare kursen Bakgavellyft Så går du kursen Bakgavellyft

Installationsanvisning för kursens programvara på egen dator

LABORATIONSINSTRUKTION

Bruksanvisning. Applikationsplats

Home Prosafe 1132 GSM larm (Art.nr )

Växtviskaren EITF11 Digitala projekt VT15, I12

Användarmanual Pagero Connect 2.0

AVRflash. Program. Handbok

Smart Rogic Manual. Robostick Manual

Nallelek Lärarvägledning

Semester och arbetstidsförkortning

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Teckentavlor. Inställning av styrsätt med programvalsratten

WAGO IO System Service Seminar. Diagnostik

Instruktion för L-100 IF:s kartpärm

Copyright 2008 Pausit AB medföljer programvaran pausit. Pausit version 1.2 Användarmanual

Bruksanvisning Scandia Ovnen TC 5000

Webbkamera från

Kontakt: Mikael Forsman Användarmanual för VIDAR 4.0

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

ADAD-net. Användarmanual INDIVIDEN. Råbe och Kobberstad Februari 2010

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

William Sandqvist

Bruksanvisning till LEDMasterBasic1

Novell Filr 1.2 skrivbordsprogram för Mac snabbstart

Handbok Artikulate. Andreas Cord-Landwehr Ondrila Gupta Översättare: Stefan Asserhäll

M7005 Fischer/Weisser mätstyrningsserver M9003 ersatt med Simens S Plc

INSTALLATION AV VITEC MÄKLARSYSTEM. Studentversion

För en helt ny användare går det snabbare än tidigare att lära sig de funktioner som finns.

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

En guide till FirstClass

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.]

ANVÄNDARMANUAL ANSLUTA TILL REGION HALLAND VIA CITRIX

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Användarmanual för nya funktioner

Lathund för överföring av rapporter och ljudfiler

FÄLTMÄTINSTRUKTION TESTO 174H

Vid frågor kontakta oss på eller ring oss på

Installation av. Vitec Online

Formulär används för att ta in anmälningar, göra undersökningar etc. Skapa en ny sidtyp och välj Formulär

MANUAL NETALERT FÖR ANDROID VERSION 3.3

Här kan du välja befintligt upplägg eller skapa ett nytt. Klicka på edit uppe till höger för att redigera och/eller skapat nytt.

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

SÅindex 5 i Microsoft Excel 2010

Lättlästa instruktioner för ipad ios8

Microsoft Windows 8 Grunder

Manual Nedladdningsbara klienten NLK

Steg 1 Starta Outlook 2013 och öppna konfigurationsguiden

Laboration 2 Elektriska kretsar Online fjärrstyrd laborationsplats Blekinge Tekniska Högskola (BTH)

Transkript:

1

2

TSIU50 Mikrodatorprojekt LAB1 AVR-introduktion och logikanalysator Michael Josefsson Januari 2007

Detta häftes syfte är att tjäna som en snabb introduktion till utvecklingsmiljön AVRStudio och den logikanalysator, Agilent 54621D, som används i projekten. Häftet är också laborationsinstruktion till kursens första laboration. Se till att förstå hur de olika momenten i programframtagningen fungerar. Prova gärna att modifiera programmet men först efter att mätupgifterna med logikanalysatorn är gjorda. Experimentera! 3

4

1 AVRStudio Utvecklingsmiljön AVRStudio innehåller en editor för att mata in programmet, en simulator för att under kontrollerade former enkelstega genom programmet och slutligen en programmerare som kan användas för att ladda ner den färdiga koden till målsystemet. Målsystemet är alltid en processor men den kan sitta på olika utvecklingskort eller direkt i en brännarenhet. 1.1 Från kod till processor Det hela börjar med att koden matas in i en editor. Denna kod måste sedan kompileras. Kompileringen innehåller flera steg men de viktigaste för användaren är att man får en lista med syntaktiska fel så att man har möjlighet att korrigera sin kod. En korrekt kompilering resulterar i en hex-fil, en fil med all nödvändig programinformation i ett nedladdningsformat. En hex-fil är inte direkt läsbar. Innehållet är programmets opkoder i hexadecimal form tillsammans med deras adresser. Även om den inte är tänkt att läsas av människor är den inte helt obegriplig: :020000020000FC :1000000018E011BB22B3212722BB00E40395D1F3F2 :02001000FDCF22 :00000001FF Nja, ok då, det kanske den är. Efter kompileringen kan koden simuleras. Det innebär att hex-filen används som indata till AVRStudio. Under denna process har några andra filer också tillverkats för AVRStudios interna bruk, bland annat en fil som håller ihop det projekt vi bygger upp, dvs information om vilka olika källkodsfiler (asssembler) som ingår. Man kan alltså låta det slutliga programmet härröra från flera filer om man vill. Det är inget vi bryr oss om här. 1.1.1 Starta AVRStudio Efter inloggning finns ikonen Shortcut to AVRStudio på skrivbordet. Dubbelklicka på den för att dra igång utvecklingsmiljön. Du kan nu välja att öppna ett befintligt projekt eller skapa ett nytt. Ett projekt i detta sammanhang är den samling filer och konfigureringar som behövs för AVRStudio. Här har vi inget gammal projekt att öppna. Alltså: 5

1 AVRStudio Välj Project/New project. Välj Atmel AVR-assembler. Fyll i Project Name. Ändra Location till din hemkatalog på vanheden. Klicka på..., och sedan tills du kommer till mplabnn on Samba server (vanheden) (Q:) Välj denna katalog, din hemkatalog. Här kan du nu skapa en egen katalog för projektet om du vill. Avsluta med att klicka på Select och sedan Finish. Du har nu ett editorfönster där du direkt kan skriva in kod. 1.1.2 Skriva program Här visas i kort form vilka mått och steg man måste vidta för att få igång ett enkelt program. Programmet ska bara flippa bit 3 på PORTD. Programmet är inte avsett att vara exempel på det bästa sättet att göra detta, utan bara visa hur assemblerfilen kan se ut med de speciella reserverade ord som kan användas. AVRStudio ställer några få krav på hur den inmatade koden ska se ut för att kunna kompilera den. Här kommer koden som den ska se ut när den är klar så tar vi detaljerna efteråt:.include "m8def.inc".def loopraknare.def temp.equ start = r16 = r17 = 0x40 main: flip: loop: ldi temp,0b00001000 ; bit 3 utgång out ddrd,temp ; konfigurera! in r18,portd ; läs av portd eor r18,temp ; r18 = r18 XOR temp out portd,r18 ; skicka till porten ldi loopraknare,start inc loopraknare ; sätter flaggor (Z) breq flip rjmp loop 6

1.1 Från kod till processor.def definierar ett annat namn på ett register. Det underlättar betydligt om man använder förståndiga namn på sina register..equ används för att sätta en konstant till något värde. Här är konstanten angiven i hexadecimal form men det går att ange den decimalt eller binärt också. Första radens.include laddar en (rätt stor) fil med många fördefinierade namn på register och konstanter. Det gör att vi kan skriva out portd,r18 till exempel. portd är definierat med.equ i den filen. Alla lables, symboliska adresser, måste börja i första kolumnen och avslutas med :. Opkoderna börjar åtminstone ett tabb-stopp in. Det finns inget krav att operanderna behöver skiljas med tab-stopp. Kommentarer inleds med semikolon. Filen behöver inte avslutas med END e dyl. 1.1.3 Simulera programmet För att kunna simulera projektet måste det först kompileras och en hexfil skapas. För att göra detta: Välj Build ur menyalternativen. Eller använd tangenten F7 direkt. Detta kan ge felmeddelanden i det nedre fönstret. Klicka på respektive felmeddelande så kommer du till den felande kodraden. Ändra och kompilera om till allt gått igenom. Under Debug -menyn väljer du nu Start Debugging. I menyn Debug/ Select Platform and Device... väljer du AVR Simulator och ATMega8, sedan Finish. Nu dyker ett fönster (kallat I/O View) upp till vänster med processorns register, I/O-portar mm. Här visas all processorstatus. Du kan högerklicka på raderna för att få mer information. Under Debug -menyn kan du nu välja Step Into eller trycka F11 eller klicka direkt på symbolen { }. Effekten är i vart fall att du startat exekveringen med att gå en programrad i programmet. I I/O View-fönstret kan du inspektera de berörda registren osv. 1.1.4 Hur fort går det I I/O View-fönstret finns alternativet Processor. Under denna finns programräknarens värde men också en praktisk instruktionsräknare Cycle Counter, och ett stoppur du kan använda för att ta tid på fördröjningsloopar osv. Simulatorn antar att processorn kör med klockfrekvensen 4 MHz men detta värde går att ändra under Debug->AVR Simulator Options. 7

1 AVRStudio 1.1.5 Bränna koden till processorn Det finns en hel uppsjö med olika metoder att bränna in koden i processorn. Här visas hur det går till om man använder Atmels utvärderingskit STK500. Brännarkortet STK500 vill ha 10-12 volt och bryr sig inte om polariteten så det är bara att koppla in rätt spänningsnivå. På själva kretskortet sitter en liten strömbrytare upp till vänster. Se till att maxspänningen inte överskrids innan du slår på strömbrytaren! När kortet är spänningssatt lyser en lysdiod. Välj sedan från menyn i AVRStudio Tools-> Program AVR -> Auto Connect för att få fram programmeringsmenyn. Här kan man sedan under fliken Program välja vilken krets man avser att bränna. Kortet STK500 kan acceptera åtskilliga typer men i vårt fall är det bara ATMega8 som är aktuellt. Se till att ISP (In-Circuit Serial Programming) är valt som Programming mode. Kontrollera också under fliken Fuses att: Kryssrutan för watch-dog timer är rätt inställd Rätt klockalternativ används. Antingen Ext Clock, yttre klocka, eller Int RC Osc, intern klocka i form av en RC-oscillator med rätt frekvens, måste väljas. Kryssrutan för brown-out detection är ikryssad. Programmeringen i sig sker genom att trycka på knappen Program i rutan för Flash, och genomförs på några sekunder. Därefter resetas processorn och programmet startas. Om programmet skvallrar sin funktion på en utgående port kan denna kopplas till en av lysdioderna och man får omedelbart en bekräftelse på att programmet körs. 8

2 Logikanalysator och mätuppgift Logikanalysatorn är arbetshästen vid all felsökning av lite större digitala system. Man kan fortfarande komma rätt långt med en enkel logikprob men analysatorn ger mycket större möjligheter. I korthet är en logikanalysator (kortare logikare ) en inspelare för digitala sekvenser. Den logikare du har på labplatsen kan dessutom spela in 15 kanaler samtidigt. Och fungerar dessutom som ett tvåkanals oscilloskop. En enkel mätning, på en kanal, förklarar dess funktion: Anslut en av kanalerna från pod:en till mätobjektet. Anslut också den svarta jordledningen till mätobjektets 0V (GND). Tryck på knappen AutoScale. Logikaren känner av sina inkanaler och aktiverar den som har varierande insignal. Du bör nu se mätobjektets signal. Om logikaren meddelar No signal detected betyder det att du inte har någon signal inkopplad (är mätobjektet spänningssatt?). Med ratten Horizontal kan du ändra tidsskalan. Tryck på knappen Cursors. Två vertikala linjer dyker upp på skärmen. Dessa kan flyttas i sidled med -ratten. Med de s.k. soft key-tangenterna i skärmens nederdel kan du välja vilken av de två cursorerna som ska vara aktiv. Samtidigt meddelas avståndet mellan cursorerna både som frekvens och som skillnad i tid. Vilken frekvens har insignalen? Med knappen Quick Meas kan ett antal standardmätningar snabbt göras. Använd soft key-tangenterna för att: Välja insignal (source) Välja typ av mätning Genomföra mätningen Vilken frekvens har insignalen med denna mätmetod? Utöver dessa enkla mätningar vill man ofta låta en av insignalerna trigga, dvs påbörja inläsningen av data. Med knappen Trigger fås nya funktioner för soft key-tangenterna. Nu kan du välja om trigggningen ska ske på stigande eller fallande flank om oscillatorkanal 1 eller 2 ska vara triggkälla eller på vilken digital kanal triggingen ska ske 9

2 Logikanalysator och mätuppgift Mätuppgift Anslut en kanal till processorns klocka. Anslut en ytterligare kanal till bit 3 på port D som programmet nu ständigt växlar logiskt värde på. Använd ett lämpligt triggvillkor för att avläsa hur lång tid och hur många klockpulser det tar mellan omslagen på bit 3? Hur många instruktioner motsvarar detta? Hur många klockpulser behöver processorn per instruktion? 10

3 Egen programmeringsuppgift Välj en av uppgifterna nedan. Mata in koden i editorn, assemblera, simulera och ladda slutligen ner koden till målsystemet. Rinnande ljus. Tänd i tur och ordning varje lysdiod på målsystemet. Välj en lagom hastighet. Programmet ska avslutas då en tryckknapp nedtrycks. Skrämma prick. Tänd en lysdiod. När den lyser ska man trycka på motsvarande tryckknapp för att släcka den. Men då ska omedelbart en annan lysdiod tändas. Om man trycker på fel tryckknapp ska inget hända. Samtidig nedtryckning av två eller fler knappar avslutar programmet. Ping-pong. Vid programstart tänds en lysdiod i mitten och börjar gå åt vänster eller höger. För att blippen inte ska trilla över kanten måste den hindras genom att vänster eller höger tryckknapp nedtrycks. Riktningen ändras då osv. Samtidig nedtryckning av båda knapparna avslutar programmet. (Man kan fundera på vad som ska hända när den trillar av kanten?) 11