Högskolan på Åland serienummer 16/2014. Elektroteknik. Mariehamn 2014 ISSN 1458-1531

Relevanta dokument
Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

Digitalteknik: CoolRunner-II CPLD Starter Kit

Så sparas ström i dagens åttabitare

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Introduktion till Arduino

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

- Digitala ingångar och framförallt utgångar o elektrisk modell

The Intelligent Timer

DIGITALA PROJEKT Väderstation

Introduktion till Arduino

Laboration 1: Styrning av lysdioder med en spänning

22/02/16. Arduino Introduktion till Arduino. Arduino. Microcontroller - Embedded systems. Historia Organisation - Ekosystem

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

GPIO - General Purpose Input Output

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Modbus över Ethernet. WAGO Contact SA TSS STR

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Föreläsningsanteckningar till Konstruktionsmetoder

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

Innehåll. 1 Inledning 3

Föreläsning 4 IS1300 Inbyggda system

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Bilen som inte kan krocka

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Ett urval D/A- och A/D-omvandlare

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Disposition av prototypkort

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

USB-STYRD SWITCHMATRIS

Blue Key Digitala projekt VT

Laborationskort - ML4

Växtviskaren EITF11 Digitala projekt VT15, I12

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Datorteknik 1 (AVR 1)

Optoisolerat USB Utgångskort

Effektpedal för elgitarr

Strömförsörjning. Laboration i Elektronik 285. Laboration Produktionsanpassad Elektronik konstruktion

OMRON. PLC till PLC kommunikation (CP1L-E) Ethernet. 22 april 2014 OMRON Corporation

Avståndsmätare. Digitala System EITA Grupp 7. Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors

, fukt- och temperaturdetektor Modbus RTU, trafikljus

Ubiquiti M5 Trådlös WiFi-länk för VAKA-system

Introduktion till syntesverktyget Altera Max+PlusII

AVRStudio på tre minuter. Micke Josefsson, 2005

Datakommunikation med IR-ljus.

LABORATION PIC-PROGRAMMERARE

Beijer Electronics AB 2000, MA00336A,

Digitala projekt rapport

CanCom C721 RadioTransceiver V1.19

Goda råd till de som ska utföra ett liknande projekt (från KMM 2016)

Programmera Avant 5 med PC mjukvara

Digitala projekt - Radiostyrd bil

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

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

Cacheminne Intel Core i7

LABORATIONSINSTRUKTION

BRUKSANVISNING GSM-MODUL DBG5. Version 1.00 Utgåva 1

HF0010. Introduktionskurs i datateknik 1,5 hp

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

KOMMA IGÅNG GUIDE MODBUS Med WAGOs styrsystem

Instruktioner för uppdatering av enheter med ISP

BAS STRÖMFÖRSÖRJNING Slingövervakningsmodul-EXT/Kretskort

SMS-larm L Version Gjutarevägen Stenkullen

ir-detektor. Denna bygganvisning riktar sig till dej som köpt Hemi-konsult s ir-detektor

Avkoppla rätt en kvantitativ undersökning av parasitinduktans hos olika layoutalternativ

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Digitala Projekt(EITF40) - Larm

Instruktion för I/O-Kort, med USB-anslutning.

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Antares Användning och installation

GPIO - General Purpose Input Output

F7: I/O hantering. Asynkron och synkron busscykel Bussfördelning. Periferikretsar

CanCom Bluetooth BLUETOOTH V5.6. Specifikation Specification LED. transceiver

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

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

SMS-larm L Gjutarevägen Stenkullen

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

Modbus. WAGO Contact SA TSS STR

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

CanCom. DJ803 Prod.ver Specifikation Specification

DCU605. Tekniska Data. Datablad SDA00178SE Version /02/18 Passersystem. Dörrcentral med direkt IP-anslutning till ESMIKKO-server

Digitala kretsars dynamiska egenskaper

Öppnaknapp Scoria Touch

Användarmanual För skatteverket

A/D- och D/A- omvandlare

Accelerometer. Rikard Ekström Mattias Kindborg. Informationsteknologi Lunds Universitet

WAGO IO System Service Seminar. Diagnostik

HOWTO: HDD Clock. 1 Översikt. Eller: hur man gör en HDD klocka. Peter Faltpihl & Gustav Andersson. Linköpings Universitet, Norrköping

Laboration i datateknik

SMS-larm L Version Gjutarevägen Stenkullen

PAMM Användarmanual

Pulsmätare med varningsindikatorer

Snabbmanual WM Effektanalysator

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator

Transkript:

Styrenhet för segelrobot Anton Bengsén Högskolan på Åland serienummer 16/2014 Elektroteknik Mariehamn 2014 ISSN 1458-1531 Mariehamn 2009

Examensarbete Högskolan på Åland Utbildningsprogram: Författare: Arbetets namn: Handledare: Uppdragsgivare: Elektroteknik Anton Bengsén Styrenhet för segelrobot Kjell Dahl Högskolan på Åland Abstrakt: Detta examensarbete handlar om konstruktion och utvärdering av en styrenhet för segelrobotar. Examensarbetet görs på uppdrag av Högskolan på Åland för projektet Åland Sailing Robots. Huvudmålet med Åland Sailing Robots är att år 2016 segla en segelrobot över Atlanten. Syftet med examensarbetet är att styrenheten ska vara bättre än, eller fungera som bra komplement, till de styrenheter som tidigare har använts i projektet. En mycket strömsnål mikrokontroller beskrivs i arbetet. En fungerande prototyp av styrenheten baserad på mikrokontrollern tillverkas och testas. Prototypen fungerar som grund för en framtida utveckling av styrenheter för segelrobotar. Till slut konstateras att mikrokontrollern är lämplig för segelrobotar men att styrenheten kan behöva vidareutvecklas för att helt kunna ersätta tidigare styrenheter som använts i projektet. Nyckelord (sökord): Mikrokontroller, ATSAM4, Segelrobot, Energisnål styrenhet, SPI, USART Högskolans serienummer: ISSN: Språk: Sidantal: 16/2014 1458-1531 Svenska 38 Inlämningsdatum: Presentationsdatum: Datum för godkännande: 18.5.2014 14.05.2014

Degree Thesis Högskolan på Åland / Åland University of Applied Sciences Study program: Author: Title: Academic Supervisor: Technical Supervisor: Electrical Engineering Anton Bengsén Control Unit for Sailing Robots Kjell Dahl Abstract: This thesis is about design and evaluation of a control unit for sailing robots. The thesis is done for the Åland University of Applied Sciences and the project Åland Sailing Robots. The main goal of the project Åland Sailing Robot is to sail a sailing robot across the Atlantic 2016. The purpose of the thesis is to make the control unit more suitable for sailing robots than, or at least suitable as a complement, to the control units used this far in the project. A microcontroller with very low energy consumption is described in the thesis. A working prototype based on the microcontroller is made and tested. The prototype is a basis for future development of sailing robot control units. At last, it is found that the microcontroller is suitable for sailing robots, though there might be some further development needed in order to entirely replace the control units used this far in the project. Key words: Microcontroller, ATSAM4, Sailing Robot, Low power control unit, SPI, USART Serial number: ISSN: Language: Number of pages: 16/2014 1458-1531 Swedish 38 Handed in: Date of presentation: Approved on: 18.5.2014 14.05.2014

INNEHÅLL ORDFÖRKLARINGAR... 8 1. INLEDNING... 11 1.1. Bakgrund... 11 1.2. Syfte... 11 1.3. Metod... 12 1.4. Avgränsningar... 12 2. PLANERING... 13 2.1. Huvudstyrenhet... 13 2.2. Val av mikrokontroller... 14 3. ATSAM4L... 17 3.1. Strömförsörjning... 18 3.2. Minne... 19 3.3. Viloläge... 19 3.4. Power Manager... 19 3.5. System Control Interface... 21 3.6. Backup Power Manager... 22 3.7. Backup System Control Interface... 23 3.8. Memory Protection Unit, MPU... 24 3.9. Watchdog Timer, WDT... 24 3.10. Debuggning och programmering... 25 4. PROTOTYPEN SRCB1... 26 4.1. Beskrivning... 26 4.1.1. Data... 28 4.1.2. Kretskortet... 28 4.1.3. Tillverkning... 29 4.2. Komponenter... 30 4.2.1. Mikrokontroller... 30

4.2.2. Programmeringsanslutning... 30 4.2.3. Strömförsörjning... 30 4.2.4. SPI-buss... 32 4.2.5. USART... 32 4.2.6. Övrigt... 32 4.3. Mätning av strömförbrukning... 33 4.3.1. Mätning i tomgång... 33 4.3.2. Mätning i normaldrift... 33 4.3.3. Mätning i Wait-läge... 33 5. PROGRAMMERING... 35 5.1. Exempelprogram 1 LED... 35 6. DISKUSSION... 37 KÄLLOR... 38 BILAGA 1 - Blockschema för ATSAM4L BILAGA 2 - ATSAM4L minne BILAGA 3 Vilolägen BILAGA 4 - ATSAM4L strömförsörjningsöversikt BILAGA 5 - Kretsschema för prototypen BILAGA 6 Komponentlista BILAGA 7 Mönsterkort BILAGA 8 GPIO

FIGURFÖRTECKNING Figur 1. Grundläggande blockschema.... 13 Figur 2. VFBGA100 kapseln för ATSAM4L.... 15 Figur 3. ATSAM4L QFP 48-pinnarskapsel (ATMEL, 2014).... 18 Figur 4. Interna regulatorns driftlägen (ATMEL, 2014).... 18 Figur 5. Power Manager (ATMEL, 2014).... 20 Figur 6. Generering av synkrona klocksignaler (ATMEL, 2014).... 21 Figur 7. System Control Interface (ATMEL, 2014).... 22 Figur 8. BPM blockschema (ATMEL, 2014).... 23 Figur 9. BSCIF blockschema (ATMEL, 2014).... 24 Figur 10. JTAG och SWD pinnar (ATMEL, 2014).... 25 Figur 11. Förenklat blockschema för prototypen (SRCB1).... 26 Figur 12. 3D-modell av prototypen (genererad i Ultiboard).... 28 Figur 13. Fotografi av det färdiga prototypkortet.... 30 Figur 14. Schema över regulatorkoppling (Exar, 2014).... 31 Figur 15. SPI-modul (ATMEL, 2014).... 32

TABELLFÖRTECKNING Tabell 1. Jämförelse mellan olika ATSAM4.... 14 Tabell 2. In- och utgångar till SRCB1.... 27 Tabell 3. Datablad för SRCB1.... 28 Tabell 4. Mätning i tomgång.... 33 Tabell 5. Mätning i normal drift.... 33 Tabell 6. Mätning i Wait-läge... 34

ORDFÖRKLARINGAR ADC ARM ARM Holdings Atmel BGA BOD BPM BSCIF CAN CPU DAC Debuggning DMA Flash FR4 FPU GPIO IDC Analog to Digital Converter, analog till digital omvandlare En familj av processorarkitekturer Företaget som designar ARM arkitekturen Atmel Corporation är en världsledande designer och tillverkare av mikrokontroller Ball Grid Array, kapsel för ytmonterade integrerade kretsar Brown Out Detector, återställer processorn om matningsspänningen blir för låg Backup Power Manager Backup System Control Interface Controller Area Network, databuss Central Processing Unit, processor Digital to Analog Converter, digital till analog omvandlare Ta bort buggar, felsöka Direct Memory Access En typ av minne som lagrar innehållet även utan ström Glasfiberlaminat Floating Point Unit, flyttalsenhet General-Purpose Input/Output Insulation Displacement Connector, kontaktdon för datasignaler 8

IDP I2S JTAG Mikrokontroller MPU NMEA NMEA-2000 NVIC OSC PEC PM PWM Rasberry Pi Reset SCIF Segelrobot SleepWalking Integrated development platform, integrerad utvecklings plattform Inter-IC Sound Joint Test Action Group, standard för programmering och felsökning Dator på en integrerad krets som innehåller processor, minne in- och utgångar m.m. Memory Protection Unit National Marine Electronics Association, högnivåprotokoll för navigationsutrustning Nyare variant av NMEA som använder CAN-buss Nested Vectored Interrupt Controller, avbrottshanterare Oscillator Peripheral Event Controller, Kontroller som styr kommunikation direkt mellan moduler, utan att det går via CPU Power Management Pulse Width Modulation, pulsbreddsmodulering Dator som är lika stor som ett kreditkort Återställning av CPU System Control Interface Obemannad segelbåt som kan navigera helt utan hjälp från land Funktion som gör att vissa moduler kan starta från viloläge vid behov 9

SOT-23 SPI SRCB1 SRAM SWD TWI TFQP UART USART USB Watchdog timer QFP Small Outline Transistor, kapsel för ytmonterade integrerade kretsar Serial Peripheral Interface, seriell synkron buss Sailing Robot Control Board 1, prototypen som beskrivs i det här examensarbetet Static Random Access Memory, statiskt minne som kräver spänning för att bibehålla data Serial Wire Debug Two Wire Interface Thin Quad Flat Package, kapsel för ytmonterade integrerade kretsar Universal Asynchronous Receiver/Transmitter Universal Synchronous/Asynchronous Receiver/Transmitter Universal Serial Bus Timer som återställer processorn om den har fastnat i en oändlig slinga eller i ett otillåtet läge Quad Flat Package, kapsel för ytmonterade integrerade kretsar 10

1. INLEDNING Mitt examensarbete omfattar planering, konstruktion och utvärdering av en styrenhet, som ska vara lämplig att användas i en segelrobot. Styrenheten kommer att som del eller som helhet i ett styrsystem, att kunna fungera som beslutsfattande och verkställande enhet ombord, för planering av seglingsrutt, styrning av ställdon för t.ex. segel och roder m.m. Den ska också kunna användas ihop med andra styrenheter. Examensarbetet görs på uppdrag av Högskolan på Åland och deras projekt Åland Sailing Robots. En enklare prototyp av styrenheten ska under examensarbetets gång tillverkas. Om styrenheten visar sig vara användbar kommer den kanske att vidareutvecklas efter examensarbetets slut. Det skriftliga arbetet kommer att fungera som en beskrivning av prototypen och som vägledning för användning av den. 1.1. Bakgrund The Microtransat Challenge är en tävling som går ut på att deltagarna ska segla över Atlanten med segelrobotar. Tävlingen är till för att stimulera utvecklingen av autonoma segelrobotar genom vänskaplig tävling (Microtransat, 2014). Högskolan på Åland inledde år 2013 projektet Åland Sailing Robots, med målet att år 2016 delta i tävlingen The Microtransat Challenge och som först i världen segla en segelrobot över Atlanten. Delmål i projektet är att 2014 segla över Ålands hav och att 2015 segla från Åland ner runt Gotland och tillbaka. Högskolan på Åland började våren 2013 med att bygga in ett enkelt styrsystem baserat på en Raspberry Pi i en radiostyrd segelbåt. I juni 2013 gjordes en lyckad första provsegling (Granlund, 2013). 1.2. Syfte När jag såg att Raspberry Pi användes i segelrobotar började jag leta efter ett bättre alternativ. Trots att Raspberry Pi är kraftfull, liten och energisnål är jag övertygad om att den inte är lämplig att användas i den tuffa miljö som segelroboten ska användas i. Med att den inte är lämplig menar jag bland annat att den inte är industrianpassad, den är inte specialdesignad för ändamålet och den har inga analoga in- och utgångar. Styrenheten som jag ska designa ska vara mer lämplig än Raspberry Pi eller åtminstone kunna fungera som ett bra komplement till den. 11

1.3. Metod Komponenterna för styrenheten väljs genom att jämföra olika tillverkares datablad. Prototypkortet ritas och designas i programmen Multisim och Ultiboard. 1.4. Avgränsningar Examensarbetet kommer endast att omfatta styrenheten i sig, och inte kringutrustningen den ska användas med. Strömförsörjningssystem till styrenheten som t.ex. batteri- och solcellssystem kommer inte att designas eller utvärderas. Styrenheten är tänkt att kunna användas i ett flertal olika applikationer och det är upp till konstruktören av de applikationerna att välja lämplig kringutrustning. 12

2. PLANERING En skeppare på en segelbåt beaktar väder, kurs och vind, och gör beslut därefter. För att segelroboten ska kunna navigera på ett rationellt sätt behöver den, som figur 1 illustrerar, ta in information, bearbeta den och slutligen reagera. Figur 1. Grundläggande blockschema. Styrenheten ska alltså kunna ta emot signaler från givare, bearbeta dem i en huvudstyrenhet och sedan skicka ut styrsignaler till lämpliga ställdon. Eftersom det inte är klart exakt hur styrenheten ska användas, kommer jag att sträva efter att göra den så flexibel som möjligt. 2.1. Huvudstyrenhet För att få en flexibel och kraftfull styrenhet behöver huvudstyrenheten bestå av någon form av elektronisk krets. För att man enkelt ska kunna ändra regler- och programalgoritmer behöver det finnas möjlighet för omprogrammering av kretsen. Segelroboten ska kunna befinna sig långa perioder till havs och därför bör kretsen vara strömsnål. Det är också önskvärt att man ska kunna kommunicera med styrenheten från land och att styrenheten ska kunna kommunicera med givare med hjälp av standardiserade protokoll. En mikrokontroller är en integrerad krets som innehåller en mikroprocessor, minne och diverse moduler. Moderna mikrokontrollers lagrar oftast programmet i ett flashminne och lagrar därför programmet även vid strömavbrott (Kothari & Shriram, 2012). Fördelar med mikrokontrollers är att de är enkla, billiga och har låg strömförbrukning m.m. Dessa egenskaper gör att en mikrokontroller har valts som huvudstyrenhet. 13

2.2. Val av mikrokontroller Mikrokontrollern väljs i första hand med avseende på driftsäkerhet, snabbhet och strömsnålhet. Med driftsäker menas att den ska vara anpassad för miljön den ska användas i. t.ex. klara av stora temperaturskillnader. Hur snabb den måste vara beror på programmet som den ska köra och är svårt att veta på förhand. En mycket strömsnål processorkärna på marknaden just nu är ARM Cortex M4. Atmel har en serie mikrokontrollers baserade på Cortex M4 nämligen ATSAM4. Högskolan på Åland använder Atmels mikrokontrollers i undervisningen i mikroprocessorteknik. För att göra det enklare för andra studerande att lära sig att programmera styrenheten och att fortsätta utveckla examensarbetet har Atmels ATSAM4 serie valts. En annan fördel med Atmel är att deras integrerade utvecklingsmiljö, Atmel Studio, är helt gratis. I tabell 1 görs en jämförelse mellan de för nuvarande (8.3.2014) fem mikrokontrollers i ATSAM4 serien. Tabellen är baserad på data som är taget från respektive mikrokontrollers datablad. Dessa mikrokontrollers kan i sin tur fås i olika kapslingar med olika antal pinnar. De olika kapslingarna kan ha olika mycket minne. Siffrorna som är angivna i tabell 1 är för de största kapslingarna för respektive mikrokontroller. Längst ner i tabell 1 visas vilka pin-antal som är tillgängliga för de olika mikrokontrollerna. Tabell 1. Jämförelse mellan olika ATSAM4. ATSAM4S ATSAM4N ATSAM4E ATSAM4L ATSAM G Max klockfrekvens 120MHz 100MHz 120MHz 48MHz 48MHz Flashminne 2048kbyte 1024kbyte 1024kbyte 512kbyte 256kbyte SRAM 160kbyte 80kbyte 128kbyte 64kbyte 64kbyte FPU Nej Nej Ja Nej Ja MPU Ja Ja Ja Ja Ja USART 2 3 2 4 1 UART 2 4 2 1 2 TWI 2 3 2 6 3 I2S 1 0 0 0 0 SPI 1 1 1 1 2 CAN 0 0 2 0 0 Ethernet 0 0 1 0 0 USB 2 1 0 1 1 0 Timers/counters 6 6 6 6 1 PWM 4 4 4 6 3 ADC 16 16 16 16 8 DAC 2 1 2 1 0 Aktiv förbrukning 200uA/MHz 170uA/MHz 200uA/Mhz 90uA/MHz 103uA/MHz Antal pinnar 100 64 100 64 48 144 100 14 100 64 48 100 49

Tack vare att serien har flera olika mikrokontrollers kan man börja med att göra en prototyp baserad på en av de mindre och mer användarvänliga i serien, och sedan enkelt gå över till en kraftfullare och större mikrokontroller utan att behöva lära sig en ny processorarkitektur eller ändra så mycket i programmet. ATSAM4E och ATSAM4S är de kraftfullaste men också de minst energieffektiva. ATSAM4E har två inbyggda CAN-bussmoduler, vilket gör den attraktiv med tanke på att den kan användas ihop med NMEA-2000-utrustning. NMEA-2000 är ett protokoll som främst används för navigationsutrustning och är baserat på CAN-bussen (National Marine Electronics Association, 2009). CAN-buss är ett sofistikerat seriellt gränssnitt, som är vanligt i fordon och i industrin (Eady & Huddleston, 2007). ATSAM4L är den mest energieffektiva men också den långsammaste mikrokontrollern i serien. ATSAM4L kan fås i 48, 68 och 100 pinnars kapsel. 48-pinnarsvarianten kan fås som QFP vilket är en relativt enkel kapsling att hantera för prototypbyggen. QFP-48 är lämplig p.g.a. att dess pinnar är åtkomliga för lödning med lödkolv, till skillnad från t.ex. BGA-kapseln som har pinnarna gömda undertill. I figur 2 visas som exempel en 100 pinnars BGA-kapsel för ATSAM4L. Figur 2. VFBGA100 kapseln för ATSAM4L. 15

För prototypbygget används ATSAM4L för att det är den med lägst strömförbrukning och lämpligaste kapslingen. En nackdel med ATSAM4L är att den saknar FPU, d.v.s. flyttalsenhet. Beräkningar med decimaltal blir således långsammare i ATSAM4L än i t.ex. ATSAM4E. 16

3. ATSAM4L Detta kapitel innehåller en kort introduktion till ATSAM4L och dess viktigaste funktioner. Kapitlet är en kort sammanfattning av ATSAM4L databladet. ATSAM4L kan fås i många varianter, så närmare bestämt kommer ATSAM4L2 att beskrivas, vilket är en modell med QFP48 kapseln. I bilaga 1 finns ett blockschema som visar mikrokontrollern som helhet. ATSAM4L är en 32-bitars flashmikrokontroller som är baserad på den högpresterande ARM Cortex-M4 RISC processorn, som i ATSAM4L kan köras med en klockfrekvens upp till 48 MHz. Processorn består av en processorkärna, NVIC, bussgränssnitt, debugsystem och MPU (Memory Protection Unit). Övriga funktioner i mikrokontrollern är bland annat USART, SPI, TWI, ADC, DAC och Timers (ATMEL, 2014). Som visas i bilaga 1 är processorn kopplad till övriga mikrokontrollern via en höghastighets-bussmatris. Matrisen möjliggör att flera moduler kan kommunicera parallellt, vilket gör att totala bandbredden ökar. Minne, debuggport och USB är anslutna direkt till höghastighetsbussen. Övrig kringutrustning är anslutna till höghastighetsbussen via bryggor. Det finns fyra bryggor (HSB-PB Bridge A,B,C,D) som består av egna bussar som drivs med egna klockor. Genom att driva bryggorna med lägre klockfrekvens kan man spara på strömförbrukning. Till D-bryggan är en backupdomän kopplad. Backupdomänen är alltid spänningssatt, även i de lägsta vilolägena. Den styr den interna spänningsregulatorn, watchdogtimern, m.m. I figur 3 är schemat för TQFP/QFP 48-pinnarskapseln, vilket är den minsta kapseln i ATSAM4-serien. Att använda den minsta kapseln medför naturligtvis också att antal inoch utgångar begränsas, men tack vare en komplicerad GPIO-multiplexer kan de flesta modulerna utnyttjas ändå. I bilaga 8 visas vilka funktioner som kan multiplexas till vilka pinnar. 17

Figur 3. ATSAM4L QFP 48-pinnarskapsel (ATMEL, 2014). 3.1. Strömförsörjning I bilaga 4 finns en översikt över strömförsörjningen för ATSAM4L:s olika delar. Mikrokontrollern kan matas med en enkel matningsspänning på 1,68-3,6 V som går in på pinnen VDDIN (figur 3 visar pinnarnas namn). Processorkärnan matas sedan från pinnen VDDCORE via en intern regulator som ger ut mellan 1,2 V och 1,8 V. Den interna regulatorn kan konfigureras som linjär eller switchad. Som illustreras i figur 4 är det fördelaktigare att välja switchat läge för spänningar över 2,30 V. Regulatorläge väljs med pinnen PA02. Vid uppstart avläses värdet på PA02 och regulatorläge väljs beroende på om det är låg eller hög signal. En låg signal på PA02 försätter regulatorn i linjärt läge; en hög signal på PA02 försätter regulatorn i switchat läge. Då switchat läge används måste en induktor kopplas in mellan pinnarna VDDOUT och VDDCORE. I linjärt läge ska VDDOUT och VDDCORE kortslutas. Figur 4. Interna regulatorns driftlägen (ATMEL, 2014). 18

VDDIO matar I/O-pinnar, OSC och RC-oscillatorn på 80 MHz. VDDANA matar ADC, DAC, de analoga komparatorerna, den externa oscillatorn på 32 khz, den interna oscillatorn på 32 khz, BOD18 och BOD33. Spänningen för VDDIO och VDDANA kan vara mellan 1,68-3,6 V. 3.2. Minne ATSAM4L har internt flash- och SRAM-minne, i bilaga 2 finns en karta över var i minnet olika moduler finns. I flashminnet lagras programmet men det kan också användas för lagring av data. SRAM-minnet används för lagring av data som t.ex. konfigurationsdata för olika moduler och programdata. 3.3. Viloläge ATSAM4L har fyra olika vilolägen, Sleep, Wait, Retention, och Backup och tre olika Power Scaling lägen. De olika Power Scaling -lägena används för att minska processorkärnans spänning vid låga klockfrekvenser. I bilaga 3 finns ett schema över de olika vilo- och power scaling -lägena. Då Sleep -läget används stängs endast CPU-klockan av, medan de andra klockorna är igång. I Wait -läge stängs alla klockor av men SleepWalking -funktionen är aktiv. SleepWalking är en funktion som gör att enskilda moduler kan vakna vid behov utan att CPU:n går ingång. I Retention -läge är alla klockor avstängda men SRAM-minnet är spänningssatt så ingen data eller konfiguration går förlorad. I backup-läge stängs allt utom backupdomänen av. En metod för att spara ytterligare energi är att använda DMA och PEC, vilket är moduler som möjliggör att kringutrustning kommunicerar med varandra och minnet, utan att CPU:n är inblandad. T.ex. att ADC läser värden med ett visst tidsintervall och lagrar dem i flashminnet medan CPU:n är i viloläge. 3.4. Power Manager Power Manager är en inbyggd modul som huvudsakligen hanterar klocksignaler och reset-signaler. Som figur 5 illustrerar genereras klocksignalerna i modulerna SCIF och BSCIF och tas in till PM. I PM delas huvudklockan och skickas sedan som fem synkrona klocksignaler ut till CPU, till höghastighetsbussen och till fyra kringutrustningsklockbussar. Klockorna kan köras med olika hastigheter och således kan man spara energi utan att kompromissa med CPU-prestanda. Klocksignaler och 19

oscillatorer kan stängas av med hjälp av power save mode, som hanteras från modulen BPM. PM hanterar även mikrokontrollerns alla reset-signaler och genererar reset. Figur 5. Power Manager (ATMEL, 2014). I figur 6 visas hur de synkrona klocksignalerna genereras. Med hjälp av registret MCSEL väljer man vilken klocksignal som ska användas som huvudklocka (fmain). Huvudklocksignalen går in i en delare som delar klockan i åtta steg. Med hjälp av registret CPUSEL väljer man om CPU:n ska köras med fmain delat med 2, 4, 8, 16, 32, 64, 128 eller 256. CPU:ns klockfrekvens beräknas således med formeln f CPU = f main 2 CPUSEL+1 CPU:n måste alltid ha högre eller lika hög klockfrekvens som kringutrustningsbussarna. 20

Figur 6. Generering av synkrona klocksignaler (ATMEL, 2014). Höghastighetsbussen använder samma klocka som CPU:n. Kringutrustningsbryggorna har varsitt motsvarande register till CPUSEL nämligen PBASEL, PBBSEL, PBCSEL och PBDSEL. Med de registrerarna kan man ändra klockhastigheten för de olika bryggorna. 3.5. System Control Interface System Control Interface (SCIF) är en inbyggd modul som hanterar de snabba oscillatorerna. Som figur 7 illustrerar finns det följande oscillatorer i SCIF modulen. - DFLL (Digital Frequency Locked Loop) är en intern oscillator som kan ge ut mellan 20 och 150 MHz. Den kan köras ensam eller användas som en noggrann frekvensmultiplicerare med en känd referens klocka. - PLL (Phase Locked Loop) är en intern oscillator som kan ge ut 48-240 MHz. - RC80M är en intern RC-oscillator som ger ut 80 MHz. - RCFAST är en intern RC-oscillator som ger ut 4/8/12 MHz - RCSYS är en intern oscillator som ger ut 115 khz. - OSC0 är en extern kristalloscillator som kan vara mellan 0,6 och 30 MHz. 21

Samtliga oscillatorer kan användas för att driva de interna klockbussarna eller för att driva utgångar. Figur 7. System Control Interface (ATMEL, 2014). 3.6. Backup Power Manager BPM är en modul som kan användas för att optimera strömförbrukning. Den kan också användas för att väcka upp systemet från backupläge. I figur 8 är ett blockschema över BPM. 22

Figur 8. BPM blockschema (ATMEL, 2014). BMP ger signal till den interna spänningsregulatorn och styr vilken spänning den ska ge ut. Lägre spänningar används vid lägre klockfrekvenser. 3.7. Backup System Control Interface Backup System Control Interface (BSCIF) är en inbyggd modul som hanterar de långsamma oscillatorerna, BOD, Spänningsregulatorerna och Backup-registren. I figur 9 är ett blockschema över BSCIF-modulen. Hela modulen är i mikrokontrollerns backup-domän, vilket innebär att den är spänningssatt även i backupläge. 23

Figur 9. BSCIF blockschema (ATMEL, 2014). 3.8. Memory Protection Unit, MPU MPU är en enhet som kan användas för att övervaka och skydda minnet i mikrokontrollern. Genom att beräkna en kontrollsumma kan felaktigt data i minnet upptäckas. 3.9. Watchdog Timer, WDT ATSAM4L har en inbyggd Watchdog Timer som kan användas för att återställa mikrokontrollern, om det har uppstått ett fel, som gjort att mikrokontrollern har fastnat i en oändlig slinga. Watchdog timer måste återställas av programmet med ett visst tidsintervall, annars kommer Watchdog timer att återställa mikrokontrollern. 24

3.10. Debuggning och programmering ATSAM4L kan debuggas med antingen JTAG eller SWD. JTAG är en standard för att debugga och programmera elektroniska kretsar. SWD är också en standard för att debugga och programmera men som främst används för kretsar med ett begränsat antal pinnar. För JTAG används pinnarna TCK (Test Clock), TDI (Test Data In), TDO (Test Data Out), TMS (Test Mode Select) och RESET_N. För SWD används pinnarna SWCLK (Serial Wire Clock), TRACESWO (Trace Asynchronous Data Out), SWDIO (Serial Wire Input/Output) och RESET_N. I figur 10 illustreras hur debuggningspinnarna används. Figur 10. JTAG och SWD pinnar (ATMEL, 2014). 25

4. PROTOTYPEN SRCB1 Detta kapitel innehåller en beskrivning av prototypen, hur den har tillverkats och hur man programmerar den. Prototypen SRCB1 (Sailing Robot Control Board 1) är tänkt att fungera som en enkel styrenhet för segelrobotar och för att sätta en grund för framtida styrenhetsbyggen. 4.1. Beskrivning Som figur 11 illustrerar, består SRCB1 av ett kretskort med ATSAM4L, spänningsregulator, JTAG/SWD programmeringsanslutning, reset och testknapp, GPIO, SPI, UART, AD och PWM. Spänningsmatningen till styrenheten görs med en oreglerad eller reglerad 4-20 V likspänning. ATSAM4L matas sedan via en 3,3 V regulator. Inoch utgångar till SRCB1 görs till de numrerade plintarna. I tabell 2 beskrivs in- och utgångarna. ATSAM4L är mycket flexibel så tabell 2 är endast ett förslag på hur man kan konfigurera de interna modulerna i kontrollern. I bilaga 8 illustreras vilka pinnar som kan kopplas till vilka moduler. Figur 11. Förenklat blockschema för prototypen (SRCB1). 26

Tabell 2. In- och utgångar till SRCB1. 1 Regulatorbypass 21 Ej ansluten 2 Enable ingång 22 Ej ansluten 3 4-20V in 23 Analog in 4 Jord 24 Analog in 5 GPIO-Digital 25 Analog ut 6 GPIO-Digital 26 Analog in 7 GPIO-Digital 27 Timer-A0 8 GPIO-Digital 28 Timer-B0 9 Jord 29 Timer-A1 10 Ej ansluten 30 Timer-B1 11 UART1-TXD 31 GPIO-Digital 12 UART1-RXD 32 Jord 13 SPI-NPCS2 33 Ej ansluten 14 GPIO-Digital 34 Ej ansluten 15 SPI-NPCS1 35 Ej ansluten 16 SPI-NPCS0 36 Ej ansluten 17 SPI-SCK 37 UART2-RXD 18 SPI-MOSI 38 UART2-TXD 19 SPI-MISO 39 GPIO-Digital 20 Jord 40 GPIO-Digital För inkoppling av givare kan SPI-bussen användas. Upp till 6 olika givare kan kopplas in på samma buss. GPIO kan användas för enklare digitala signaler t.ex. för uppväckning av externa enheter. Det finns även tre analoga ingångar och en analog utgång. UART kan användas för seriell kommunikation med andra styrenheter och givare. Timern kan användas för att generera eller läsa av PWM-signaler m.m. Kretskortet är tänkt att byggas in i en lämplig låda, t.ex. en vattentät aluminiumlåda för att skydda mot fukt och även elektromagnetiska störningar. 27

4.1.1. Data Om ATSAM4L konfigureras enligt tabell 2 får man databladet för SRCB1 i tabell 3. Tabell 3. Datablad för SRCB1. CPU Max CPU Frekvens Internt Flashminne Internt RAM USART port SPI buss PWM in/utgång Digitala in/utgångar Analoga ingångar Analoga utgångar Temperaturområde Atmel ARM Cortex SAM4L2AA 48 MHz 128 kbyte 32 kbyte 2 st 3 st 2 st 8 st 3 st 1 st -40 o C till 80 o C 4.1.2. Kretskortet Kretskortet är designat i programmet Ultiboard. Figur 12 visar en 3D-modell av det färdiga kretskortet. Det är ett dubbelsidigt kretskort med måttet 100x75 mm. I bilaga 7 är det färdiga mönstret för över- och undersidan. Figur 12. 3D-modell av prototypen (genererad i Ultiboard). 28

4.1.3. Tillverkning Mönstret, som designades i Ultiboard, skrevs först ut på en plastfilm. Plastfilmen för de båda lagren sattes fast på övre och undre sidan respektive av ett dubbelsidigt laminat med färdigt belagt positiv fotoresist. Sedan belystes laminatet med en vanlig skrivbordslampa i ungefär 7 minuter. Det som händer med fotoresisten då den exponeras är att den härdas så att den kan framkallas bort (Johansson, 1998). Mönstret framkallades sedan i en 30 o C natriumhydroxidlösning. Laminatet sköljdes sedan noggrant av med vatten och inspekterades. Kopparfolien hade framträtt tydligt och den delen som skulle vara täckt med fotoresist var hel. Inga modifikationer behövde göras. Kortet etsades sedan i ungefär 30 minuter i en tank med en 50-60 o C järnkloridlösning. För att föra bort etsade kopparrester och tillföra ny etsvätska användes en tank med tryckluftstillförsel. Efter etsningen sköljdes mönsterkortet noggrant av med aceton och vatten. Därefter granskades kortet och det konstaterades att de större kopparytorna med fotoresist hade börjat etsas, men i övrigt hade etsningen lyckats bra. Hålen för de hålmonterade komponenterna och viahålen borrades sedan med en volframkarbidborr. Förbindelsen mellan övre och undre lagret i hålen gjordes med en koppartråd som löddes på övre och undre sidan. De hålmonterade komponenterna löddes på både övre och undre sidan. Mönsterkortet rengjordes noggrant med isopropylalkohol och sedan flussmedel. Komponenterna löddes sedan med vanligt 60/40 Sn/Pb lödtenn och lödkolv. Lödningen inspekterades till slut med mikroskop. I figur 13 är ett fotografi av det färdiga prototypkortet. 29

Figur 13. Fotografi av det färdiga prototypkortet. 4.2. Komponenter I första hand har komponenter med någon ytmonteringskapsel valts, eftersom de är mindre och möjliggör en mer komplicerad kretskortsdesign på en mindre yta. 4.2.1. Mikrokontroller Valet av mikrokontroller beskrevs i inledningen. Den har valts med avseende på driftsäkerhet, snabbhet och strömsnålhet. Mikrokontrollern som används för prototypen är en ATSAM4LS2AA-AUR. Den har 128 kbyte flashminne och 32 kbyte RAMminne. Kapslingen är TQFP-48. 4.2.2. Programmeringsanslutning För programmering av ARM cortex-m4-processorn kan man använda sig av antingen SWD eller JTAG. Det finns färdiga programmerare för detta, som även klarar av debuggning av processorn och mikrokontrollern. Atmel har en egen programmerare för sina ATSAM4-kretsar, nämligen Atmel SAM-ICE. För att ansluta den till kretskortet används en standard 20-pinnars IDC-anslutning. 4.2.3. Strömförsörjning Som matningsspänning har 3,3 V valts eftersom det är en standardspänning, som även kan användas för matning av givare etc. 30

På kretskortet finns en linjär spänningsregulator som matar mikrokontrollern och övrig utrustning med 3,3 V. Det är en SPX3819 från EXAR. Den har lågt spänningsfall, lite rippel och möjlighet att gå i viloläge. Den kan fås i en lämplig 5-pinnars SOT-23- kapsel. Utspänningen kan väljas beroende på hur den är kopplad. I figur 14 är ett exempel från dess datablad. Utspänningen beräknas med formeln V OUT = 1.235V (1 + R 1 R 2 ) Enligt databladet måste R2 vara högre än 10 kω och R2 borde vara mellan 22 kω och 47 kω för att få optimalt resultat. För att få 3,3V kan man t.ex. använda motståndsvärdena R1 = 50 kω och R2 = 30 kω. Dessa motståndsvärden finns dock inte i E12 serien. Figur 14. Schema över regulatorkoppling (Exar, 2014). Enable ingången används för att externt stänga av spänningsregulatorn helt. Mikrokontrollern stängs av och strömförbrukningen går då nära noll. Med enablesignalen till spänningsregulatorn kan en yttre enhet starta och stoppa mikrokontrollern vid behov. För att spara ström kan man dock hellre använda mikrokontrollerns interna vilolägen. Om man tar bort byglingen J3 kan man mata kortet direkt med 3,3 V. Spänningsregulatorn på kortet används inte alls då och förbrukar ingen ström. 31

4.2.4. SPI-buss ATSAM4L har en inbyggd SPI-modul som kan användas för att kommunicera i mastereller slavläge med upp till 6 givare. I figur 15 är ett blockschema för SPI-modulen. Till höger i figuren är pinnarna till modulen. Förklaringar: - SPCK är klocksignal för bussen. - MISO (Master In Slave Out) är data in till master och ut från slaven. - MOSI (Master Out Slave In) är data ut från master och in till slaven. - NSS (Slave Select) används för att aktivera styrenheten om den används som SPI-slav. - NPCS används för att aktivera slavar, om styrenheten används som master Figur 15. SPI-modul (ATMEL, 2014). Med NPCS0 till NPSC3 väljer man vilken slav som ska sända. NSS används då ATSAM4L fungerar som slav. 4.2.5. USART Det finns möjlighet att använda två UART-moduler för kommunikation med extern utrustning som t.ex. andra mikrokontrollers och givare. 4.2.6. Övrigt För enkla testfunktioner finns det en tryckknappsbrytare och en lysdiod på kretskortet. 32

4.3. Mätning av strömförbrukning ATSAM4 kan konfigureras på många olika sätt och har flera olika driftlägen och vilolägen. Strömförbrukningen beror därför mycket på vilket program man kör. Några mätningar för typiska driftlägen gjordes. 4.3.1. Mätning i tomgång Spänningsregulatorn drar ström även fast den inte är inkopplad till något. Bygling J3 togs bort och mätningen i tabell 4 gjordes. Det kan konstateras att spänningsregulatorn drar mer i tomgång än vad mikrokontrollern gör i viloläge. Tabell 4. Mätning i tomgång. Matningsspänning Matningsström Effektförbrukning 5,0 V 0,10 ma 0,5 mw 4.3.2. Mätning i normaldrift Med J3 byglingen inkopplad och spänningsregulatorn i drift gjordes mätningen i tabell 5. Mätningen gjordes under förhållanden som motsvarar normal drift. Tabell 5. Mätning i normal drift. Power Save Mode Run Power Scaling 1 Klockfrekvens 36 MHz Spänning före regulator 5,0 V Spänning efter regulator 3,2 V Matningsström före regulator 11,14 ma Matningsström efter regulator 11,01 ma Effektförbrukning SRCB1 55 mw Effektförbrukning ATSAM4L 35 mw 4.3.3. Mätning i Wait-läge Mätningen i tabell 6 gjordes i viloläge. Matningsströmmen blev då 0,19 ma, varav spänningsregulatorn drar 0,1 ma. 33

Tabell 6. Mätning i Wait-läge. Power Save Mode Run Power Scaling 1 Klockfrekvens 36 MHz Spänning före regulator 5,0 V Spänning efter regulator 3,2 V Matningsström före regulator 0,23 ma Matningsström efter regulator 0,13 ma Effektförbrukning SRCB1 1,15 mw Effektförbrukning ATSAM4L 0,65 mw 34

5. PROGRAMMERING Programmering av prototypen görs med programmeraren och JTAG-emulatorn SAM- ICE, som ansluts till 20-pinnars IDC:n på kretskortet. Atmel Studio används för att skriva programmet och även för att debugga och programmera prototypen. För att göra det mycket enklare kan man använda Atmel Software Framework (ASF), vilket är ett mjukvarubibliotek som innehåller färdiga drivrutiner för Atmel-kretsar. Med hjälp av ASF Wizard i Atmel Studio kan man ladda in moduler för t.ex. USART och SPI. ASF möjliggör även att man enkelt kan använda samma kod för olika MCU:er. Vid debuggning kan det uppstå problem p.g.a. att programmet optimeras av kompilatorn, vilket t.ex. kan medföra att variabler som används för debuggning optimeras bort. För att undvika detta, stänger man av optimeringen genom att trycka Alt + F7 och gå in under ARM/GNU C Compiler, Optimization och ändra optimization level till None. 5.1. Exempelprogram 1 LED I det här exempelprogrammet används programspråket C och Atmel Studio version 6.2.993 Beta. För att skapa ett nytt projekt i Atmel Studio trycker man på file new project sedan väljer man programspråk. Efter att man har valt nytt projekt väljer man ett namn på projektet och trycker sedan OK. Sedan väljer man Device Family till SAM4. I listan väljer man ATSAM42L och User Board Template ATSAM4LS2A. Nu är projektet skapat, men om ASF ska användas måste modulerna man behöver, laddas in. Man trycker på fliken ASF och ASF Wizard. Sedan läggs modulerna Generic board support till (om den inte redan är vald), IOPORT och GPIO. Därefter trycker man på apply. Eftersom oscillatorerna OSC0 och OSC32 är externa måste de definieras för att programmet ska kunna beräkna tider och klocksignaler rätt. Även fast de inte används 35

ger preprocessorn felmeddelande om definitionerna saknas. I filen conf_board.h behövs följande kod: #define BOARD_OSC0_HZ 12000000 #define BOARD_OSC0_STARTUP_US 1100 #define BOARD_OSC0_IS_XTAL false #define BOARD_OSC32_IS_XTAL #define BOARD_OSC32_STARTUP_US false 1000 #define BOARD_OSC32_HZ 32768 Direkt efter, läggs följande makro till för lysdioden och användarknappen på kortet. // Define makro for board led and userbutton #define LED IOPORT_CREATE_PIN(IOPORT_GPIOA, 21) #define USERBUTTON IOPORT_CREATE_PIN(IOPORT_GPIOA, 22) Pinnarna måste ställas in så att LED-pinnen är utgång och användarknappen ingång. I funktionen board_init i init.c, läggs följande kod till: // Set LED pin to output ioport_set_pin_dir(led, IOPORT_DIR_OUTPUT); // Set USER_BUTTON to input ioport_set_pin_dir(userbutton, IOPORT_DIR_INPUT); Man går sedan till main funktionen och kontrollerar att board_init() finns med. Efter den läggs följande kod till: bool value = 0; while(1) { } value = ioport_get_pin_level(userbutton); ioport_set_pin_level(led,!value); Man trycker sedan på fliken build och build solution. Om det inte är några fel i programmet, ansluts SAM-ICE på kortet och i datorn och installeras. Man trycker på tools och device programming sedan väljer man antingen JTAG eller SWD som interface och därefter trycker man på memories och program. Nu borde programmet vara överfört. Då programmet är igång ska lysdioden tändas då man trycker på användarknappen. 36

6. DISKUSSION Målet med examensarbetet var att designa och utvärdera en styrenhet som ska vara lämplig att användas i en segelrobot. Mikrokontrollern ATSAM4L har visat sig vara lämplig för ändamålet och en prototyp har byggts som delvis uppfyller målen. Det kan dock behövas en hel del förbättringar för att styrenheten ska kunna ersätta Raspberry Pi. En nackdel med prototypen är bland annat att den har så begränsad mängd flashminne, endast 32 kb. Som tidigare har nämnts, har prototypen byggts med den minsta kapseln i ATSAM4L-serien och därför kan man enkelt utveckla och lägga in en större ATSAM4 och därmed få mera in- och utgångar. Minnet kan man lätt utöka om man gör en ny prototyp, genom att antingen använda ett seriellt minne eller om man använder en ATSAM4 med möjligheten att koppla in en extern minneskrets på mikrokontrollerns höghastighetsbuss. En annan nackdel med prototypen, upptäcktes då strömförbrukningen mättes. Det konstaterades att spänningsregulatorn förbrukar 0,1 ma på tomgång, vilket innebär att fördelen med mikrokontrollerns låga strömförbrukning inte helt kan utnyttjas. Om mikrokontrollern i backupläge förbrukar 10 µa kommer fortfarande regulatorn att förbruka 0,1 ma. För vidare utveckling av styrenheten borde en annan spänningsregulator väljas. Ett sätt att kringgå denna nackdel med prototypen, är att ta bort J3-byglingen och driva kretskortet med en externt reglerad 3,3 V spänning. Största delen av examensarbetet har gått till att studera manualen för mikrokontrollern. Därför kan det ta lång tid att sätta sig in i hur mikrokontrollern fungerar, och därmed kan det vara svårt för flera studerande och lärare att samarbeta med utvecklingen. 37

KÄLLOR ATMEL. (2014). ATSAM4L datablad. Hämtat från ATMEL: http://www.atmel.com/images/atmel-42023-arm-microcontroller-atsam4l- Low-Power-LCD_Datasheet.pdf Eady, F., & Huddleston, C. (2007). The Essence of Microcontroller Networking: RS- 232. i J. G. Ganssle, Embedded hardware (s. 537). Burlington, MA, USA : Newnes. Exar. (2014). SPX3819 datablad. Hämtat från Exar: http://www.exar.com/common/content/document.ashx?id=615 Granlund, F. (2013). Nyheter. Hämtat från Ålands sjöfart: http://www.sjofart.ax/sv/nyheter/de_ska_bli_forst_i_varlden_med_att_segla_till _usa_med_en_robotbat/730 Johansson, E. (1998). Mönsterkort - från CAD till kort. Eskilstuna: Industrilitteratur AB. Kothari, D., & Shriram, K. S. (2012). Embedded Systems. Daryaganj, IND: New Age International. Microtransat. (2014). The Microtransat Challenge. Hämtat från Microtransat: http://www.microtransat.org/ National Marine Electronics Association. (2009). www.nmea.org. Hämtat från NMEA: http://www.nmea.org/assets/20090423%20rtcm%20white%20paper%20nmea% 202000.pdf 38

BILAGA 1 - Blockschema för ATSAM4L

BILAGA 2 - ATSAM4L minne

BILAGA 3 Vilolägen

BILAGA 4 - ATSAM4L strömförsörjningsöversikt

BILAGA 5 - Kretsschema för prototypen

BILAGA 6 Komponentlista Antal Beskrivning RefDes 1 Regulators, SPX3819 U2 1 CAPACITOR, 100nF C5 1 CAPACITOR, 10µF C3 1 RESISTOR, 30kΩ R3 1 RESISTOR, 10kΩ R1 3 CAPACITOR, 22µF C2, C6, C8 7 CAPACITOR, 100nF C1, C4, C7, C9, C10, C11, C12 1 Oscillators, Crystal32768 X1 10 Connnectors, Terminal4pin2.5mm P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 2 INDUCTOR, 22µH L1, L2 3 RESISTOR, 47kΩ R5, R6, R8 1 Regulators, Jumper3pin J1 1 RESISTOR, 100kΩ R2 1 RESISTOR, 520Ω R7 2 Oscillators, SMDknapp B1, B2 1 RESISTOR, 47Ω R4 1 LED, SMDLED LED1 7 Connnectors, Testpoint TP1, TP2, TP3, TP4, TP5, TP6, TP7 2 Regulators, Jumper J2, J3 1 Connnectors, ARM_JTAG_CONNECTOR_SCH CONN1

BILAGA 7 Mönsterkort Övre sida Undre sida

BILAGA 8 GPIO