173
Diplomarbeit HuBi Hummingbird HTL Rankweil 2011/12

Dokumentation it Hummingbird 2011 12

Embed Size (px)

Citation preview

Diplomarbeit HuBi Hummingbird HTL Rankweil 2011/12 Diplomarbeit HuBi Hummingbird Flugobjekt mit vier Propellern HTL Rankweil 2011/12 Projektteam (Schler) Ausgefhrt im Schuljahr 2011/12 von:Betreuer/Betreuerin: Martin Bitschnau5AHELTProf. Dipl.-Ing. Stttler Christoph Samuel Durig5AHELT Manuel Fleisch5AHELT Rankweil, am ________________ Eidesstattliche Erklrung Ich versichere an Eides statt, dass ich die entsprechend gekennzeichneten Teile der vorliegenden Diplomarbeit selbstndig verfasst, keine anderen als die angegebenen Quellen undHilfsmittelbenutzt,sowieallewrtlichodersinngembernommenen Stellen in der Arbeit gekennzeichnet habe. FernergestatteichderHherenTechnischenLehr-undVersuchsanstaltRankweil (HTL),dievorliegendeDiplomarbeitunterBeachtungdatenschutz-und wettbewerbsrechtlicher Vorschriften fr Lehre und Forschung zu benutzen. Declaration of Oath Ideclarebyoaththatallaccordinglyindicatedpartsofmythesis(diploma)were independentlywrittenbymyself,nootherthantheindicatedsourcesandaidshave been used and that all parts of the thesis which have been taken over, either literally orinageneralmanner,havebeenaccordinglyindicated.FurthermoreIpermitthe HigherTechnicalCollegeandLaboratory(Rankweil)(HhereTechnische Bundeslehr-undVersuchsanstaltRankweil-HTL)tousethethesis(diploma)for teachingandresearch,payingattentiontodatasecurityandcompetitionprotection regulations. Rankweil, am ______________ Martin BitschnauSamuel DurigManuel Fleisch DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin BitschnauSeite 4 Abstract (Deutsch) Ziel des Projektes ist es zunchst eine leichte und zugleich stabile Konstruktion zu entwerfen, die mittels mehrerer Propeller angetrieben in der Luft schweben soll. Es werden je zwei linksdrehende und je zwei rechtsdrehende Propeller verwendet, um einer Drehung um die eigene Achse entgegenzuwirken. Der Einsatz von entsprechenden Sensoren soll etwaige Neigungen des Objektes detektieren. Mit einem Mikrocontroller sollen diese unerwnschten Schrglagen durch entsprechende Ansteuerung der vier Motoren ausgeglichen werden. Der Mikrokontroller, welcher die Sensordaten auswertet, errechnet die bentigten Drehzahlen der vier Motoren und gibt diese ber eine RS232 Schnittstelle an die vier Mikrocontroller weiter. Diese schicken ein von der vorgegebenen Drehzahl abhngiges PWM-Signal an die Leistungsstufen, welche die Phasen eines Motors ber drei Halbbrcken ansteuern. Optional soll das Flugobjekt mittels eines Bedienelements gesteuertwerden knnen. Abstract (Englisch) The main aim of our project is to construct a light and as well solid construction, which is able to fly with four airscrews. We are using two right-handed airscrews in one diagonal and two left-handed airscrews in the other diagonal to avoid a rotation around the own axis. The use of suitable sensors should reveal any gradients of the object. A microcontroller should compensate the undesirable slopes by appropriate controlling of the four motors. The microcontroller, who analyses the sensor information, calculates the required rotation speed of the four motors and passes the dates through a RS232 interface on to the four microcontrollers. They send a PWM-signal, which depends on the given rotation speed, to the gate driver, who controls the phases of a motor through three half bridges. It may also be possible to control the flying object by using a control element. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin BitschnauSeite 5 Kurzbeschreibung BeimProjektHummingbirdgiltes,einFlugobjektzuentwickeln,welchesmittelsvier PropellerinderLuftstehensollte.DievonBrushlessmotorenangetriebenenLuftschrauben sindzweimalineinerlinksdrehendenundzweimalineinerrechtsdrehendenBauform vorhanden.UmeinerDrehungumdieeigeneAchseentgegenzuwirken,werdenimmerdie zweiLuftschraubeneinerBauformineinerDiagonalenunddiezweiLuftschraubender anderenBauforminderanderenDiagonaleangeordnet.Montageflchebietetdabeiein leichtesAluminiumgerstmitquadratischerPlatteinderMitte.AnjederEckedieserPlatte befinden sich in die Mitte gerichtete hohle Vierkantstangen, die nach auen verlaufen, wo die Motoren mit Luftschrauben platziert sind. JederdervierMotorenwirdvoneinemeignenMikrokontrollerangesteuert,dereine Annherung von drei um 120verschobenen Sinussignalen ausgibt, die zustzlich mit einer Pulsweitenmodulation behaftet sind, deren Duty-Cycle sich proportional der Drehzahl ndert. ZwischenMikrocontrollerundBrushlessmotorbefindetsicheineLeistungsstufefrdiedrei Halbbrcken,diefrdieSpannungsversorgungderdreiPhasenderMotorenbentigt werden.DerGate-Treiberwirdbentigt,damitfrdenoberenderbeidenN-Kanal Transistoren,mittelsBootstraptechnik,einegeeignethoheSpannungsdifferenzzwischen Gate und Source erzeugt werden kann. Damit der zwischen Drainund Source des Highside-FetsliegendeBootstrapkondensatordiebentigteSpannungzurVerfgungstellenkann, mussdieserregelmigaufgeladenwerden,wasbeiniedrigenDrehzahleneinProblem darstellt,welchesmittelsgeeignetenAnsteuerprogrammsderBrushless-Control-Unitzu bewltigenist.MitGyro-undBeschleunigungssensorenknnen GeschwindigkeitsnderungeninSpannungsnderungenumgewandeltwerden,welchemit dem Analog/Digital-Wandler der Hauptsteuereinheit erfasst und ausgewertet werden knnen. DerMikrocontrollerderHauptsteuereinheit,einAtmega16,errechnetsichausdenWerten derSensorendientigenindividuellenDrehzahlendervierMotorenundbermitteltdiese InformationbereineSPI-SchnittstelleandenMikrocontrollerderBrushlessControlUnit, welche daraus das ntige Signal fr den Motor erzeugt. Diese individuelle Ansteuerung der einzelnenRotorensolldasFlugobjektHummingbirdtrotzetwaigenkleinerenStrungen stabil in der Luft halten. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin BitschnauSeite 6 Short Description The chief aim of the Project Hummingbird is to develop a flying object, which can be hold in the air with four airscrews. The airscrewsare powered by brushless motors and are existing intwodifferentconstructionforms.Twoairscrewsareforananticlockwiserotationandthe othertwoare foraclockwiserotation. Onetypeoftheairscrewsisfittedinadiagonalway andtheotherconstructionformisfittedintheotherdiagonalway.Thispositioningofthe airscrewsshouldpreventarotationaroundtheownaxisoftheflyingobject.Theframeof Hummingbird is made out of aluminium. There are four rectangular and concave rods formed toacrossandfixedinthemiddlewithashapedaluminiumsheetonbothsides.Atthe outsideoftheconcaverodsthebrushlessmotorswiththeairscrewsareplacedinthe mentioned way. Eachofthefourmotorsiscontrolledbyaownmicrocontrollerwhichprovidesadigital approximationofthreesine-shapedsignals,whicharephase-shiftedabout120.Theyare alsopulsewidthmodulatedwithadutycycleproportionaltotherotatingspeedofthe brushless motors.Between the microcontroller and the motors there is a power stage for the three half bridges which are required for the three windings of the brushless motor.The gate driver is needed for the upper one of the two n-channel MOSFETs to afford a high enough potentialdifferencebetweenthegateandthesource.Sothatthebootstrapcapacitor between drain and source con provide this needed potential it must be reloaded especially in a low speed mode to ensure a correct switching of the high-side FET. This has to be solved withasuitablecontrolprogram. Withgyro-andaccelerationsensorsalternatingspeedcan bedetectedandtransformedinpotentialalternation,whichiscapturedanalysedbythe analogue-digital converter of the central control unit. The used microcontroller for the central control unit is an Atmega16. His function is to calculate the desired rotating speed for each of thefourmotorsfromtheinformationgivenfromthesensors.Thenitshouldcommunicate withthebrushlesscontrolunitoveraSPI-interface.Withthisinformationthebrushless control unit can generate the required control signal for the motor. This individual controlling of each motor should stabilize the flying object despite some possible disturbances.

DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin BitschnauSeite 7 DIPLOMARBEIT HUMMINGBIRD 2011/12 Seite 8 Inhaltsverzeichnis 1.Pflichtenheft ....................................................................................................... 13 1.1Einleitung ..................................................................................................... 13 1.1.1Projektname .......................................................................................... 13 1.1.2Projektteam und Betreuungslehrer ....................................................... 13 1.1.3Problemstellung .................................................................................... 14 1.1.4Zielsetzung ............................................................................................ 14 1.1.5Zweck und Einsatzgebiet ...................................................................... 15 1.1.6Bezugsunterlagen ................................................................................. 15 1.1.6.1Geforderte Unterlagen ....................................................................... 15 1.1.6.2Bezugsquellen ................................................................................... 16 1.2Blockschaltbild ............................................................................................. 17 1.2.1Flugsteuerung ....................................................................................... 18 1.2.2Motoransteuerung ................................................................................. 18 1.2.3Mechanik............................................................................................... 18 1.3Technische Leistungsbeschreibung ............................................................ 19 1.3.1Technische Beschreibung ..................................................................... 19 1.3.1Beschreibung der Komponenten ........................................................... 19 1.3.2Erweiterungsmglichkeit ....................................................................... 19 1.4Projektmanagement .................................................................................... 20 1.4.1Einteilung der Spezialgebiete ................................................................ 20 1.4.2Umfeldanalyse ...................................................................................... 21 2.Projektteam ........................................................................................................ 23 2.1Vorstellung der Projektmitglieder ................................................................. 23 2.1.1Martin Bitschnau ................................................................................... 23 2.1.2Samuel Durig ........................................................................................ 24 2.1.3Manuel Fleisch ...................................................................................... 25 DIPLOMARBEIT HUMMINGBIRD 2011/12 Seite 9 2.2Vorstellung des Projektbetreuers................................................................. 26 3.Motoransteuerung .............................................................................................. 27 3.1Brushless-DC-Motor .................................................................................... 27 3.1.0Einfhrung............................................................................................. 27 3.1.0.1Sensorgesteuerte Kommutierung ...................................................... 28 3.1.0.2Sensorlose Kommutierung ................................................................ 29 3.1.1Einsatzbereich ...................................................................................... 29 3.2Schaltung zur Ansteuerung ......................................................................... 30 3.2.1Blockschaltbild ...................................................................................... 30 3.2.2MOSFET-Treiberbaustein HIP4081A .................................................... 31 3.2.2.1Allgemeines ....................................................................................... 31 3.2.2.2Pinbelegungen ................................................................................... 32 3.2.3Halbbrcke ............................................................................................ 34 3.3Komplette Schaltungsrealisierung ............................................................... 35 3.3.1Beschreibung der einzelnen Schaltungsteile ........................................ 36 3.3.1.1Bootstrep-Spannung .......................................................................... 36 3.3.1.2Stabilisation des MOSFET-Treiberbausteins ..................................... 39 3.3.1.3Einstellung der Einschaltverzgerung................................................ 40 3.3.1.4Verschaltung der 3 Halbbrcken........................................................ 41 3.4Fertigung der Motoransteuerung ................................................................. 42 3.4.1Schaltplan ............................................................................................. 42 3.4.2Bestckungsplan ................................................................................... 43 3.4.3Bohrplan................................................................................................ 44 3.4.4Layout ................................................................................................... 45 3.4.5Stckliste............................................................................................... 46 3.4.6Komplettierung/Fertigstellung ............................................................... 48 3.5Messungen .................................................................................................. 49 3.5.1Spannungen: High-Side-Input & Low-Side-Input .................................. 49 3.5.2Spannungen: High-Side-Input fr alle 3 Phasen ................................... 50 3.5.3Spannung: Low-Side-Output ................................................................. 51 3.5.4Spannung: High-Side Output ................................................................ 52 DIPLOMARBEIT HUMMINGBIRD 2011/12 Seite 10 3.5.5Spannung: Output A (BLDC Input A) .................................................... 53 3.5.6Bootstrep-Spannung ............................................................................. 54 4.Ansteuerung der Leistungsstufe ........................................................................ 55 4.1Allgemeines ................................................................................................. 55 4.2Brushless Control Unit ................................................................................. 59 4.2.2Allgemeines .......................................................................................... 59 4.2.3Stckliste............................................................................................... 60 4.2.4Schaltplan ............................................................................................. 62 4.2.4.1Sockel ................................................................................................ 63 4.2.4.2Spannungsversorgung ....................................................................... 63 4.2.4.3Resetbeschaltung .............................................................................. 65 4.2.4.4Quarz ................................................................................................. 68 4.2.4.5LED .................................................................................................... 74 4.2.4.5.1 Berechnung des Vorwiderstandes ... Error! Bookmark not defined. 4.2.4.6ISP ..................................................................................................... 76 4.2.4.6.1 Kabel ............................................................................................ 79 4.2.4.7PORTS .............................................................................................. 80 4.2.4.8Bestckungsplan ............................................................................... 83 4.2.4.9Bohrplan ............................................................................................ 84 4.2.4.10Layout ............................................................................................. 85 4.3Brushless Control Software ......................................................................... 87 4.3.1Simulator ........................................................................................... 87 4.3.2Programmieren der Brushless Control Unit ....................................... 92 4.3.2.1Anschlieen des AVR Dragon ........................................................ 92 4.3.2.2Verbindung zwischen AVR Dragon und AVR Studio ...................... 93 4.3.2.3Programm auf Brushless Control Unit laden .................................. 97 4.3.2Software fr Brushless Control Unit ................................................... 99 4.3.2.1Grundidee .......................................................................................... 99 4.3.2.2Beschreibung des 16bit Timer/Counter1 ......................................... 103 4.3.2.3Programmcode ................................................................................ 108 DIPLOMARBEIT HUMMINGBIRD 2011/12 Seite 11 4.3.2.3.1Ausgeben des Bitmusters ............................................................. 108 4.3.2.3.1.1 Erklrung des Programmcodes ................................................... 110 4.3.2.3.1.2 Optimierung der Bitmusterausgabe ............................................. 115 4.3.2.3.2Implementierung der Pulsweitenmodulation ................................. 118 4.3.2.3.3Anpassung der PWM an die Motordrehzahl ................................. 119 4.3.2.3.4Nachladen des Bootstrapkondensators ........................................ 125 4.3.2.3.4.1 Optimierung der Bootstrapkondensatornachladung .................... 128 4.3.2.3.5Signalanpassung fr eine Rckmessung ..................................... 128 5.Gyrosensorplatine ............................................................................................ 133 5.1Allgemeines ............................................................................................... 133 5.2Gyrosensor ................................................................................................ 133 5.3Die Beschaltung ........................................................................................ 135 5.4Aufbau ....................................................................................................... 137 5.4.2Layout ................................................................................................. 138 5.4.3Bestckungsplan ................................................................................. 140 5.4.4Bohrplan.............................................................................................. 141 5.4.5Stckliste............................................................................................. 142 5.5Messung .................................................................................................... 143 6.Drei-Achsen Beschleunigungssensor .............................................................. 144 6.1Allgemeines ............................................................................................... 144 6.2Aufbau ....................................................................................................... 145 6.3Messung .................................................................................................... 146 7.Spannungsversorgung ..................................................................................... 152 7.1Allgemeines ............................................................................................... 152 7.2Beschaltung ............................................................................................... 153 7.3Aufbau ....................................................................................................... 154 7.3.1Layout ................................................................................................. 155 7.3.2Bestckungsplan ................................................................................. 156 7.3.3Bohrplan.............................................................................................. 157 7.3.4Stckliste............................................................................................. 158 8.Fluggestell ........................................................................................................ 159 DIPLOMARBEIT HUMMINGBIRD 2011/12 Seite 12 8.1Allgemeines ............................................................................................... 159 8.2Aluminiumblech ......................................................................................... 160 8.3Ausleger .................................................................................................... 163 8.4Motorbefestigung ....................................................................................... 163 9.Software ........................................................................................................... 165 9.1BL-Regleransteuerung .............................................................................. 165 9.1.2Includes, Variablen ............................................................................. 166 9.1.3Interruptroutine .................................................................................... 167 9.1.4Initialisierung ....................................................................................... 167 9.1.5Hauptschleife ...................................................................................... 168 10.Abbildungsverzeichnis .................................................................................. 169 11.Anhang ......................................................................................................... 173 11.1Danksagung .............................................................................................. 173 DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 13 1. Pflichtenheft 1.1Einleitung BeimProjektHummingbirdhandeltessichumeinFlugobjektmitvier Luftschrauben, welches mithilfe von Sensoren stabil in der Luft gehalten wird. 1.1.1 Projektname DasProjekttrgtdenNamenHummingbird(vomenglischen:Kolibri, Seglervogel),wassovielbedeutetwieeinsenkrechtstartendesFlugobjektmit vierProbellern. 1.1.2 Projektteam und Betreuungslehrer Schule: HTL Rankweil / Telekommunikation Klasse: 5AHELT Team: Martin Bitschnau Samuel Durig Manuel Fleisch Betreuender Lehrer: Prof. Dipl.-Ing. Christoph Stttler In Zusammenarbeit mit: HTL Rankweil Negrellistrae 50 6830 Rankweil DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 14 1.1.3 Problemstellung Einfernsteuerbares,frdenSenkrechtstarttauglichesFlugobjektistzu entwickeln. Es soll mit vier Luftschrauben/Probeller in der Luft schweben, ohne dass es durch uerliche Einflsse beeinflusst wird. Dies solldurch sogenannte Gyro- und Beschleunigungssensoren realisiert werden. 1.1.4 Zielsetzung Ziel des Projektes ist es zunchst eine leichte und zugleich stabile Konstruktion zuentwerfen,diemittelsmehrererPropellerangetriebeninderLuftschweben soll.EswerdenjezweilinksdrehendeundjezweirechtsdrehendePropeller verwendet,umeinerDrehungumdieeigeneAchseentgegenzuwirken.Der EinsatzvonentsprechendenSensorensolletwaigeNeigungendesObjektes detektieren.MiteinemMikrocontrollersollendieseunerwnschtenSchrglagen durch entsprechende Ansteuerung der einzelnen Propeller ausgeglichen werden. OptionalsolldasFlugobjektmittelseinesBedienelementsgesteuertwerden knnen. DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 15 1.1.5 Zweck und Einsatzgebiet DasferngesteuerteFlugobjektdientalsGertetrgerfrKameraszumFilmen vonLandschaftsaufnahmen,Sportevents,sowieanderendiversen Veranstaltungen.EbensoknneneventuelleUmweltsensorenoderhnliches daraufmontiertwerden,umbeischwererreichbarenUmgebungendiverse Messungen durchzufhren. 1.1.6 Bezugsunterlagen 1.1.6.1Geforderte Unterlagen -Pflichtenheft -Projektplanung - Projektrecherche -Projektdokumentation bestehend aus: oAufzeichnung der durchgefhrten Arbeiten mit Datum und Zeitaufwand Projektabhngige Dokumente Technische Daten und Benutzerhandbuch Kurzbeschreibung des Projektes in englischer und deutscher Sprache Dokumentation der Testflge -Prsentation des Projektes in HTML-Format zwecks Verffentlichung im Internet auf der HTL-Homepage -Dokumentation inklusive aller Hilfsprogramme und Dateien (PDF-, etc.) auf Datentrger (CD) DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 16 1.1.6.2Bezugsquellen DasInternetwurdebeidenRecherchenundderDurchfhrungdesProjektsam meistenverwendet.SeiesumdiverseInformationenbezglichhnlicher AufbautenvonFlugobjektenzubekommen,umsichberEigenschaftenvon Bauteilen(Sensoren,TreiberbausteinefrBrushless-Motoren,etc.)zu informierenoderInformationenbezglichderProgrammierungzuerhalten.Zur BeantwortungvonFragenundderUntersttzungstandenverschiedeneLehrer zur Verfgung, besonders hervorzuheben ist natrlich der Projektbetreuer. DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 17 1.2Blockschaltbild Abb. 1: Blockschaltbild Hummingbird DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 18 1.2.1 Flugsteuerung DieFlugsteuerungmiteinemATMEGA161wertetdieSignalederdrei GyorsensorenunddesBeschleunigungssensorsausundrechnetdarausdie erforderlichenDrehzahlenfrjedenBrushless-Motor,umdasFlugobjektzu steuern. 1.2.2 Motoransteuerung EineMotoransteuerungerzeugtdiebentigtenDrehfelderfrdieMotoren.Die LeistungsstufebestehtausjeweilsdreiHalbbrcken,dievoneinemMOSFET-Treiber (HIP4081A2) gesteuert werden, welcher mit einem ATMEGA83 geschaltet wird. 1.2.3 Mechanik DaskreuzfrmigeFluggestellbestehtausAluminiumprofilen,welchedurch gefrste Blech-elemente zusammengehalten werden. Die Brushlessmotoren und die Luftschrauben sind darauf befestigt.

1 http://www.atmel.com/ 2 http://www.datasheetcatalog.org/datasheet/intersil/fn3659.pdf 3 http://www.atmel.com/ DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 19 1.3Technische Leistungsbeschreibung 1.3.1 Technische Beschreibung 1.3.1 Beschreibung der Komponenten 1.3.2 Erweiterungsmglichkeit Optionalwrevorgesehen,eineHorizontaleSteuerungzuimplementieren,die ebenfallsnuraufderVernderungderDrehzahlenvondenentsprechenden Propellern basiert. DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 20 1.4Projektmanagement 1.4.1 Einteilung der Spezialgebiete Jedem Projektmitglied wird ein mindestens ein Themengebiet zugeordnet, um gleichzeitige mehrerer Personen am gleichen Themengebiet zu vermeiden. Dies gewhrleistet einen raschen Projektfortschritt, indem jedem ein Spezialgebiet zugewiesen wird. Folgende Einteilung wurde vereinbart: -Martin Bitschnau (Projektleiter): Koordination des Projekts, Hardware fr Mikroprozessorumgebung, Software -Samuel Durig: Flugsteuerung, Sensorik, Mechanik -Manuel Fleisch: Motoransteuerung, Leistungsstufe, Halbbrcken DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 21 Risikolegende 10 9 6 5 4 1.4.2 Umfeldanalyse Abb. 2: Umfeldanalyse: Projekt Hummingbird DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 22 RisikoEinflussgre Art des Einflusses Manahmen 5 Hobby reservierte Zeit Verpflichtungen Einplanen 6 Familie Aufmunterung Halt Zeitaufwand Termine abklren z.B. Feiern, Geburtstag 4 Freunde Untersttzung Zuspruch einplanen nicht ablenken lassen 10 Betreuer Ratschlge Wissen Dokumente Knowhow Absprache Rcksprache 9 Team Zusammenhalt Hilfe Fachwissen Absprache wichtigerOrganisationen 9 Schule Druck Schularbeiten Tests in Etappen lernen einteilen der Zeit DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 23 2. Projektteam 2.1Vorstellung der Projektmitglieder 2.1.1 Martin Bitschnau Name:Martin Bitschnau Geburtsdatum: 31.08.1992 Hobbies:Karate Fitnesstraining Kochen Wohnort:Feldkirch / Nofels sterreich Motto:Der Sinn des Lebens ist es seinem Leben Sinn zu geben. Spezialgebiete:Motoransteuerung Leistungsstufe Halbbrcken DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 24 2.1.2 Samuel Durig Name:Samuel Durig Geburtsdatum: 26.03.1993 Hobbies:Schifahren Volleyball Fotografie Klettern Wohnort:Schruns sterreich Motto:Erfolg hat nur der, der etwas tut, whrend er auf den Erfolg wartet. Spezialgebiete:Flugsteuerung Sensorik Mechanik DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 25 2.1.3 Manuel Fleisch Name:Manuel Fleisch Geburtsdatum: 23.10.1992 Hobbies:Schifahren Hallenvolleyball Beachvolleyball Freunde Wohnort:Schruns sterreich Motto:Wer auf hhere Berge steigen will, muss auch strkeren Wind vertragen. Spezialgebiete:Flugsteuerung Sensorik Mechanik DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 26 2.2Vorstellung des Projektbetreuers Name:Prof.Dipl-Ing. Christoph Stttler Unterrichts- gegenstnde:EDES, GET, IE, FTKL LAB Hobbies:Imkerei Wohnort:Tschagguns sterreich Unterrichts Aufgabenbereiche:Betreuung der Projektmitglieder Informationsquelle bei offenen Fragen DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 27 3. Motoransteuerung 3.1Brushless-DC-Motor 3.1.0 Einfhrung DerBrushless-DC-Motor(deutsch:brstenloserGleichstrommotor),abgekrzt BLDC-Motor, ist ein Motor, der in der Bauform mit dem Gleichstrommotor verglichen werdenkann.DerwesentlicheUnterschiedistaber,dassderblichemechanische Kommutator mit Brsten zur Stromwendung durch eine elektronische Schaltung bzw. Ansteuerungersetztist.BeisolchenBLDC-MotorenistderRotormit PermanentmagnetenversehenundderfeststehendeStatormitSpulen,welche durch die elektronische Ansteuerschaltung zeitlich versetzt angesteuert werden. Dies verursacht ein Drehmoment am permanent erregten Rotor.Kleinere BLDC-Motoren mit geringeren Ansprchen sind Zweiphasensysteme wegen deseinfachenAufbausblich.Umjedochwinkelabhngige Drehmomentschwankungenzuminimieren,werdenhherePhasensysteme eingesetzt.DurcheinehohePolzahlwerdendieLaufeigenschaftenverbessert, sodassdaserzeugteDrehfelddurchAnsteuerungmiteinerrechteckfrmigen Wechselspannunggebildetwerdenkann.Beisolchenbrstenlosen GleichstrommotorenbestehtdieMglichkeit,dieelektronischeKommutierungvon derRotorposition,derRotordrehzahlunddemDrehmomentabhngigzumachen. DiesstellteineFormderdirektenRckkopplungdar,womitdieFrequenzundbei manchenSystemenauchdieAmplitudeinAbhngigkeitvonderPositionund DrehzahldesRotorsverndertwerdenkann.DieelektronischeKommutierungwird damitzueinemRegler,unddieArtderErzeugungdesDrehfeldesbestimmtdamit wesentlich die Charakteristik des BLDC-Motors.4

4 http://de.wikipedia.org/wiki/B%C3%BCrstenloser_Gleichstrommotor DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 28

Abb. 3: Brushless-Motor (mechanischer Aufbau)5

ImFolgendenwerdenkurzzweiMglichkeitenzurErfassungderRotorpositionund der Drehzahl aufgelistet und erklrt: 3.1.0.1Sensorgesteuerte Kommutierung BeieinersensorgesteuertenKommutierungwirddieRotorpositionberdie ErfassungdesmagnetischenFlussesdesRotorsimBereichdesStatorsmiteinem sogenannten Hall-Sensor bestimmt.6

5 http://wiki.rc-network.de/images/thumb/e/e2/HQ-Serie-offen.jpg/800px-HQ-Serie-offen.jpg 6 http://de.wikipedia.org/wiki/B%C3%BCrstenloser_Gleichstrommotor DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 29 Abb. 4: Positionsbestimmung anhand eines Hall-Sensors7 3.1.0.2Sensorlose Kommutierung BeieinersensorlosenKommutierungwirddieRotorpositionberdie Gegenspannungbestimmt,welchevondenSpulendesStatorsausgelstwird.Die AuswertungerfolgtdannberdieelektronischeAnsteuerschaltung,wobeizu beachtenist,dassderBLDC-MotorbiszumErreicheneinerMindestdrehzahlblind geschalten wird.8 3.1.1 Einsatzbereich Die Verwendung von BLDC-Motoren liegt in folgenenden Bereichen: -Ventilatoren -Videorekorder -Kompressoren -Modelflugzeugen -Servomotoren -Drehmaschinen

7 http://upload.wikimedia.org/wikipedia/commons/7/7e/Hall_sensor_tach.gif 8 http://de.wikipedia.org/wiki/B%C3%BCrstenloser_Gleichstrommotor Hallsensor Rotor DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 30 3.2Schaltung zur Ansteuerung 3.2.1 Blockschaltbild Signale der Flugsteuerung Abb. 5: Blockschaltbild: Motoransteuerung der Brushless-Motoren DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 31 3.2.2 MOSFET-Treiberbaustein HIP4081A 3.2.2.1Allgemeines DerHIP4081A9isteinhochfrequenterTreiberICfrN-KanalFeld-Effekt-Transistoren(FETs).ErkannFrequenzenbiszu1MHzschaltenundereignet sich gut fr Hochfrequenz-Schalt-Endstufen und Netzteile.

9 Das Datenblatt des MOSFET-Treibers befindet sich auf dem beigelegten Datentrger. Abb. 6: MOSFET Treiberbaustein HIP4081A DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 32 3.2.2.2Pinbelegungen ImFolgendenwerdendiePinbelegungendesTreiberbausteinHIP4081A beschrieben und erklrt: Abb. 7: Pinbelegungen des MOSFET-Treiberbausteins HIP4081A10

10 http://www.datasheetcatalog.net/de/datasheets_pdf/H/I/P/4/HIP4081A.shtml DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 33 PinBezeichnungBeschreibung 1BHBB High-Side Bootstrap Versorgung 2BHI B High-Side Input (Logic Level Input) Steuert BHO 3DIS Disable Input (Logic Level Input) Auf HIGH gesetzt --> alle 4 Ausgnge LOW Hchste Prioritt aller Eingnge 4VSS Negative Spannungsversorgung bzw. Ground 5BLI B Low-Side Input (Logic Level Input) Steuert BLO Hhere Prioritt als BHI 6ALI A Low-SideInput (Logic Level Input) Steuert ALO Hhere Prioritt als AHI 7AHI A High-SideInput (Logic Level Input) Steuert AHO 8HDELHigh-Side Einschaltverzgerung 9LDELLow-Side Einschaltverzgerung 10AHBA High-Side Bootstrap Versorgung 11AHO A High-Side Output Verbunden mit dem Gate des A High-Side Mosfet 12AHS A High-Side Source Anschluss Verbunden mit der Source des A High-Side Mosfet 13ALO A Low-Side Output Verbunden mit dem Gate des A Low-Side Mosfet 14ALS A Low-Side Output Verbunden mit der Source des A Low-Side Mosfet 15VCC Positive Spannungsversorgung Gleiches Potential wie VDD 16VDD Positive Spannungsversorgung Gleiches Potential wie VCC 17BLS B Low-Side Output Verbunden mit der Source des B Low-Side Mosfet DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 34 18BLO B Low-Side Output Verbunden mit dem Gate des B Low-Side Mosfet 19BHS B High-Side Source Anschluss Mosfet Verbunden mit der Source des B High-Side Mosfet 20BHO B High-Side Output Verbunden mit dem Gate des B High-Side Mosfet Bemerkung11 3.2.3 Halbbrcke Die Ansteuerung eines Brushless-Motors erfolgt mittels 3 Halbbrcken, welche durch 2 MOSFET Treiber (HIP4081A) geschalten werden. InderfolgendenAbbildungisteinegrundstzlicheSchaltungsrealisierungvon2 Halbbrcken mit einem Mosfettreiber, welcher mit PWM-Signalen angesteuert wird: Abb. 8: Grundstzliche Schaltungsrealisierung: Ansteuerung von 2 Halbbrcken12

11 http://www.datasheetcatalog.net/de/datasheets_pdf/H/I/P/4/HIP4081A.shtml (bersetzung: Manuel Fleisch) 12 http://www.datasheetcatalog.net/de/datasheets_pdf/H/I/P/4/HIP4081A.shtml DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 35 3.3Komplette Schaltungsrealisierung DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 36 3.3.1 Beschreibung der einzelnen Schaltungsteile 3.3.1.1Bootstrep-Spannung Abb. 9: Beschaltung zur Erzeugung der Bootstrap-Spannung VCC = 12V DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 37 Grundstzliche Funktionsweise von Bootstrapping (englisch: bootstrap, dt. Stiefelriehmen): Abb. 10: Halbbrcke mit zwei MOSFETs (inkl. Bootstrep-Speisung)13 Zwei N-Kanal-MOSFETs, der untere meist als low-side FET und der obere als high-sideFETbezeichnet,sollenabwechselndleitendwerden,dannwechseltdas PotentialamPunktBzwischen0V(GND)undderVersorgungsspannung(VCC).N-Kanal-MOSFETswerdenallgemeindannniederohmig,wenndasPotentialam GateumdieSchwellspannungUGS,on(6bis10V)positiveristalsamSource-Anschluss. Beim low-side FET ist es bei hoher Eingangsspannung kein Problem, das Gateabwechselndauf0VundaufWerteumca.10VzumErreichender Schwellspannung zu legen. Umaberdenhigh-sideFETansteuernzuknnen,sindGate-Potentialeumdie SchwellspannunghheralsdieVersorgungsspannungntig.Dieswirdbeider Bootstrap-SchaltungdurcheineDiodeDundeinenKondensatorCinKombination miteinemspeziellengatedrivererreicht.DerobereGate-Treiberistmitseinem Bezugspotential mit dem MittenpunktB verbunden. Zur Initialisierung der Bootstrap-Schaltung wird der Kondensator C auf die Eingangsspannung aufgeladen, indem der unterelow-sideFETeinebestimmteMindestzeiteingeschaltetwird.Sobaldder untereFETabgeschaltetwird,flieteindurchdieinduktiveLasteventuellnoch vorhandenerAusgangsstromkurzzeitigdurcheineimSchaltplannicht eingezeichnete Freilaufdiode. Jedenfalls bleibt das Potential am PunktB niedrig, bis

13 http://upload.wikimedia.org/wikipedia/commons/c/ce/Bootstrap_Half-Bridge.svg DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 38 der obere FET leitend wird. Bis dahin nimmt der gate driver den Strom zum Umladen derGate-KapazittausderVersorgungsspannung,beinochleitenderDiode.Diese sperrt, sobald das Potential bei B ansteigt. Wenn der obere FET voll durchgeschaltet ist,liegtBnahederVersorgungsspannungundderobereAnschlussdes Kondensators (= Versorgung des Treibers) auf einem Potential welches ungefhr der doppeltenEingangsspannungentsprichtsowohldieDiodealsauchderTreiber mssen dafr ausgelegt sein. DaderKondensatorCnureineendlicheLadungsmengespeichernkannundsich berdenoberenTreiberentldt,mussdieserLadevorgangperiodischwiederholt werden:DerKondensatorCwirdinderHalbperiode,whrendderderuntereFET leitendist,aufdieEingangsspannungaufgeladen.InderzweitenHalbperiode versorgtderKondensatordenGate-TreiberunddenGate-Anschlussdeshigh-side FET, wodurch dieser durchschaltet. Die Bootstrap-Schaltung ist daher nicht geeignet, wennderobereFETlngereZeiteingeschaltetbleibensoll.Typischistin Regelkreisen zur Beeinflussung des mittleren Potentials im Punkt B die Ansteuerung der Bootstrap-Schaltung mit der Pulsweitenmodulation (PWM).14

14 http://de.wikipedia.org/wiki/Bootstrapping_(Elektrotechnik) DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 39 3.3.1.2Stabilisation des MOSFET-Treiberbausteins Abb. 11: Schaltung zur Stabilisation des Treiberbausteins Um die Lebensdauer des MOSFET-Treiberbausteins auf einen lngeren Zeitraum zu gewhrleisten,werden2parallelgeschalteteFolienkondensatorenmitdenWerten 4.7uFund0.1uFzwischenderVersorgungsspannung(VCC=12V)undderMasse (GND)verbunden.DerGrunddafrist,dasseventuellauftretendehohe SpannungsspitzenverschlucktwerdenunddaherdemBausteinkeinenSchaden zufhrenknnen.ImLayoutmussdaraufgeachtetwerden,dassdiePlatzierung dieser Bauelemente mglichst nahe dem Baustein geschieht. VCC = 12V DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 40 3.3.1.3Einstellung der Einschaltverzgerung Abb. 12: Schaltung der Einschaltverzgerungen Diese Einschaltverzgerungen fr den High- bzw. Low-Side MOSFET werden bentigt, damit ein gleichzeitiges Durchschalten von beiden Feldeffekttransistoren und das somit verbundene Kurzschlieen der Versorgungsspannung (VCC) und der Masse (GND) vermieden werden kann. Der Widerstandswert von 100kOhm ist aus dem Datenblatt des MOSFET-Treibers ersichtlich: Abb. 13: Auszug aus dem Datenblatt des MOSFET-Treibers HIP4081A: Electrical Specifications15

15 http://www.datasheetcatalog.net/de/datasheets_pdf/H/I/P/4/HIP4081A.shtml VCC = 12V LDELHDEL HDEL High-Side Einschaltverzgerung LDEL Low-Side Einschaltverzgerung DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 41 3.3.1.4Verschaltung der 3 Halbbrcken VCC = 12V VCC = 12V Brcke A Brcke B Brcke C VCC = 12V VCC = 12V Output A (BLDC Input A) Output B (BLDC Input B) Output C (BLDC Input C) Abb. 14: Beschaltung der 3 Halbbrcken mit dem MOSFET Treiber HIP4081A DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 42 3.4Fertigung der Motoransteuerung 3.4.1 Schaltplan DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 43 3.4.2 Bestckungsplan DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 44 3.4.3 Bohrplan DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 45 3.4.4 Layout DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 46 3.4.5 Stckliste PosBezeichnungAnzahlBenennungBezugsquelleBestell-NummerPreisBemerkung 1R12Metallschichtwiderstand 0,25W 5% 1k Bf 0207 RM 10HTL - Lager-- 2R24Metallschichtwiderstand 0,25W 5% 100k Bf 0207 RM 10HTL - Lager-- 3R30Metallschichtwiderstand 0,25W 5% 100k Bf 0207 RM 10HTL - Lager-- 4R46Metallschichtwiderstand 0,6W 5% 15R Bf 0207 RM 10HTL - Lager-- 5R50Metallschichtwiderstand 0,6W 5% 15R Bf 0207 RM 10HTL - Lager-- 6R60Metallschichtwiderstand 0,6W 5% 15R Bf 0207 RM 10HTL - Lager-- 7R70Metallschichtwiderstand 0,6W 5% 15R Bf 0207 RM 10HTL - Lager-- 8R100Metallschichtwiderstand 0,25W 5% 1k Bf 0207 RM 10HTL - Lager-- 9R110Metallschichtwiderstand 0,25W 5% 100k Bf 0207 RM 10HTL - Lager-- 10R120Metallschichtwiderstand 0,25W 5% 100k Bf 0207 RM 10HTL - Lager-- 11R130Metallschichtwiderstand 0,6W 5% 15R Bf 0207 RM 10HTL - Lager-- 12R140Metallschichtwiderstand 0,6W 5% 15R Bf 0207 RM 10HTL - Lager-- 13C13Folienkondensator 4.7uF 10% RM5HTL - Lager-- 14C23Folienkondensator 100nF 10% RM5HTL - Lager-- 15C33Folienkondensator 1uF 10% RM5HTL - Lager-- 16C40Folienkondensator 1uF 10% RM5HTL - Lager-- 17C50Folienkondensator 4.7uF 10% RM5HTL - Lager-- 18C62Folienkondensator 0.1uF 10% RM5HTL - Lager-- 19C70Folienkondensator 100nF 10% RM5HTL - Lager-- 20C80Folienkondensator 1uF 10% RM5HTL - Lager-- 21C90Folienkondensator 4.7uF 10% RM5HTL - Lager-- 22C100Folienkondensator 0.1uF 10% RM5HTL - Lager-- 23C110Folienkondensator 100nF 10% RM5HTL - Lager 24D13Schottky-Diode BAT85HTL - Lager-- 25D20Schottky-Diode BAT85HTL - Lager-- 26D36Schottky-Diode PBYR 1645 Stttler Christoph -- 27D40Schottky-Diode PBYR 1645 Stttler Christoph -- 28D50Schottky-Diode PBYR 1645 Stttler Christoph -- 29D60Schottky-Diode PBYR 1645 Stttler Christoph -- 30D70Schottky-Diode BAT85HTL - Lager-- 31D80Schottky-Diode PBYR 1645 Stttler Christoph -- 32D90Schottky-Diode PBYR 1645 Stttler Christoph -- 33T16Mosfet N-Kanal IRFR1205PBF DPAK (SMD) RS-Components 541 - 0115 1,76 DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 47 34T20Mosfet N-Kanal IRFR1205PBF DPAK (SMD) RS-Components 541 - 0115 1,76 35T30Mosfet N-Kanal IRFR1205PBF DPAK (SMD) RS-Components 541 - 0115 1,76 36T40Mosfet N-Kanal IRFR1205PBF DPAK (SMD) RS-Components 541 - 0115 1,76 37T50Mosfet N-Kanal IRFR1205PBF DPAK (SMD) RS-Components 541 - 0115 1,76 38T60Mosfet N-Kanal IRFR1205PBF DPAK (SMD) RS-Components 541 - 0115 1,76 39IC12Mosfettreiber HIP 4081AHTL - Lager-- 40IC20Mosfettreiber HIP 4081AHTL - Lager-- 41SV11Stiftleiste 2x10polig 2-reihig 90RM2,54HTL - Lager-- 42X12JumperHTL - Lager-- 43X20JumperHTL - Lager-- 44X34Printklemmblock RM5,08HTL - Lager-- 45X40Printklemmblock RM5,08HTL - Lager-- 46X50Printklemmblock RM5,08HTL - Lager-- 47X60Printklemmblock RM5,08HTL - Lager-- 48X72IC-Sockel ICF20PHTL - Lager-- fr HIP4081A 49X80IC-Sockel ICF20PHTL - Lager-- fr HIP4081A 50Printplatte1Printplatte FR4 1,5 dick 35m Cu 100x80mmHTL Rankweil--(SCHN) DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 48 3.4.6 Komplettierung/Fertigstellung In der folgenden Abbildung sieht man die fertig bestckte Printplatte der Motoransteuerung fr den Brushless-Motor (BLDC): Abb. 15: Fertige Printplatte der Motoransteuerung DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 49 3.5Messungen 3.5.1 Spannungen: High-Side-Input & Low-Side-Input InderfolgendenAbbildungwerdendieSpannungenamHigh-Side-Input(AHI)und Low-Side-Input (ALI) dargestellt, welche die Ausgnge High-Side-Output (AHO) und Low-Side-Output(ALO)steuern.DieseSpannungenwerdenvomMikrokontroller erzeugt und auf die entsprechenden Pins der Motoransteuerung angelegt. Abb. 16: Darstellung der Spannungen am Pin AHI & ALI AHIALI DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 50 3.5.2 Spannungen: High-Side-Input fr alle 3 Phasen In der folgenden Abbildung werden die 3 Spannungen an den High-Side-Inputs AHI, BHI und CHI dargestellt, welche die 3 Ausgnge AHO, BHO und CHO (3 High-Side-Outputs)steuern.DieseSpannungenwerdenvomMikrokontrollererzeugtundauf die entsprechenden Pins der Motoransteuerung angelegt. Dabei zu beachten ist die jeweilige Phasenverschiebung von 120. Abb. 17: Darstellung der Spannungen an den Pins AHI, BHI und CHI BHIAHICHI DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 51 3.5.3 Spannung: Low-Side-Output InderfolgendenAbbildungwirddieSpannungdesLow-Side-Outputs(ALO) dargestellt,welchevomEingangALI(Low-Side-Input)gesteuertwird.Diese SpannungwirdvomMOSFET-TreiberbausteinHIP4081Aausgegebenundinfolge aufdasGatedesLow-SideMOSFETsangelegt.DieMaximalspannungeines solchen Rechteckimpulses betrgt +12V. Abb. 18: Darstellung der Spannung am Pin ALO (Low-Side-Output) ALO DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 52 3.5.4 Spannung: High-Side Output InderfolgendenAbbildungwirddieSpannungdesHigh-Side-Outputs(AHO) dargestellt,welchevomEingangAHI(High-Side-Input)gesteuertwird.Diese SpannungwirdvomMOSFET-TreiberbausteinHIP4081Aausgegebenundinfolge aufdasGatedesHigh-SideMOSFETsangelegt.DasSpannungsmaximumbetrgt +24V (Doppelte Versorgungsspannung), das aufgrund des bootstrapping zustande kommt.DerGrundfrdieetwasschrgabgeschnittenenRechteckimpulseistdas Entladen des Bootstrap-Kondensators. AHO Abb. 19: Darstellung der Spannung am Pin AHO (High-Side-Output) DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 53 3.5.5 Spannung: Output A (BLDC Input A) InderfolgendenAbbildungwirddieSpannungamOutputA(BLDCInputA) dargestellt, welche von der Halbbrcke A kommt und an einem Input des Brushless-Motors angeschlossen wird. Abb. 20: Darstellung der Spannung am Output A (BLDC Input A) Output A (BLDC Input A) DIPLOMARBEIT HUMMINGBIRD 2011/12 Manuel Fleisch Seite 54 3.5.6 Bootstrep-Spannung In der folgenden Abbildung wird die Bootstrep-Spannung dargestellt, welche bentigt wird um den High-Side MOSFET anzusteuern. Dies ist nur mglich, wenn das Gate PotentialdesHigh-SideMOSFETsumdieSchwellspannunghheralsdie Versorgungsspannungliegt.DieswreindiesemFalleineSpannungvon+24V (doppelte Versorgungsspannung). Abb. 21: Bootstrep-Spannung Bootstrep-Spannung DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 55 4. Ansteuerung der Leistungsstufe 4.1Allgemeines DieimvorigenKapitelgenaubeschriebenLeistungsstufewirdhiernachfolgendnur mehrvereinfachtdargestellt,umeinebersichtlichkeitzugewhren.Nachder VereinfachungsiehtdieErsatzschaltungfolgendermaen aus: Abb. 22 Leistungsstufe vereinfacht AndendreiMotorwicklungensolltenumjeweils120 verschobeneSinussignale anliegen,wasmiteinemMikrocontrollerundeinementsprechendenProgramm bewerkstelligt wird. Der Treiberbaustein HIP4081 ist in diesem Ersatzschaltbild gar nicht mehr vorhanden unddieN-KanalMOSFETssinddurchSchalterersetztworden.Warumhierdiese Vereinfachung in diesem Ausma zulssig ist, soll nachfolgend verdeutlicht werden. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 56 Abb. 23 Hip4081 I/O Pins16 AusSichtdesMikrocontrollerssinddierelevantenSteuerpinsdesHIP4081dieim nebenstehenden Bild rot markierten, nmlich: ALI, AHI, ALO, AHO und BLI, BHI, BLO und BHI. Der erste Buchstabe, also A oder B steht fr die jeweilige Brcke, die angesteuert wird.DerzweiteBuchstabeinderPinbezeichnungstehtfrHIGHbzw.LOWund beschreibtsomit,welcherMOSFETgeschaltetwird,oderimvereinfachtenFall, welcher Schalter in der Vereinfachten Schaltung geschlossen wird.

16 http://www.datasheetcatalog.net/de/datasheets_pdf/H/I/P/4/HIP4081.shtml DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 57 DerDritteundsomitletzteBuchstabedermarkiertenPinskennzeichneteinen Eingang (I fr Input) oder einen Ausgang (O fr Output). ImzuvorgezeigtenErsatzschaltbildisteineC-Brckeeingezeichnet.Wieanden Pinbeseichnungen zu erkennen ist, gibt es aber keine weiteren Steuerpins und somit keine C-Pins. FrdieSchaltungsrealisierungwurdedeshalbeinweitererHIP4081Baustein verwendet, um alle drei Phasen des Motors anzusteuern.Der Einfachheit halber wird spter im Programm, bei der Ansteuerung der 3. Brcke, der Buchstabe C verwendet. UmdieFunktiondieserPinszuveranschaulichensolldieWahrheitstabelledes HIP4081 herangezogen werden. Abb. 24: Wahrheitstabelle17 WirdaneinenLow-Eingangeinelogisch1gelegt,sowirdauchamLow-Ausgang einelogisch1ausgegebenundsomitderUnterederbeidenMOSFETs,der jeweiligen Brcke, durchgeschaltet, oder im vereinfachten Ersatzschaltbild der untere SchalterderentsprechendenBrckegeschlossen,unabhngigdavon,obamHigh-Eingangeine1odereine0anliegt.DieMotorwicklungwirddadurchaufdie negative Batteriespannung-Ub gelegt. Liegt am Low Eingang kein Signal an, sprich logisch 0 und am High-Eingang eine logisch1,wirdamHigh-AusgangebenfallseinSignalausgegeben,wasdas schlieen des oberen Schalters, der angesteuerten Brcke, bewirkt.

17 http://www.datasheetcatalog.net/de/datasheets_pdf/H/I/P/4/HIP4081.shtml DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 58 IstankeinenderbeidenEingngeHighundLoweinSignalangelegt,sindauch die Ausgnge logisch 0. Die Motorwicklung hngt somit in der Luft und ist dadurch hochohmig.DieserZustandwirdspterfrdieRckmessungbentigt,beiderder Phasennulldurchgang ermittelt werden soll, doch dazu spter. Wird an den Pin DIS (Disable) ein logisch 1 gelegt sind alle Ausgnge auf logisch 0geschaltetundsomitsperrenalleMOSFETsoderandersausgedrcktsindalle SchalterimErsatzschaltbildoffenunddieMotorwicklungbekommtsomitkeine Spannung. Die Eingnge haben dabei keinen Einfluss. Fazit:Ist am Pin DIS eine logisch 1 sind alle Schalter offen und die Motorwicklung hochohmigabgeschlossen.IstamPinDISeinelogisch0werdendie Ausgnge Durch die jeweiligen Eingnge gesteuert. Low-Eingnge steuern die zugehrigenLow-AusgngeunddieHigh-EingngesteuerndieHigh-Ausgnge. Dabei ist der Low-Eingang der Strkere der beiden. Ist er auf High geschaltetschlietderuntereSchalterundderobereSchalterwirdgeffnet ganzegal,wasamHigh-Einganganliegt.DieseEigenschaftistwichtigund verhinderteinenKurzschlusszwischenderpositivenBatteriespannung(+Ub) und der negativen Batteriespannung (-Ub). Nach Kenntnisnahme dieser Wahrheitstabelle wre es naheliegend eine Brcke nur ber den Low-Eingang zu steuern und den High-Eingang dauerhaft auf logisch 1 zu legen, jedoch wird fr die Rckmessung der hochohmige Zustand bentigt, bei dem wederderoberenochderuntereSchaltergeschlossenist.AuchderDisable-Pin (DIS) ist fr dieses Unterfangen unbrauchbar, weil damit beide Ausgnge sowohl A als Auch B auf logisch 0 gesetzt werden wrden.Aus diesen genannten Grnden wird das sptere Programm so ausgelegt, dass Die High- und Low-Ausgnge separat angesteuert werden. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 59 4.2Brushless Control Unit 4.2.2 Allgemeines Fr die Ansteuerung der Leistungsstufe und in weiterer Folge der Brushless-Motoren wirdeinAtmega8inderBauformPDIPverwendet,derimMagazinderSchule vorhandenist.InsgesamtwirdfrjedenMotoreineMikrokontrollerplatinebentigt, alsoimEndeffektvierStck.BeimLayoutenwurdedaraufgeachtetallePORTs spter nutzen zu knnen, obwohl vermutlich spter nicht alle Verwendung finden. Abb. 25: Atmega8 Baustein18

18 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 60 4.2.3 Stckliste Fr die Mikrocontrollerschaltung wurden folgende Bauteile und Material bentigt NrBauteilBenennungStckBauform 1SMD-Keramikkondensator 22 pF, 63V,C18 0805 2SMD-Keramikkondensator 22 pF, 63V,C20 0805 3SMD-Keramikkondensator, 100 nFC316 0805 4SMD-Keramikkondensator, 100 nFC40 0805 5SMD-Keramikkondensator, 100 nFC50 0805 6SMD-Keramikkondensator, 100 nFC60 0805 7SMD Elko 47 F 10VC74D 8SMD-Widerstand 10 kOhm, Tol. 5%,R14 1206 9SMD-Widerstand 120 Ohm, Tol. 5%,R24 1206 10SMD-LED grn,V14 1206 11HCX-7SB Quarz 12MHzXTAL4- 12Stiftleiste 40polig 2-reihigX1(SPI)1RM 2,54 13Buchsenleiste 2 x 10 pol 2 reihig90 X29RM 2,54 14Buchsenleiste 2 x 10 pol 2 reihig90 X30RM 2,54 15IC-Sockel ICF28P 15,24mmX44DIL 28 16IC ATMEGA 8 - 16PUIC4DIP 28 17Leiterplatte 35 Cu 65x65mm-4- DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 61 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 62 4.2.4 Schaltplan Abb. 26 Schaltplan BLCTRL-Unit DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 63 AufdieeinzelnenSchaltungselementewirdindenFolgendenUnterkapitelnnher eingegangen. 4.2.4.1Sockel Abb. 27: Sockel Atmega 8 ICssindempfindlicheBauteile,diebeinichtESDgerechterHandhabungschnell einen Defekt ausweisen. Weil ein IC sich gar nicht, oder nur sehr schwer und nur mit speziellem Werkzeug von der Platine entlten lsst und ein Ausfall des ICs deshalb dieganzeMikrocontrollerplatineunbrauchbarmachenwrde,wirdeinICSockel verwendet.StattdenAtmega8aufdiePlatinezultenwirdnurderIC-Sockel angeltetundderMikrocontrollerindenSockelgesteckt.DurchdieseManahme kann der Atmega8 bei Bedarf mhelos getauscht werden. 4.2.4.2Spannungsversorgung AmPinVCCwirddieVersorgungsspannungvon5Veingespeist.DerPinAVCC liefert die Versorgungsspannung fr den A/D Wandler, der vielleicht spter verwendet wird.UmdieVerwendungzuermglichenwerdendiePinsVCCundAVCC miteinanderverbunden.ZurGlttungderSpannungundumhochfrequenteAnteile DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 64 der Versorgungsspannung zu eliminieren, werden zwischen Masse (GND) und VCC bzw. AVCC ein 47F Elko und drei 100nF Folienkondensatoren geschalten. Abb. 28: Pinbeschreibung VCC19 Abb. 29:Pinbelegung AVCC20 Abb. 30: Spannungsversorgung Schaltplan

19 http://www.atmel.com/Images/doc2486.pdf 20 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 65 Abb. 31: Spannungsversorgung Schaltungsskizze 4.2.4.3Resetbeschaltung DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 66 Abb. 32: Resetcharakteristik21 Power-On Reset: Beim Power-On Reset (POR) wird ein Reset ausgelst, wenn die VersorgungsspannungeinenbestimmtenWertberschreitet.Dadurchwird beim Einschalten des Systems ein Reset ausgelst und der Controller in einen definierten Zustand gebracht. Brown-OutReset:DaesunterrauenUmgebungsbedingungenvorkommenkann, dassdieVersorgungsspannungimBetriebeinbricht,wirdbeimBrown-Out Reset(BOR)einResetausgelst,wenndieSpannunguntereinegewisse Schrankefllt.Dasistnotwendig,dabeizugeringerSpannungdiekorrekte ExekutiondesProgrammsnichtmehrgarantiertwerdenkannundBefehle falsch ausgefhrt werden knnten. Die Resetbedingung wird aufgehoben, wenn die Spannung wieder ber die Schranke steigt.

21 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 67

Abb. 33: Resetschaltung Schaltplan Abb. 34: Resetschaltung Skizze Fr einen komplikationsfreien Start nach dem Einschalten des Mikrocontrolers, bzw. anlegenderVersorgungsspannungsorgtdieResetschaltung.Siebewerkstelligtdie dafrbentigteAnstiegsflankeamResetpin.ImoberenBildistdiedafrbentigte Schaltungeingezeichnetundmarkiert.AnVCCistein10kWiderstand angeschlossenundbereinen10FKondensatormitderMasseverbunden.Diese einfacheSchaltungbewirkt,dassbeieinemSpannungsabfallderVersorgung,oder beim einschalten der Mikrocontrollerschaltung am Resetpin eine ansteigende Flanke entsteht.Grunddafrist,dassamAnfang,beimAufladendesentladenen Kondensators, der Kondensator selbst wie ein Kurzschluss wirkt. Dies bewirkt, dass unmittelbarnachdemAnlegenderVersorgungsspannungderKondensatordurch einenKurzschlussersetztwerdenkann,waswiederumzurFolgehat,dassder ResetpinsozusagendirektmitderMasseverbundenistundsomitauf0Vliegt.Mit DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 68 demallmhlichenAufladendesKondensatorsliegtnachderAufladezeitdievolle VersorgungsspannungamResetpin.DieserVorgangbewirktalsodieerwnschte ansteigende Flanke am Resetpin. 4.2.4.4Quarz Der Systemtakt fr den Mikrocontroller kann ber mehrere Wege zugefhrt werden. Der Auszug des Datenblattes vom in der Schaltung verwendetenAtmega8 zeigt die verschiedenen Mglichkeiten den bentigten Systemtakt zu generieren. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 69 Abb. 35: Taktquellen Atmega822 Fr den Anwendungszweck der Motoransteuerung wrde der interne kalibrierte RC-Oszillatorauchausreichen,aberimLayoutwurdetrotzdemPlatzfreinen Schwingquarz und die dazu geschalteten Kondensatoren gelassen.

22 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 70 Abb. 36: Fusebits fr Taktquelle23 MitdenFusebitswirdspterfestgelegt,welcheArtvonSystemtaktgenerator verwendet wird. Zur Auswahl stehen die oben aufgelisteten, die mit den CKSEL30 Bits ausgewhlt werden knnen. NachFertigungderMikrocontrollerhardwarewurdeentschiedendocheinen Schwingquarzzuverwenden,dermitdergleichenFrequenzschwingt,wieder,der Megacard, die als Hauptmikrocontroller verwendet wird, also ebenfalls einen 12MHz Quarz. Die Wahl fiel auf einen sehr kleinen und kompakten HCX-7SB Quarz. Hier das Datenblatt mit kurzer Beschreibung und den Maen. Abb. 37: HCX-7SB Daten 124

23 http://www.atmel.com/Images/doc2486.pdf 24 http://www.hib.com.br/pt/produtos/01/B/hcx-7sb_series.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 71 Abb. 38: HCX-7SB Daten 225 Abb. 39: HCX-7SB Daten 326

25 http://www.hib.com.br/pt/produtos/01/B/hcx-7sb_series.pdf 26 http://www.hib.com.br/pt/produtos/01/B/hcx-7sb_series.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 72 Abb. 40: Quarzverwendung Atmega8 Datenblatt27 DerSchwingquarzistinfolgenderSchaltungskonstellationindieMikrokontroller Hardware implementiert. Abb. 41: Quarzschaltung Atmega8 Datenblatt28

27 www.atmel.com/Images/doc2486.pdf 28 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 73 Abb. 42: Unterschiedliche Quarzanwendungen Atmega8 Datenblatt29 Frden12MHzQuarzwurdenfrdiezweiLastkapazittenlinksundrechtsdes Schwingquarzesdiesonstauchgngigen22pFKeramikkondensatorenaufMasse gelegt. Abb. 43: Quarzplatzierung auf BLCtrl-Unit

29 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 74 Bei der Verwendung eines Quarzes gilt es besonders auf die Umgebung zu achten. Bei der Platzierung des Schwingquarzes und der zugehrigen Kondensatoren sollte unbedingtdaraufgeachtetwerden,dassdieseBauteilesonahwiemglicham Mikrocontroller platziert werden, um ein sicheres Anschwingen zu ermglichen. Geschieht dies nicht knnen parasitre Induktivitten auftreten und ein Anschwingen verhindern. Abb. 44: Quarzschaltung Schaltplan 4.2.4.5LED Abb. 45: LED auf BLCtrl-Unit Grne SMD LED Vorwiderstand120 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 75 EinedereinfachstenundbilligstenMethodeneineMikrocontrollerschaltungzu debuggenunddadurchdasProgrammaufseinekorrekteFunktionzuberprfen istdieVerwendungeinerLeuchtdiode, die miteinembeliebigenI/O-Portverbunden ist. DieLEDbentigteinenentsprechendenVorwiderst,derverhindert,dasseinzu hoher Vorwrtsstrom IF (Forward) durch die LED fliet und sie dadurch einmal kurz aufleuchtet und gleich zerstrt wird. Abb. 46: LED Schaltplan DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 76 4.2.4.6ISP Abb. 47: In System Programmer Schaltplan Um spter den Mikrocontroller direkt auf dem Mikrocontrollerboard zu programmieren wirddieIn-System-Programmierungverwendet.AlsProgrammerwirddasAVR Dragonboard30verwendet,welchesberdieSPI-SchnittstelledenMikrocontroller programmiert.

30

DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 77 Abb. 48: In -System-Programmer BLCtrl-Unit SPI-Schnittstelle auf AVR DRAGON BOARD Abb. 50: SPI-Schnittstelle auf AVR Dragon MI SO SCK RESET VTG MOS I GND In-System-Programmer PINS SPI-Schnittstelle Abb. 49: Pinbelegung SPI-Schnittstelle AVR Dragon DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 78 SPI-Schnittstelle auf Mikrocontroller Platine Abb. 52: SPI-Schnittstelle auf BLCtrl-Unit WieindieserGegenberstellungzuerkennenistsinddiePinbelegungenaufdem AVR Dragon und auf dem Mikrocontrollerboard nicht identisch. Beim Layouten wurde nichtbeabsichtigtunbedingtdiegleichePinkonstellationwieaufdemDragonboard zuerreichen,sonderninersterLinieeineinfachesLayoutmitmglichstwenigen Durchkontaktierungen und berkreuzten Leitungen zu kreieren. WeildadurcheineabweichendePinbelegungzustandegekommenist,musste zustzlich ein berkreuztes Verbindungskabel gefertigt werden, was die Aufgabe hat die jeweiligen zueinander gehrigen Pins miteinander zu verbinden. MI SO RESET MOS I SCK VCC GND Abb. 51: Pinbelegung SPI-Schnittstelle BLCtrl-Unit DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 79 4.2.4.6.1Kabel DerEinfachheithalberwirdeinmehrfarbigesFlachbandkabelbenutztmitdemdie Verbindungen bersichtlich gestalten und eine Tabelle angelegt werden kann. Abb. 53: SPI-Verbindungskabel mehrfarbig Fr die Steckverbindung wurde ein Teil einer 2 x 10 poligen90gewinkelte 2-reihige Buchsenleiste verwendet, an deren Pins das Flachbandkabel angeltet wurde. Abb. 54: berkreuztes SPI-Verbindungskabel mit Buchsen

FarbeBelegung MISO SCK RESET VTG MOSI GND DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 80 4.2.4.7PORTS Abb. 55: Buchsenleiste1 Schaltplan Abb. 56: Buchsenleist2 Schaltplan DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 81 An die Ports werden alle Anschlsse des Atmega8 herausgefhrt. Dabei sollte darauf geachtetwerden,dassbeiderAufteilungderAnschlsseaufdieBuchseeine gewisse Ordnung und Logik herrscht, sprich zusammengehrende Anschlsse nicht zufllig verstreut sind. Anschlussplan Abb. 57: Buchsenleisten BLCtrl-unit DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 82 Abb. 58: Buchsenleistenlegende Buchsenleiste 2 PIN NummerVerbindung PIN 1(RXD) PD0 PIN 2(TXD) PD1 PIN 3(INT0) PD2 PIN 4(INT1) PD3 PIN 5(XCK/T0) PD4 PIN 6(T1) PD5 PIN 7(AIN0) PD6 PIN 8(AIN1) PD7 PIN 9(XTAL2/TOSC2) PB7 PIN 10(XTAL1/TOSC1) PB6 PIN 11- PIN 12- PIN 13- PIN 14- PIN 15PB5 (SCK) PIN 16PB4 (MISO) PIN 17PB3 (MOSI/OC2) PIN 18PB2 (SS/OC1B) PIN 19PB1 (OC1A) PIN 20(ICP1) PB0 Buchsenleiste 1 PIN NummerVerbindung PIN 1VCC/AVCC PIN 2AREF PIN 3GND PIN 4PC0 (ADC0) PIN 5PC1 (ADC1) PIN 6PC2 (ADC2) PIN 7PC3 (ADC3) PIN 8PC4 (ADC4/SDA) PIN 9PC5 (ADC5/SCL) PIN 10(RESET) PC6 PIN 11- PIN 12- PIN 13GND PIN 14- PIN 15- PIN 16- PIN 17- PIN 18- PIN 19- PIN 20(RESET) PC6 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 83 4.2.4.8Bestckungsplan Abb. 59: Bestckungsplan BLCtrl-Unit DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 84 4.2.4.9Bohrplan Abb. 60: Bohrplan BLCtrl-Unit Abb. 61: Bohrlegende BLCtrl-Unit DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 85 4.2.4.10 Layout Abb. 62: Layout TOP Abb. 63: BLCtrl-Unit Top unbestckt DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 86 Abb. 64. Layout Bottom Abb. 65: BLCtrl-Unit Bottom unbestckt DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 87 4.3Brushless Control Software IndiesemKapitelwirdbeschrieben,wiedasProgrammindeneinzelnenSchritten kontinuierlich verndert wurde. Programmiert wurde in C im AVR Studio4. 4.3.1Simulator ZurberprfungdeskorrektenAblaufsdesgeschriebenenProgrammswurdeder AVRSimulatorverwendet.WeilkeineJTAGSchnittstellebenutztwird,sondernnur eine SPI-Schnittstelle, kann kein On-Board-Debugging durchgefhrt werden. FrdieProgrammierungderBrushless-Control-UniterwiessichderSimulatordes AVR-Studios unter Beachtung folgender Schritte als ausreichend: DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 88 Abb. 66: AVR-Studio Menu Debug 1. Schritt DurchklickenaufdenMenupunkDebugundanschlieendesAuswhlenvon Select Platform erscheint folgendes Fenster: DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 89 Abb. 67: AVR-Studio Simulator auswhlen AlsDebugplatformwirdderAVRSimulator.DiesbewirkteineAufbereitungder Liste im rechten Scrollbar-Fenster, mit den untersttzten Mikrocontrollern. In diesem FensterwirddergewnschteMikrocontrollerausgewhltundanschlieendauf Finishgeklickt.BestehtderBedarfeinenanderenMikrocontrollerzu programmieren, muss diese Einstellung wieder gendert werden. Esistjedenfallsdaraufzuachten,dassindenConfigurationOptionsderselbe Mikrocontroller ausgewhlt ist, damit das Programm auch richtig kompiliert wird. Abb. 68: AVR-Studio Configuration Options DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 90 Dazu wird im Menupunkt Project Configuration Options ausgewhlt. Folgendes Fenster erscheint: Abb. 69: AVR-Studio Configuration Options 2 AufdemSeitenmenuwirddieAuswahlGeneralgetroffenunddasentsprechende Deviceausgewhlt,sprichdenverwendetenMikrocontrollerunddieTaktfrequenz dessen. Jetzt erfolgt eine Besttigung mit OK. StimmtdasausgewhlteDeviceindenConfigurationOptionsmitdem ausgewhltemZielobjektdesAVRSimulatorsnichtberein,dannzeigtdasAVR Studio4keineFehlermeldungan,aberderSimulatorspringtoftaufirgendeine Adresse,diegarnichtverwendetwirdundbefindetsichsoaufeinerbeliebigen Adresse,dienichtverwendetwird.WeilzumTestenderProgrammeaufder HardwareoftdieMegacardverwendetwurdeunddieseeinenAtmega16besitzt mussten diese Einstellungen immer wieder angepasst werden.DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 91 WhrendieseEinstellungenimmerzuerstberprftworden,httensicheinige Fehlersuchen zeittechnisch minimieren lassen. Unter dem Menupunkt Debug kann mit Start Debugging der Simulator gestartet und virtuell gedebuggt werden. Alle weiteren Schritte whrend des debuggens sind ebenfalls im Menupunkt Debug auszuwhlen. Am hufigsten verwendet werden meist die rot markierten Unterpunkte. Abb. 71: AVR-Studio Start Debugging Abb. 70: AVR-Studio Debugmenu DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 92 4.3.2 Programmieren der Brushless Control Unit 4.3.2.1Anschlieen des AVR Dragon Abb. 72: Anschlieen vom Programmer UmdenMikrocontrolleraufdemgefertigten BoardzuprogrammierenwirdderAVR DragonalsIn-System-ProgrammerverwendetundmitdemberkreuztenKabel verbunden.BeimVerbindenmussdaraufgeachtetwerden,dassnachder FarbtabellevorgegangenwirdunddieentsprechendenPinsderSPI-Schnittstelle miteinander verbunden werden. Dabei ist zu bercksichtigen, dass das Kabel nur in eine Richtung stimmt. Werden die Anschlsse vertauscht, sind die falschen SPI-Pins miteinander verbunden. Sind die beiden SPI-Schnittstellen des Dragonboards und der Brushless-Control-Unit miteinanderverbunden,wirddieVersorgungsspannungvon+5Vanden entsprechendenPortpingelegt.ImkonkretenFallmssendie+5VandenPin1 (VCC)derBuchsenleiste1gelegtwerden.UndMasseandenPin3(GND)der Buchsenleiste 1. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 93 IstdieserSchrittebenfallserfolgreichdurchgefhrtwordenkanndasDragonboard mittelsUSB-KabelmitdemRechnerverbundenwerdenunddie HardwarevorkehrungensindsomitabgeschlossenundderMikrocontrollerkann programmiert werden. 4.3.2.2Verbindung zwischen AVR Dragon und AVR Studio Um eine Verbindung vom AVR Studio zum Dragonboard herzustellen, ist unter dem MenupunktTools,ProgramAVRgefolgtvonConnectauszuwhlen,wieesim folgenden Bild gezeigt wird. Abb. 73: AVR-Studio mit AVR Dragon verbinden. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 94 Nach diesem Schritt ffnet sich folgendes Fenster: Hier wird der AVR Dragon ausgewhlt und anschlieend auf Connect geklickt. Wenn die Verbindung erfolgreich erfolgt ist ffnet sich erneut ein neues Fenster. Abb. 74: AVR-Studio AVR Dragon Connect DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 95 Abb. 75: AVR-Studio Connect Main ImReiter-MenudiesesFensterswirdzuerstderReiterMainausgewhltund anschlieendkontrolliert,obderrichtigeMikrocontrollerundderISPModeals ProgrammingModeausgewhltsind.Istdiesalleswieebenbeschrieben,kann durch klicken auf Settings zum nchsten Schritt gegangen werden.Folgendes Fenster erscheint: Abb. 76: AVR-Studio ISP-Frequ. Auswhlen HandeltessichnochumeinenjungfrulichenMikrocontroller,alsoeiner,dernoch nie programmiert wurde, muss die ISP-Frequenz sehr niedrig gewhlt werden. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 96 WurdedasZielobjektbereitszuvorprogrammiertunddieClocksourcemittels Fusebits eingestellt, kann der Mikrocontroller mit hheren ISP-Frequenzen betrieben werden,anfnglichsolltenaberdie125kHzverwendetwerden. Ist eine passende ISP.Frequenz gewhlt wird der ButtonWrite angewhlt. Abb. 78: AVR-Studio Read Signature Abb. 77: AVR-Studio ISP-Frequ Status DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 97 FrdennchstenSchrittwirdderButtonReadSignatureausgewhlt,umdie AdressedesMikrocontrollerseinzulesen.IstdiesesVorhabenerfolgreich durchgefhrt worden, mssen alle Meldungen im unteren Abschnitt des Fensters mit einem OK beendet werden. 4.3.2.3Programm auf Brushless Control Unit laden DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 98 Abb. 79: AVR-Studio Program C Nach Beendigung des letzten Schrittes kann das Programm mittels AVR Dragon auf denMikrocontrollerprogrammiertwerden.HierfrwirdzumReiterProgram gewechselt und die gewnschte Hex-Datei ausgewhlt. (siehe Markierung) IstdasgewnschteHex-Filegefunden,wirddasProgrammmitdemButton Program auf den Mikrocontroller bertragen. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 99 4.3.2Software fr Brushless Control Unit DasProgrammwurdeSchrittfrSchritterweitertundoptimiert.Dieser Entwicklungsablaufsollaufgezeigtunddiesichdahinterverbergenden Gedankengnge erklrt werden. An den Motorwicklungen muss schlussendlich eine Annherung an die drei um 120verschobeneSinussignaleanliegen,dieeinerPulsweitenmodulationunterliegen, deren Duty-Cycle sich proportional zur Drehgeschwindigkeit des Motors ndert. 4.3.2.1 Grundidee Anfnglichwirddasdreiphasigeum120 verschobeneSinussignalnurgrob angenhertwerdenunddiefrdiesptereAnwendungwichtigePWMwirdnoch nicht bercksichtigt. DieersteAnnherungandasSignalsolldemnachstehendenBildentsprechend aussehen.ImmerwenndasSinussignalpositivistsollderjeweiligeHighside-FET durchgeschaltenwerden.IstdasSinussignalnegativsollderLowside-FET durchgeschaltenwerden.DasheitinderzuvorvereinfachtenSchaltungwirdbei einem positiven Signal der obere Schalter der jeweiligen Brcke schlieen und somit diepositiveBatteriespannungandieangeschlosseneMotorwicklunglegenundbei einemnegativenSignalwirdderuntereSchalterderbetrachtetenBrcke geschlossenunddieMotorwicklungaufdienegativeBatteriespannung,sprichauf denMinuspolderBatteriegelegt.DasnachfolgendeBildsolldiesnochmalsbildlich erklren. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 100 Abb. 80: Mikrocontrollersignal BeieinergenauerenBetrachtungdesBildeswirdfestgestellt,dasssichdas vereinfachte,eingezeichneteSignalnuralle60 ndert.DurchdieseEigenschaft kann es in 6 Teile unterteilt werden die zusammen eine Umdrehung ergeben. Hierzu soll eine Tabelle angelegt werden, um dies zu verdeutlichen. Status123456 A111-1-1-1 B1-1-1-111 C-1-1111-1 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 101 ErstnacheinemSechsteleinervollenUmdrehung.also60 wirdderStatus gewechselt.DeshalbdieEinteilungindiesesechsStatus.DieBedeutungfrdie sechs Eingnge gilt es zu ermitteln: Bei einem positiven Signal also einer 1 wird der obere Schalter geschalten, also der HighInputXHIbekommteinSignalvomMikrocontrollerundbeieinemnegativen Signal also einer -1 wird der untere Schalter geschalten, also der XLI bekommt ein Signal vom Mikrocontroller. XHI ist also immer das Inverse von XLI und umgekehrt. Das X steht dabei fr einen der drei Brcken A, B oder C. In Bildern gesprochen ergibt das folgendes Bild. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 102 Abb. 81: Mikrocontrollersignal mit Kanlen Diese Erkenntnis ergibt eine erweiterte Tabelle: Status123456 AHI111000 ALI000111 BHI100011 BLI011100 CHI001110 CLI110001 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 103 Mit dem bekannten Signalen kannmit dem Programmieren begonnen werden. Die Drehzahl soll vorerst konstant sein und das Signal soll am PORTD ausgegeben werden.UmdenStatusdesSignalsnacheinergewissenZeitzundernwirdein Timer bentigt. Hierzu wird der Timer/Counter1 verwendet. 4.3.2.2Beschreibung des 16bit Timer/Counter1 Abb. 82: TCCR1A31 Abb. 83: COM-bITS TCCR1A32 Abb. 84: COM-Bits Erklrung33 Die Hardware PWM wird nicht verwendet, da zu wenige PWM Pins vorhanden sind. AusdiesemgenanntenGrundwirdsptereineSoftwarePWMrealisiert.Folge dessen sind die Bits COM1A1, COM1A0, COM1B0 und COM1B0 alle null zu setzen.

31 http://www.atmel.com/Images/doc2486.pdf 32 http://www.atmel.com/Images/doc2486.pdf 33 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 104 Abb. 85: FOC-Bits Erklrung34 Die FOC-Bits werden nicht bentigt und sind deshalb auf Null zu setzen. Abb. 86: Timer/Counter Mode35 Der geeignete Modus ist der CTC-Mode (Clear Timer on Compare Match).Mit dem OCR1A-RegisteralsTopwert.DiesesRegisterkannbeliebigbeschriebenwerden und somit kann spter die PWM-Frequenz nach Belieben verndert werden.

34 http://www.atmel.com/Images/doc2486.pdf 35 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 105 UmdenCTC-ModemitdemOCR1A-RegisteralsTopwertzuverwenden,mssen die Bits WGM13, WGM11 und WGM10 auf Null gesetzt werden und das Bit WGM12 auf Eins. Abb. 87: TCCR1B36 Abb. 88: Bits ICNC1, ICES1, Reserved Bit37 Die Bits ICNC1 und ICES1 sind fr Input Capture Anwendungen und werden vorerst nichtverwendet.BeiderRckmessungderMotorpositionknntendieseBits eventuell Einsatz finden, doch im Moment werden sie nicht bentigt und sind deshalb auf Null zu setzen. Bit 5 ist nicht relevant und wird deshalb auch auf Null gesetzt.

36 http://www.atmel.com/Images/doc2486.pdf 37 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 106 Abb. 89:Bit WGM13:2, CS12:038 Abb. 90: Vorteilerbits39 Da kein Vorteiler bentigt wird sind die Bits CS12 und CS11 Null zu setzen und Das Bit CS10 ist auf Eins zu setzen. Abb. 91: TIMSK40

38 http://www.atmel.com/Images/doc2486.pdf 39 http://www.atmel.com/Images/doc2486.pdf 40 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 107 Abb. 92: TICIE1-Bit41 DerInputCapturePinwirdnichtverwendet,deshalbistdasTICIE1-Bitaufnullzu setzen. Abb. 93: OCIE1A-Bit42 Abb. 94: OCIE1B-Bit43 DieOutputCompareInterruptswerdenzumEinenfrdenStatuswechselundzum Anderen in spterer Folge fr die Pulsweitenmodulation verwendet. Deshalb sind die beiden Bits OCIe1A und OCIE1B auf Eins zu setzen.

41 http://www.atmel.com/Images/doc2486.pdf 42 http://www.atmel.com/Images/doc2486.pdf 43 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 108 Abb. 95: TOIE1-Bit44 DasTOIE1-Bitwirdnichtbentigt,daessowiesoniezueinemTimer/Counter1Overflow kommen kann, weil der Maximalwert OCR1A ist. 4.3.2.3Programmcode 4.3.2.3.1Ausgeben des Bitmusters Die erste Version des Programmcodes sieht folgendermaen aus und bewirkt lediglich das ausgeben, des zuvor besprochenen Bitmusters. Die Erklrung der gezeigten Programmzeilen ist nach dem nachstehenden Code zu finden.

44 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 109 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 110 4.3.2.3.1.1Erklrung des Programmcodes DieInclude-Filesmsseneingebundenwerden,umdieStandardfunktionenfrdie I/O-Pins und die Interrupts verwenden zu knnen. DieDefinessindsehrpraktisch,um WertespterleichtimgesamtenProgrammzu ndern,deshalb wurden fr Konstanten, die vielleicht im Laufe der Entwicklung des endgltigenProgrammsgendertundangepasstwerdenmssen,alsDefines implementiert. PWM_TOPist der Wert des OCR1A Registers, welches zugleich der Topwert vom Timer/Counter1ist.Dasbedeutet,dassnachPWM_TOPSystemtaktender Timer/Counter1 auf null gesetzt wird und von vorne beginnt.Im konkreten Fall sind es 500 Systemtakte, was bei einem Systemtakt von 12MHz eineTimerfrequenz von 24kHz ergibt. kHzMHzfTimer2450012= = DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 111 SWVTistdieAbkrzungfrSoftwarevorteilerundwirdderzeitnichtbentigt,aber knntezumEinsatzkommen,wenngewnschtwirddenTimermehrmals durchlaufen zu lassen. Dies wre eine Alternative zu den Hardwarevorteilern, die mit denCS-Bitsausgewhltwerden.HardwarevorteilersindaufjedenFallzu bevorzugen,dasieenergiesparendersind,weilwenigerSystemtaktedafrbentigt werden, jedoch gibt es nur bestimmte Teilerfaktoren, wohingegen ein SWVT beliebig gro sein kann. OCR1BbegwirdspterfrdiePulsweitenmodulationbentigt.OCR1Bbegstellt denInitialisierungswertfrdasOCR1BRegisterdar.EinegenauereBeschreibung dafr findet sich spter wenn die PWM im Programm implementiert wird. DieProgrammzeilen#definePORTDPORTCund#defineDDRDDDRCwurden bentigt,umdieAusgabestattaufdemPORTDaufdemPORTCvorzunehmen.Bentigt wurde dies um das geschriebene Programm auf dem PORTC der Megacard auszugeben,anwelchemsichachtLEDsbefinden,diezurgrobenFunktionstests hilfreich sind. Mit volatile werden globale Variablen deklariert, die sowohl in den Interruptroutinen, als auch im restlichen Programm verwendet werden. Weiters knnen alle Werte von volatile-Variablen,whrenddesdebuggens,mitdemAVRSimulatorangeschaut werden. Dabei zhlt isr_count die Interruptaufrufe, xend gibt die Anzahl von ISR-Durchlufen an, die bis zum Statuswechsel vergehen mssen undstatus speichert den aktuellen Wert, der auf PORTD momentan ausgegeben wird. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 112 Die Funktion init() initialisiert verschiedene Parameter. Mit DDRD=0xFF; wird der gesamte PORTD als Ausgang definiert. OCR1A=PWM_TOP; legt den Topwert des Timer/Counter1 fest.OCR1B=OCR1Bbeg; setzt OCR1B auf den Initialisierungswert OCR1Bbeg TCCR1A=0x00;TCCR1B=0b00001001;undTIMSK=0b00011000;legendie FunktiondesverwendetenTimersfest.WelcheBitszusetzensindwurdebereits zuvor besprochen. Abb. 96: TCCR1A45 TCCR1A = 0 0 0000 00 Abb. 97: TCCR1B46

45 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 113 TCCR1B = 0000 1001 Abb. 98: TIMSK47 TIMSK = 0001 1000 Die Statusarrays ali, bli, cli, ahi, bhi und chi in der Funktion init() beinhalten die Bitmuster die zuvor erarbeitet und in der Tabelle festgehalten wurden.xinitistderInitialisierungswertvonxend.MitxinitwirdalsodieAnfangsdrehzahl vomMotorbestimmt.WirdzuBeginneineDrehzahlvon1U/sangestrebt,somuss xend folgendermaen ermittelt werden: TimerTimer TimerfT kHzMHzf12450012= = = TimerT xend entspricht 1/36 der Zeit den Der Motor fr eine Umdrehung braucht. Begrndung: Der Motor hat 12 Pole, also 6 Polpaare, das heit mit einem vollen 360Sinussignal dreht sich der Motor nur ein Sechstel einer vollen Umdrehung, also 60. Zustzlichwerden6Statusnderungenbentigt,biseinvolles360 Signal ausgegeben wird. Aus dieser berlegung folgt: 46 http://www.atmel.com/Images/doc2486.pdf 47 http://www.atmel.com/Images/doc2486.pdf DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 114 6676 6 50012 sec 16 6 _12 sec 16 66 6 = = = = = MHzTOP PWMMHzTTxend T T xendTimerDrehDreh Timer DieserRechnungzurFolgemssenbiszumnchstenStatuswechsel667 TimerdurchlufevonNullbisPWM_TOPstattfinden,damitderMotorineiner SekundesechsStatuswechselvollziehenkann,oderandersausgedrckteinevolle Umdrehung macht. sei(); setzt das Interrupt Enable Bit.

Der Output Compare1B Interrupt wird im Moment noch nicht bentigt, trotzdem muss er aufgerufen werden, weil im TIMSK-Register das OCIE1B-Bit gesetzt ist.Aus diesem Grund ist die leerstehende Interrupt Service Routine im Programmcode enthalten.WirdnachTTIMER SekundenderOutputCompare1AInterruptausgelst,dannwird die Variable isr_count um 1 erhht. DieFunktionwait()hatdieAufgabesolangezuwarten,bisisr_countdenWert von xend erreicht hat. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 115 In der Funktion main(void) wird zu Beginn einmalig die zuvor beschriebene Funktion init()aufgerufenund allebentigten Werteinitialisiert.Anschlieendbefindetsichin derimmererflltenBedingungwhile(1)einefor-SchleifediezuBeginndenn Timer/Counter1aufnullsetztundalleArraywertedesStatusiaufdenPORTD ausgibt.Istdiesgeschehenwirddieisr_countVariable auf nullgesetzt,damitdas ZhlenderInterruptaufrufevonvornebeginnenkann.NachdemAusfhrendieser Befehlewirdindiezuvorerwhntewait-Funktiongesprungen,indersolangeZeit vergeht,bisisr_countdemWertvonxendentspricht.Anschlieendwirddie Funktionmain(void)fortgefhrt.DieletzteCodezeileinderfor-Schleifebewirkt, dass die for-Schleife von vorne beginnt, sobald i den Wert 5 erreicht hat und somit alle 6 Status abgearbeitet sind. 4.3.2.3.1.2Optimierung der Bitmusterausgabe UmdasProgrammzuoptimierenundRechenleistungzusparen,msseneinige Programmierschritteberdenktwerden.VorallemdieFunktionwait()braucht unntigvieleTaktzyklen,indenensiegarnichtsmacht,auerwartenundkostbare Zeitverbrauchen.AuchdasBeschreibenderPortsbrauchtimMomentsehrviel Rechenkapazitt. Um dem Abhilfe zu schaffen wird statt der 6 Arrays mit den jeweils 6StatusnurmehreinArrayverwendet,indemdiesechsStatusvonallensechs Arrays zusammengefasst sind. Dies soll anhand einer Tabelle erlutert werden. Status PORTDWertigkeit123456 ALI020 = 1000111 BLI121= 2011100 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 116 DerStatusbeschreibtimmereinenZeitabschnitt.IstdiesesZeitintervallabgelaufen wird der Status um Eins erhht und beginnt beim sechsten Status von vorne. Zuvor wurdenwhrendeinesStatusalleSignaleeinzelnausgegeben.Dasheit,die Wertigkeiten der sechs Bitmuster werden, damit es ohne Berechnung im Programm am PORTD parallel ausgegeben werden kann. Der Grundgedanke zur Verbesserung desProgrammsbasiertdarauf,dassdasBitmusterschonzuvormitderWertigkeit desjeweiligenPortausgangesgewichtetwird.Am BeispielvonStatus1wirdnach derSummenbildungderMultiplikationen,vonderWertigkeitderPortausgngemit dem Bitmuster, die Summe 4+8+16=28 erhalten. Der berarbeitete Programmcode lautet nachfolgend: Programmcode: Es gibt 2 neue Volatile-Variablen, nmlich ein Array stat[6], welches die 6 Bitmuster beinhaltetunddieVariableiidiedenaktuellenStatusenthaltensoll.Beide Variablen sind vom Datentyp char, da dieser hier vollkommen ausreichend ist. CLI222= 4110001 AHI323= 8111000 BHI424= 16100011 CHI525= 32001110 SUMME281442354921 DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 117 DieFunktioninit()wurdeetwasabgespeckt.DieganzenArraydefinitionenfrdie einzelnenKanlewurdenentfernt,dafrdieseAufgabedasjetzteinzigeArray stat[6],mitdenzuvorinderTabelleerarbeitetenBitmusterwertigkeiten,verwendet wird.NeuinderFunktioninit()istdieInitialisierungvonii.MitdieserZeilewird definiert, dass beim Status 0 begonnen werden soll. DieInterruptServiceRoutineSIGNAL(SIG_OUTPUT_COMPARE1A)wurde erweitert.BeijedemAufrufwirdweiterhinderInterrupt-Zhlerisr_countumeins erhht.Hatdieserden Wertvonxenderreichtistdieif-Bedingungerflltundwird ausgefhrt.ZuBeginnwirdmittelsderVariableiiderStatuserhht.Fallsiiden Wert 6 erreicht wird er auf 0 gesetzt, da das Array sechs Werte beinhaltet und Arrays immervonNullbeginnenentsprichtdieVariableii=5demsechstenStatusund muss anschlieend von vorne beginnen. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 118 Weilalles,waszuvormhevollinderwhile-SchleifederHauptfunktionmain(void) errechnetwurde,optimiertinderOCR1A-Interrupt-Routineerfolgtist,immainnur mehr die leere while-Schleife vorhanden, die Platz fr weitere Anwendungen bietet.

4.3.2.3.2Implementierung der Pulsweitenmodulation DasProgrammsolleinePWMenthalten,dievorerstkonstantbleibensollte.Zu Beginn soll der Duty-Cycle 50% betragen. Dazu muss lediglich das OCR1B-Register aufdenhalbenWertvomOCR1A-RegistergesetztwerdenundbeimAufrufender OCR1B-ISRmussPORTDauf0gesetztwerdenundinderOCR1A-ISRmusser wieder gesetzt werden. InderFunktioninit()wirddasOCR1BRegister,wiezuvorgezeigt,aufdenWert OCR1Bbeg gesetzt. Deshalb muss lediglich das Makro OCR1Bbeg gendert werden und zwar auf den halben Wert vom OCR1A, was in der Funktion init() auf den Wert PWM_TOP gesetzt wird. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 119 DieInterruptServiceRoutineSIGNAL(SIG_OUTPUT_COMPARE1B)wirdjetztfr die Erzeugung des PWM-Signals verwendet. Tritt diese Interruptbedingung ein, also istderTCNT1beiOCR1Bbegangelangt,wirdderPORTDaufnullgeschaltetund bleibtsolangenullbisanihmwiederdasaktuelleBitmusterdesaktivenStatus ausgegeben wird, wenn der Timer/Counter1 den Wert vom OCR1A erreicht hat und der Interrupt SIGNAL(SIG_OUTPUT_COMPARE1A) ausgefhrt wird. 4.3.2.3.3Anpassung der PWM an die Motordrehzahl IndiesemAbschnittsolldasProgrammsoberarbeitetwerden,dasssichdie Drehzahl des Motors, in einem definierten Zeitraum, von einer Anfangsdrehzahl von 1U/saufeineMaximaldrehzahlvon100U/sansteigtundderDuty-CyclederPWM proportional der Drehzahl erhht wird. Der Duty-Cycle soll zu Beginn, sprich bei 1U/s 10% betragen und bei 100U/s 100% erreicht haben. Immer wenn der Timer/Counter1 den Wert im OCR1B erreicht hat wird der gesamte PORTDausgeschaltet.ErstwennerdenWertimOCR1Aerreichthatwirdwieder der aktuelle Status ausgegeben. Die Frequenz der PWM bleibtdabei konstant. Das heitderOCR1A-Wertwirdnichtverndert,sondernnurderWertinOCR1B.Ein kleiner Wert von OCR1B bedeutet auch ein kleiner Duty-Cycle. Ist Der OCR1B Wert gleich gro wie OCR1A oder grer, ergibt das einen Duty-Cycle von 100%.Hier bildlich dargestellt: DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 120 Abb. 99 PWM OCR1B soll proportional der Drehfrequenz erhht werden knnen. Dazu eine Skizze zur berlegung des Zusammenhangs. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 121 Abb. 100 Drehzahl-OCR1B-Gerade upsbeg ist die Anfangdrehzahl des Motors& upstop die Enddrehzahl. Das Programmhat die Aufgabe,das bei der Anfangsdrehzahl, upsbeg, Der Duty-Cycle 10% betrgt. Das heit, dass OCR1A zu beginn ein Zehntel von OCR1A oder PWM_TOP betrgt, also: 50 1 , 0 * 500 1 , 0 * 1 1 = = = A OCR Bbeg OCR Anfangswert von OCR1B DerEndwertvonOCR1BistgleichdemWertvonOCR1AoderPWM_TOPalso 500 Mit diesen berlegungen kann die Steigung der Geraden aufgestellt werden. 54 , 41 10050 500 1 _ 1 1====AA=upsbeg upstopBbeg OCR TOP PWMupsbeg upstopBbeg OCR A OCRxyk Die allgemeine Geradengleichung lautet y=k*x+d DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 122 d s U k A OCR d x k y + = + = / 100 1ausdieserGleichungkannder Schnittpunktmitdery-Achseermitteltwerden.Dazuwirdhierderpunktbei100U/s genommen. 46 100 54 , 4 500 1 = = = upstop k A OCR dAlsnchsterSchrittmusseineFormelfrdieHochfahrzeitaufgestelltwerden. Grundgedankedabeiist,einezweiteCountervariablezuimplementieren,die ebenfallsdieInterruptaufrufeundsomitdiePWM-Signalezhlt.Diesesollspter isr_count_drehheien.BeieinemgewissenWertpwm_ups,dendieseVariable erreicht soll die Drehzahl um Eins erhht werden. Hierzu stellt sich die Frage, um wie viel dieser Wert verringert werden muss, um die Drehzahl linear zu erhhen.Dazu eine Gleichung. PWMPWMTf=1 upsbeg upstopf thfzups pwmupsbeg upstopthfzups pwm TPWMPWM= = _ _ Die Periodendauer eines PWM Signals TPWM mal der Anzahl an PWM-Signalen bis dieDrehzahlumEinserhhtwird(pwm_ups),ergibtdieHochfahrzeitpro Drehzahlnderung.EsgibtupstopminusupsbegDrehzahlnderungen.Aus dieser berlegung folgt nach korrektem umformen: upsbeg upstopf thf zups pwmPWM= _ WeitereMakrossindhinzugefgtworden.DieKommentarzeilennebenden Programmzeilen reichen zur Erklrung aus. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 123 Die Globalen Variablen sind um die Variable isr_count_dreh erweitert worden. Sie zhlt wie isr_count die PWM-Perioden, ist aber unabhngig von dieser. DieFunktioninit()wurdeumdenmarkiertenBereicherweitert.Zuvoristxinitauf einenfixenWertgesetztworden.DieseverbesserteSchreibweiseerlaubteine VernderungdesMakrosupsbeg,mitdemdieAnfangsdrehzahlangegebenwird. xinitwirdmitdiesemverndertenProgrammcodeautomatisch,unter Bercksichtigung von upsbeg, berechnet. DIPLOMARBEIT HUMMINGBIRD 2011/12 Martin Bitschnau Seite 124 BeijedemAufrufdesOCR1A-InterruptswirdjetztauchdieCountervariable isr_count_dreh um eins erhht. Verwendet wird sie in der Hauptfunktion main(). Die Parameter fr die Geradengleichung wurden bereits ausfhrlich besprochen. Die Formel fr die Steigung k weicht etwas von der besprochenen ab, da sie noch mit demFaktor10multipliziertwordenist.BeiderBerechnungvonOCR1Awirddies bercksichtigtunddieSteigungkwirdwiederdurch10dividiert.Dieserkleine Aufwanddientdazu,dasseineNachkommastellederSteigungmitbercksichtigt wird, da der Datentyp Integer nur ganzzahlige Werte annehmen kann.Diese Variablen wurden erst im main() definiert, da sie nur hier verwendet werden. Wren sie auch in der Funktion init() definiert worden, mssten sie unntiger Weise auch als globale Variablen deklariert werden. DieVariableupswirddurchdasMakroupsbegaufdenAnfangswertvon1U/s gesetzt. Inderwhile(1)-SchleifewirddurchdiesenSchrittpermanentabgefragt,obdieneu definierteglobaleVariableisr_count_drehdenWertpwm_upserreichthat.Tritt d