Friday 27 October 2017

Moving Gjennomsnittet Msp430


Embedded Engineering I post. Jeg skal vise deg hvordan du implementerer det enkleste mulige digitale filteret kvoterende gjennomsnittlig filterkvot. Selv om det er veldig enkelt å implementere, men fortsatt i mange applikasjoner, er dette mer enn godt nok. for eksempel å redusere tilfeldig støy fra signalet. selvfølgelig når det er veldig enkelt har det problemer som. det har ingen veldig skarp filterrespons. Kanal 1-inngang. fei fra 20Hz til 6kHz, kanal 4 (grønn) 15-punkts filtrert utgang, M (rød) - utgang i freq-domene lørdag 1. oktober 2016 Dette prosjektet er den siste delen i å lage et veldig kraftig sollys. I dette prosjektet intigrerer vi LTC3478 Basert philips lumileds Driver og BQ24650 Basert MPPT Solar Li-Ion charge Controller. Vi bruker totalt 3 9 Watt hver LED-driverbord og en ladestyring for å lade 6 Cell 7.6V 20000mah li-løvebatteri. Det er 4 LED-bar-grafdisplay for å vise estimat for batterinivå og en enkelt knapp for å kontrollere Onoff, Different Level av lysstyrke. og velg en. alle eller få av LED-plater til litup. Det er ikke mye å beskrive i form av skjematisk og fastvare som alle Firmware og Schmeatic aer allerede på min github-konto. Brukergrensesnittpanelet er laget av PCB med 4 batteristatus LED en port for solpanelkontakt og en kontrollbryter. Når batteriet er ladet, lyser LED-statusen tilsvarende, og når batteriet slipper, blir ledestatus oppdatert tilsvarende. I tillegg til det lille solbelysningsprojektet som jeg jobbet med, har jeg laget denne lille solenergi-laderen for å lade opp litiumionbatteri (li-ion). Circuit Utnytt Texas Instrument BQ24650 i hjertet av sløyfen for å kontrollere ladingen. som krets har ekstern mosfet så maksimalt 160charge nåværende kan justeres til virkelig høye verdier. 160Circuit aksepterer solcelleverdier fra 5V til 28V. Jeg har testet den med 12V nominell (17Volts åpen krets) 160. og 24 Volt nominelt solpanel ved batteriladningsstrøm opptil 4A. For tiden installert i huset mitt siden noen måneder. Lading av et 20000 mah li-ion batteri. Kretskortet har stor 4-polet høykapasitets Molex-kontakt for solpanel. 6-polet kontakt for batteri og lastbryter. Det er også mulig å koble NTC til batteritempraturovervåking. BQ24650 kan automatisk overvåke temperaturen på batteriet. Microcontroller har dedikert 3 PWM utgang for LED-dimmer og 6 gpio pin-header for bettery status ledet og en brukergrensesnitt nøkkel. Hallo zu Deutsch Leser. Das ist mein erste Artikel auf Deutsch. Jeg habe viel aufrufe aus Deutschland deshalb Jetzt ab, ich werde auch auf Deutsch publisher weilich Detusch lerne und mehr mehr bungen. Jedes Article wird auf Deutsch und English. wenn wir Widerspruch zwischen dem Artikel auf Deutsch und Englisch haben, die English berwiegt weil Meine erfahrungen auf deutsch kurze ist.160 160 160 160Så begynner vi. Heutzutage arbeit ich an einem Projekt. quotMPPT Solar li-ion Laderquot. Bei diesem projekt brauche ich eine160sehr160vollmacht 25W LED leicht. aber 25W er viel pels ein160LED-Triber. Dette er en av de mest kjente 25 W LED-Triber zu entwerfen. Hauptsorge Auf die Projket quotMPPT Solar - lon Laderquot ist zu Lernen wie MPPT Larder Arbeitet und wie die software Algorithmus sind. Das Projekt ist ein teil von ein Projekt was publiziere ich spter.160 160 160 160 Jeg jobbet med å jobbe med en 160little solbelysningsprosjekt , jeg trenger en virkelig lys, gal 25W 160LED belysning. Men problemet var for 25W det var mye strøm for LED og det krever noen ferdigheter for å lage en så høy LED-driver. Hovedmål for dette prosjektet er å få en nedstigningskunnskap om MPPT-ladestyring og MPPT-ladingsalgoritmer. Dette prosjektet er en del av prosjektet. at jeg vil legge inn senere. 160160160 Dette innlegget kommer til å være fjerde del i serie med å lage et Linux-kompatibelt ARM-kort hjemme. klikk først. Andre og tredje for å gå til tidligere deler, så vi kan starte. Hva er en Bootloader, Hvorfor trenger vi it160 en oppstartslaster er et program som er den første som skal utføres av CPU. det gir noen svært spesifikke formål å sette opp noen svært viktige ting før du laster hovedprogrammet (kan være OS) inn i main memoryquot. det er derfor det kalles boot loader. Avhengig av behov kan oppstartslaster gjøre en annen oppgave (vi vil dekke dem her). Det er forskjellige former og størrelser på bootloaders. de tjener alle nesten samme formål. med mikrokontroller. Noen ganger laster det faktisk ikke hovedprogrammet inn i minnet, men overfører utføringspekeren til hovedprogrammet slik at hovedprogrammet kan kjøre direkte danner minnet der det er. Styret med 4,3 tommers LCD-kjører Qt5-applikasjon for å vise JPEG-bilde og tidHvad er FRAM Molecular Structure FRAM et tilfeldig tilgangshukommelse, noe som betyr at hver bit leses og skrives enkeltvis. Dette ikke-flyktige minnet er lik struktur i forhold til DRAM, som bruker en transistor og en kondensator (1T-1C), men FRAM lagrer data som en polarisering av et ferroelektrisk materiale (bly-zirkonat-titanat). Som et elektrisk felt påføres, skifter dipoler i en krystallinsk struktur for å lagre informasjon. Denne strukturen resulterer i en rekke fordeler: Ikke-flyktighet Rask skriver Lav effekt Høy utholdenhet Motstand mot elektromagnetiske felter og stråling Uovertruffen fleksibilitet Datasikkerhet Bruken av krystallpolarisering i motsetning til ladelagring gjør det mulig for statens oppbevaring, lavere spenningskrav (så lite som 1,5 V) og raske skrivehastigheter sammenlignet med Flash, EEPROM og SRAM teknologier som brukes i typiske MSP430 mikrokontroller applikasjoner. I tillegg til fordeler knyttet til tradisjonelle minneteknologier, tilbyr FRAM systemnivå sikkerhetsfordeler. Mangelen på en ladepumpe fjerner et sentralt sårbarhet mot fysiske angrep. FRAM er også motstandsdyktig mot elektromagnetiske felt samt stråling. Siden FRAM-tilstanden ikke er lagret som en ladning, vil ikke alfa-partikler føre til at biter flipper, og FRAM Soft Error Rate (SER) er under detekterbare grenser. På toppen av denne motstanden mot ekstern forstyrrelse, er FRAM anti-rive, noe som betyr at strøm som går tapt i en skriveerase-syklus, ikke vil forårsake dataforstyrrelse. Endelig kan data ofte beskyttes ved hjelp av kryptering. Den raske skrivehastigheten og den høye utholdenheten til FRAM gjør det mulig for utviklere å generere nøkler oftere for å sikre bedre dataoverføring. Fordeler i en mikrokontroller FRAM-teknologi gir flere fordeler i forhold til tradisjonell minneteknologi. Disse fordelene kan føre til reelle funksjonsnivåfordeler i lavt strømforbruk og grunnleggende mikrokontroller applikasjoner. Raske skrivehastigheter Potensiell produksjonstid og utviklingstidsbesparelser Mindre sårbare for angripere Aktiver på flyet skriver med null buffering når du mottar data fra høyhastighetskommunikasjonskanaler, mindre energidrift og potensiell lagring av en ekstern buffer eller unngåelse av en MCU med en stort RAM-fotavtrykk Øk effektiviteten med lav aktiv arbeidscyklus fordi skriveren er ferdig raskt, slik at det blir lengre tid i ventemodus. Ingen sletting nødvendig siden FRAM skriver ikke krever forhånds-sletning, minnetid og energibrukhals er helt eliminert. Slitasje av data under strøm tap Low Energy Writes Ingen ladingspumpe nødvendig for FRAM skriver, og forhindrer både høy gjennomsnitt og toppmakt. FRAM skriveprosessen forbruker ingen ekstra kraft sammenlignet med en lesing, som gjør energibudgeting når du registrerer data enkelt og smertefritt. Sikkerhetskopier fullstatdata, kode eller data minne om strømbrudd siden FRAM skriver ikke tømmer for mye energi Utfør over luften oppdatert trygt siden hundrevis av kB av informasjon kan oppdateres på en brøkdel av tiden uten å bruke en betydelig del av energiressursen. Real-time skriver Tillater mer responsiv datalogging, for eksempel ved hurtigfeilhendelser CPU holdes ikke i prosessen av skriver, interrupts er ikke blokkert og skrivene er ferdig innen instruksjons syklustid. Ikke-segmentert minne betyr at et helt segment av minne ikke må sikkerhetskopieres for å oppdatere et enkelt ord. Oppdater bitvis, ordmessig eller blokkvis som tilpasset søknaden. Unified Memory Experience har uovertruffen fleksibilitet med muligheten til å flytte kode, variable data og konstante datagrenser hvor som helst. FRAM Muliggjør en felles mikrokontrollerplattform ved å utnytte fleksibel kode og dataltildeling. Ingen behov for å bytte MCU hvis koden og datahastigheten ikke kan avgjøres ved tidspunktet for det første designet. Egnet til stor RAM-applikasjon - eliminerer behovet for en mikrokontroller med større RAM: Flash-forhold FRAM-brukskasser FRAM-teknologien har flere fordeler enn tradisjonell minneteknologi. Disse fordelene kan føre til reelle funksjonsnivåfordeler i lavt strømforsyning. Løsningsfunksjoner Lav aktiv driftssyklus for ikke-flyktig skriver Lav gjennomsnittlig og topp skrive strøm fører til lavt gjennomsnitt og topp strømforbruk av MCU Raskere wakeup tid Variabler lagret i ikke-flyktig FRAM Perfekt par med BQ25570 Spesielt designet for å skaffe og administrere W til mW kraft generert fra DC-kilder solenergi, termisk eller vind Løsningsfordeler Oppnå nærmere batteridekselskapasiteten Batteri effektiviteten er forbedret, og levetiden forlenges ved å begrense toppstrømforbruket Energiehøsting kan være den eneste energikilden, eller kan komplementere batterier for lengre produkt levetid Datasikkerhet Datasikkerhet Beskytt intellektuell eiendom og overføringer med FRAM Løsningsfunksjoner Ingen ladningspumpe nødvendig Motstand mot eksterne felter Statens oppbevaring ved strømbrudd, rask skriving og 10 skrivecykler Maskinvareacceleratorer for krypteringdekryptering ved hjelp av AES-løsningen Løsninger Fordeler Minnet beskyttet fra noen typer fysiske angrep er FRAM ikke mottakelig for myke feil Oppdater sikkerhetsnøkler raskt og send varslinger i tilfelle visse tilstandsendringer AES sammenkoblet med autentisering gjør det mulig å sikre bedre datakommunikasjon Utvikling fleksibilitet Utvikling Fleksibilitet - Eliminere tradisjonelle grenser mellom kode, variabel og konstant data Løsningsfunksjoner Flash: RAM-forhold er industrien standard, ingen tilpasning tillatt FRAM bryter ned denne barrieren med muligheten til å tilpasse størrelsen på minnebrikkene. Fleksibilitet for å endre disse grensene ved kjøretid eller kompileringstid. Løsningsfordeler Færre plattformer raskere å markedsføre FRAM gjør det mulig for utviklere å opprettholde en plattform på tvers prosjekter med ulike behov Lavere systemkostnader Ingen behov for å betale for en større enhet bare for å få mer RAM-produksjonseffektivitet Produksjonseffektivitet - Spar tidsparande penger Eink Display-moduler Utvikle elektroniske hylleetiketter og mer ved hjelp av FRAM-aktiverte moduler Den unike fleksibiliteten til TIs FRAM MCUs tillot oss å sette delen ition mellom RAM-type minne og programminne hvor som helst innenfor FRAM og skape en unik, billig e-blekkdisplayløsning innenfor et kompakt fotavtrykk, sier Don Powrie, administrerende direktør i DLP Design. Normalt, for å få denne mengden RAM, ville vi kreve en mye større MCU, og dermed kjøre opp den totale produktkostnaden. Kundeproblem Tid som kreves for å oppdatere Eink-displayet, må holdes på et minimum. Muligheten til raskt å lagre og tilbakekalle fullskjermbilder fra bilderammebufferen er viktig For å ha nok RAM, vil det være behov for en mye større og dyrere MCU FRAM Advantage Oppdater privat visning raskt Reduser MCU-prisen når industristandard Blits til RAM-forhold ikke er ideelle, eller når ekstern RAM-buffering er påkrevd. Data er sikret ved strømbrudd MSP430FR2033 Lite minne (opptil 16 KB FRAM) fotavtrykk med rikelig inngangsutgangsposer (IO). Enheter har også spesiell infrarød (IR) modulasjonslogikk for å forenkle design i applikasjoner, inkludert fjernkontroller. Opptil 16 MHz Opptil 16 KB Ikke-flyktig FRAM 10-kanals 10-bits ADC IR modulasjonslogikk Opptil 60 GPIO MSP430FR2311 Lite minne (opptil 4 KB FRAM) fotavtrykk med utvidede analoge evner. Enhetsfunksjoner operasjonsforsterker, transimpedansforsterker (TIA). komparator og ADC for direkte tilkobling til sensorer i et system. Opptil 16 MHz Opptil 4 KB ikke-flyktig FRAM 8-kanals 10-biters ADC-transimpedansforsterker Liten pakke (3x3) MSP430FR2633 Liten minne (opptil 16 KB FRAM) fotavtrykk med rikelig inngangsutgangsposer (IO). Enheter har CapTIvate kapasitiv berøringsteknologi for å aktivere laveffekt selv - og gjensidig kapasitansdesign med 10 V RMS støyimmunitet. Opptil 16 MHz Opptil 16 KB ikke-flyktig FRAM MSP430FR4133 Lite minnefotavtrykk med en ultra-lav-effekt LCD-kontroller og rikelig kapasitiv berøring aktivert IO-pinner. Den 256-segmenters LCD-kontrolleren har en integrert ladepumpe for vedlikeholdt kontrast i lav-effektmodus og har programvarekonfigurerbare pinner for forenklet maskinvareoppsett av LCD-skjermer. IR modulasjonslogikk er også tilgjengelig på disse MCUene. Opptil 16 MHz Opptil 16 KB Ikke-flyktig FRAM-industri Laveste strøm LCD-kontroller 10-kanals 10-bits ADC IR-moduleringslogikk Opptil 60 kapasitive berøringsaktivert GPIO MSP430FR5739 Det første settet av enheter med FRAM-teknologi. Disse microcontrollers tilbyr 5 timers, en 12-kanals 10-bit ADC, og direkte minne tilgang (DMA) for å minimere tiden i aktiv modus. Denne serien tilbyr også den minste pakkede enheten i MSP430-porteføljen (24-pin 2x2 DSBGA). Opptil 24 MHz Opptil 16 KB Ikke-flyktig FRAM 12-kanals 10-biters ADC-komparator 5 Timere Direkte minnestilgang minste pakke i porteføljen (DSBGA 2x2) Opptil 33 GPIO MSP430FR5969 Verdens laveste MCU-serien (kodenavn: Wolverine) med et mellomstort minneopptak (opptil 64 KB FRAM). Disse enhetene har 100 AMHz aktiv modus nåværende og 450 nA standby modus strøm med sanntids klokke (RTC) aktivert. Porteføljen inneholder også en ny 16-kanals 12-bit analog-til-digital-omformer (ADC) som kan akseptere enkelt - eller differensialinnganger. En vinduskomparator er integrert for lengre tid i lavmåte modus. Disse MCUene har også en 256-biters Advanced Encryption Standard (AES) akselerator og Intellectual Property (IP) Encapsulation-modul for å beskytte viktige data. Opptil 16 MHz Opptil 64 KB Ikke-flyktig FRAM 16-kanals 12-biters ADC-komparator 5 Timere Direkte minnetilgang 256-biters AES Opptil 40 GPIO MSP430FR6989 Disse mikrokontrollere utvider vår MSP430FR59x58x-serie med mer minne og integrasjon. Disse enhetene har et stort minnefotavtrykk (opptil 128 KB FRAM), en lav-effekt 320-segment LCD-kontroller med integrert ladepumpe, og et nytt utvidet skanningsgrensesnitt (ESI) for måling av rotasjon eller nærhet. Opptil 16 MHz Opptil 128 KB Ikke-flyktig FRAM LCD-kontroller 16-kanals 12-biters ADC-komparator Utvidet skannegrensesnitt 5 Timere Direkte minnetilgang 256-biters AES Opptil 83 GPIO-evaluering og design Texas Instruments har de riktige evalueringsverktøyene for å hjelpe du velger FRAM-enheten for søknaden din og begynner å utvikle. Enten ny til mikrokontrollere, en erfaren ingeniør, som bare begynner å evaluere, eller integrere MSP430 mikrokontrollere i et design, Ultra-low-power MSP430FRxx FRAM mikrokontroller serien. For rask evaluering eller rask prototyping tilbyr MSP430 FRAM-baserte LaunchPad Development Kits alt som er nødvendig for å komme i gang for under 20. Denne low-cost MCU-plattformen er komplementert med Target Socket-kort for en full pin breakout av våre mikrokontroller. Disse evalueringsmodulene (EVM) muliggjør full integrering av MSP430 MCUer i et utviklingssystem. Disse kitene er alle aktivert av MSP430 microcontroller programmerdebugger, MSP-FET. Integrerte utviklingsmiljøer (IDE) eller applikasjonsbiblioteker er også tilgjengelige for jumpstart-utvikling. Komme i gang har aldri vært enklere med TIs Code Composer Studio eller IAR Embedded Workbench IDEs. Disse er supplert med gratis, optimaliserte biblioteker for å forbedre ytelsen til matteoperasjoner og forenkle utviklingen ved bruk av kapasitiv berøring eller grafikk i et program. Optimizers, for eksempel EnergyTrace8482 Technology. er også tilgjengelig for å muliggjøre forkortet tid til markedet. Referansedesigner er også tilgjengelige for å hjelpe utviklere til å danne sine systemer. TI Designs gir grunnlaget som du trenger, inkludert metodikk, testing og designfiler for raskt å evaluere og tilpasse systemet. TI Designs hjelper deg med å akselerere din tid til markedet. Kjører over 8 MHz Ventetilstandskontroll og instruksjon Utførelseshastighet som kjører over 8 MHz Ventetilstandskontroll og instruksjon Utføringshastighet Systemklokken for CPU eller DMA kan overskride FRAM-tilgang og syklustidskrav. For disse scenariene er en ventetilstandsgenerator mekanisme implementert. Den anbefalte betjeningsbetingelsen for det enhetsspesifikke databladet viser frekvensområdet med de nødvendige ventetilstandsinnstillingene. Antall ventetilstater styres av NWAITS2: 0 bits i FRCTL0-registeret. For å øke systemklokkefrekvensen utover den maksimale frekvensen som tillates av den nåværende ventetilstandsinnstillingen, er det nødvendig med følgende trinn: Øk antall ventetilstater ved å konfigurere NWAITS2: 0 i henhold til målfrekvensen. FRCTL0 FRCTLPW NWAITSx Øk frekvensen til det nye målet. Med hensyn til skrivetiden skrives FRAM i fireordblokker, og skrivetiden er innebygd i hver lesesyklus. Derfor er det ingen forskjell mellom lesetid og skrivetid for et FRAM byte, ord eller 4word blokk. Med hensyn til lesefrekvensen, er FRAM-tilgangene (både lese og skrive) avgrenset til 8 MHz. Flash-leser kan imidlertid finne sted ved maksimal hastighet tillatt av enheten (fSYSTEM), som for eksempel er 8 MHz eller 16 MHz i MSP430F4x-mikrokontrollere. Merk: Hastigheten til undervisning i et FRAM-basert system påvirkes av arkitekturen. MSP430FRx MCUene bruker en 2-veis associativ cache som benytter en kombinasjon av register og FRAM-tilgang når de utføres fra ikke-flyktig minne. Dette gjør at systemets gjennomstrømning kan være høyere enn den maksimalt tillatte lesefrekvensen på 8 MHz. Vennligst se MSP430 FRAM-teknologien Hvordan og Best Practices for mer informasjon om utførelse med MSP430FRx MCUer. Memory Layout Partisjonering Memory Layout Partisjonering Siden FRAM-minne kan brukes som universelt minne for programkode, variabler, konstanter, stabler og så videre, må minnet være partisjonert for applikasjonen. Kode Komponist Studio og IAR Embedded Workbench for MSP430 IDEer kan begge brukes til å sette opp en applikasjonskrevende minneoppsett for å gjøre best mulig bruk av den underliggende FRAM, avhengig av applikasjonsbehov. Disse minnepartisjoneringsordninger er vanligvis plassert inne i IDE-spesifikke linker-kommandofilen. Som standard vil linker-kommandofilene vanligvis tildele variabler og stabler inn i SRAM. Og programkoden og konstantene er allokert i FRAM. Disse minnepartisjonene kan flyttes eller størres avhengig av søknadens behov. Vennligst se MSP430 FRAM-teknologien Hvordan og Best Practices for mer informasjon og for å se nærmere på minnepartisjonering ved hjelp av IAR Embedded Workbench. Memory Partitioning Eksempel 1) Manuell MPU Configuration Deretter kan MPU konfigureres for å beskytte tre forskjellige minnesegmenter i programvare. Hvert segment kan konfigureres individuelt for å lese, skrive, utføre eller kombinere dem. De fleste applikasjoner vil ha noen form for variabler som skal beskyttes som lese og skrive, konstanter som skal leses, og programkoden skal leses og utføres bare. Det er to registre som definerer hvordan segmentgrensene er konfigurert: Segmenteringsgrensesnitt 1 (MPUSEGB1) for minnebeskyttelsesenhet 1 (MPUSEGB1) og Segmenteringsgrense 2 for minnebeskyttelsesenhet (MPUSEGB2). Før du skriver til registret, må adressen flyttes til høyre ved 4 biter. Merk: Den minste MPU-segmentstørrelsen er 1KB eller 0x0400. Hvis du vil ha mer informasjon, kan du se den enhetsspesifikke familiebrukerveiledningen. MPU Memory Segmentation Eksempel 2) Wizard-basert MPU Configuration Code Composer Studio v6rsquos innebygd MSP MPU Wizard er tilgjengelig gjennom CCS Project Properties. For å åpne denne dialogboksen, høyreklikk på prosjektet i CCSrsquo Project Explorer-visningen og velg Egenskaper. Aktiver MPU ved å merke av boksen Aktiver minnebeskyttelsesenhet (MPU). Da bør konfigurasjonen stå som standard slik at kompilatoren automatisk kan konfigurere og partisjonere minnesregioner basert på applikasjonsbruken. For eksempel er konstanter konfigurert som skrivebeskyttet eller programkoden er konfigurert som lest og kjøres bare. Når konfigureres gjennom MPU-veiviseren, konfigurerer C-oppstartsrutinen automatisk og gjør det mulig for MPUen før du går inn i hovedmenyen () uten ytterligere trinn som trengs av deg. Vennligst se MSP430 FRAM Technology Hvordan og Beste praksis for mer informasjon og å se nærmere på å sikre FRAM ved hjelp av IAR Embedded Workbench. MPU-veiviseren MSP Ultra-Low-Power mikrokontroller (MCU) - serien fra Texas Instruments (TI) tilbyr det laveste strømforbruket og den perfekte blandingen av integrerte eksterne enheter for et bredt utvalg av lavt strømforbruk og bærbare applikasjoner. Dette kan omfatte bruk som en måling mcu eller som en mikrokontroller i fjernkontroll design, med integrering som muliggjør funksjonalitet av en segment lcd driver eller ir modulator. TI gir robust designstøtte for MSP Low Power MCU-familien, inkludert tekniske dokumenter, trening og mikrokontroller utviklingssett og innebygde programvareverktøy du trenger for å starte i dag Dette gjør MSP430, en enkel å bruke mikrokontroller for å begynne utvikling. Denne low-cost microcontroller er det perfekte stedet å starte for batteridrevne mcu-applikasjoner. Log entry 11 september 2011 av rwb. under Robotics. Da Texas Instruments (TI) introduserte sin nye verdi linje 16-bits mikrokontroller komplett med programmerer og utviklingsbrett som heter MSP430 Value Line LaunchPad i midten av 2010 for kun USD 4,30 inkluderer fraktkostnad, gjør dette det som den billigste programmereren og utviklingen bordplattform som du noen gang kan finne i markedet. Derfor har introduksjonen av MSP430-verdi linjens LaunchPad-utviklingsbrett en enorm innvirkning, særlig blant elektronikkhobbyisten, studentene og entusiasten fordi nå tar den store gutten (TI) alvorlig del i det elektroniske hobbyistmarkedet og konkurrerer direkte om sin 16-biters klasse verdi line microcontrollers til 8-biters klasse microcontrollers som hovedsakelig dominert av Atmel og Microchip. MSP430 Value Line LaunchPad utviklingsbrett kommer med det eklipsebaserte Texas Instruments integrerte utviklingsmiljøet (IDE) kalt Code Composer Studio (nedlastbart fra TI nettsted) og utstyrt med profesjonell klasse C kompilator og debugger, noe som gjør utviklingen av MSP430 mikrokontroller basert innebygd system blir enkelt og morsomt. Som du vet, brukte de fleste elektronikkhobbyisten den populære 8-biters klassen microcontroller til de fleste av deres innebygde prosjekt som AVR mikrokontroller fra Atmel og PIC microcontroller fra Microchip. Nå kan du kanskje lure på hvorfor vi må lære en annen type mikrokontroller, da de fleste moderne mikrokontroller allerede har gitt alle nødvendige funksjoner som vi trenger. Hvorfor ikke, å lære en annen type mikrokontroller er et av de fascinerende og utfordrende temaene som skal læres spesielt for den ekte elektronikkhobbyisten, da dette vil utvide vår kunnskap og utnytte det som er best på hver av mikrokontrollertypene for å støtte vårt fremtidige innebygde systemprosjekt . MSP430 Microcontroller Project Etter mange hensyn til hva som er den attraktive måten å introdusere denne MSP430 mikrokontrolleren, i stedet for bare å starte med en felles blinkende LED, bestemte jeg meg for å bygge en enkel og likevel mest populær robot, 8230yes, 8230is en annen Line Follower Robot (LFR ) ved hjelp av Texas Instruments 14-pins 16-bits MSP430G2231 mikrokontroller som følger med MSP430 Value Line LaunchPad-utviklingsbrettet. Fordi jeg tror å bygge en robot, vil du gi deg den grunnleggende kunnskapen og forståelsen du trenger for å begynne å utforske mange av de forhåndsfunksjoner som tilbys av disse 16-biters MSP430-verdi linjene mikrokontrollere selv. Hvis du merker på bildet ovenfor, brukte denne Line Follower Robot (LFR) et lignende CD-chassis, DC-girmotor og sensorer funnet på mine tidligere artikler 8220The LM324 Quad Op-Amp Line Follower Robot med Pulse Width Modulation 8220. Derfor er dette prosjektet også fungerer som et godt eksempel på 8220digital8221 versjonen av analog LFR we8217ve bygget før. Følgende er den komplette elektroniske skjematikken til Line Follower Robot: La nå liste ned alle nødvendige elektroniske komponenter og andre støttede materialer for å bygge denne LFR: 1. Motstander: 220 (2), 470 (1), 10K (3), 22K (2) og 47K (1) 2. Lysavhengig motstand (2) 3. Kondensatorer: 0.1uF (3), 1uF (1) og 47uF16v (1) 4. Dioder: 1N4148 (2) 5. Høy intensitet 3 mm blå Lysemitterende diode (3) 6. N-kanals MOSFET: BS170 (3) 7. IC: ACS 1722A 3,3 volt spenningsregulator eller tilsvarende 8. Texas Instruments MSP430 Value Line LaunchPad Utviklingspanel 9. DC Motor: Solarbotics GM2 Geared DC motor med hjul (2) 10. En tilbakestill trykknappbryter 11. Perforert PCB: 70 x 55 mm for hovedkortet og 50 x 15 mm for sensorkortet 12. 4 x AA batteriholder 13. CDDVD ROM (2) 14 . Plastperler og papirklips for hjulet (det tredje hjulet) 15. Bolt, muttere, dobbeltbånd og standard elektrisk tape for den svarte linjen 16. Texas Instruments Code Composer Studio Core Edition versjon 4.2.1.000 04 (brukt i dette prosjektet) 17. Texas Instruments MSP430G2231 mikrokontroller datablad SLAS694 og SLAU144F. Den komplette fastvaren for dette Line Follower Robot-prosjektet er utviklet med C-språket: Line Follower Robot Working Principle Denne Line Follower Robot design brukte fotocell sensoren kjent som en Light Dependent Resistor (LDR) laget av Cadmium Sulphide (CdS) for å oppdage svart sporlinje, når LDR er over svart sporlinjen, vil den gi en høy motstandsverdi mens den over den hvite bakgrunnen, og den vil gi en lav motstandsverdi. Sammen med 22K motstanden vil de danne hva som kalles spenningsdelerkretsen. Denne spenningsdeler-kretsføleren vil gi den varierende spenningen i henhold til mengden av lysintensiteten reflektert tilbake til LDR. Den blå lysdioden (LED) vil gi en konstant lyskilde for sensorene. Deretter vil MSP430G2231 microconttroller oversette denne varierende spenningen ved hjelp av sin analoge til digitale konvertering (ADC) periferi i omdreiningstallet for likestrømsmotorer ved hjelp av det såkalte pulsebreddemodulasjons-signalet (PWM). Fordi denne LFR brukte 8220 differensialstyring 8221 (dvs. brukt to uavhengige likestrømsmotor for styring), ved å variere den venstre og høyre DC-motorrotasjonshastigheten proporsjonalt med lysintensiteten mottatt av både venstre og høyre LDR, kunne vi gjør det enkelt for roboten å navigere svart spor linje med hell. MSP430G2231 Microcontroller Mixed Signal Processing (MSP) 430-serien mikrokontrolleren presenteres først i slutten av 1990 av Texas Instruments. It8217 er en 16-bits RISC (redusert instruksjonssett datamaskin) mikrokontroller med Von Neumann arkitektur hvor CPU, IO og minne delte samme 16-biters kontroll-, adresse - og databuss. MSP430 er spesielt designet for lavt forbruk og optimaliseres for å bli brukt med C-kompilatoren. 8220G8221-verdi-serien, som den 14-polede MSP430G2231-mikrokontroller, presenteres sammen med den prisfarlige LaunchPad-utviklingsbrettet. Denne mikrokontroller har disse følgende interessante funksjonene som I8217m sikkert som elektronikkhobbyist vil du være ivrig etter å prøve det selv. En av funksjonene som gjør denne 14-pin MSP430G2231 mikrokontrolleren spesiell, er å bygge inn on-chip emuleringslogikk ved hjelp av det som kalles 8220 Spy-Bi-Wire 8221 eller også kjent som 2-wire JTAG (Joint Test Action Group). Denne nyttige funksjonen gjør det mulig for oss å stappe C-koden linje for linje, sette et pause, og kontrollere variablene eller registreverdien mens brikken er i kretsen (i kretsprogrammering og feilsøking). MSP430G2231 Microcontroller InputOutput (IO) MSP430G2231 mikrokontroller har 10 IO, 8 pinner på de første porterne (P1) og 2 pinner på de andre porterne (P2). Alle disse porter kan konfigureres som inngangs - eller utgangsporter for generell bruk, og ofte de multiplexeres med annen IO-funksjon som AD (analog til digital) - inngang, PWM-ut, USI (Universal Serial Interface), klokkeinngang, krystalloscillatorinngang og JTAG IO terminal. Som du har sett fra tabellen ovenfor, brukte LFR bare flere IO-porter og som tommelfingerregler må de ubrukte IO-porter konfigureres som utgangsporter og la dem være frakoblet. Alternativt kan du konfigurere alle ubrukte porter som inngangsporter (standard ved oppstart) og aktiver nedtrekksmotoren for å unngå at det uforutsigbare 8220 flytende 8221-inngangsproblemet oppstår i prosjektet. Følgende C-kode viser hvordan du konfigurerer de nødvendige IO-porter for denne LFR: P1DIR-porten (port 1 retning) brukes til å konfigurere IO-portretningen, hvor hver bit av denne 16-biten svarer til IO-portene (P1.0 til P1.7). Ved å aktivere den tilsvarende biten, forteller vi bare til MSP430G2231-mikrokontrolleren for å konfigurere porten som en utgangsport. Deretter registrerer P1REN (port 1 pull-down-down motstand) ved å aktivere den tilsvarende biten vi kunne aktivere nedtrekksmotoren (konfigurert som inngang) eller opptrekksmotstand (konfigurert som utgang). MSP430G2231 mikrokontrolleren P1OUT (port 1 utgang) register brukes til å kontrollere logisk tilstand for utgangsporten, den pleide å slå på og av P1.0 og P1.6 for å generere det nødvendige PWM-signalet. Jeg brukte disse portene fordi disse portene er koblet til to LED i MSP430 LaunchPad-utviklingsbrettet, derfor kan du enkelt teste PWM-utgangen ved hjelp av disse lysdiodene. P1.7-utgangsporten brukes også til å styre sensorlampen ved siden av som sensorlampekilden, den fungerer også som tegnindikator når LFR-finishen kalibrerer sensorene. Følgende kode bruker C språkbitoperatør for å slå på og av porten ved hjelp av MSP430G2231 mikrokontroller P1OUT-registret: Fra databladet er maksimal utgangsstrøm for hver port ca. 6 mA, og for alle utganger kombinert er ca 48 mA, dette selvfølgelig er ikke egnet til å kjøre DC-motoren direkte derfor i dette prosjektet brukte jeg n-kanal MOSFET (Metal Oxid Semiconductor Field Effect Transistor) BS170 for å kjøre DC motor og sensor LED. Fordelen med å bruke MOSFET fordi denne typen transistor har svært høy inngangsimpedans på sin Gate (G) terminal, noe som betyr at den trenger meget lav strøm for å kunne operere, og den har en lav ON-motstand mellom dens Drain (D) og Source S) terminaler kalt Rds spesielt når de opererer på høyere DC spenningsforsyning sammenlignet med vanlig Bipolar Junction Transistor (BJT). By applying voltage greater than the Vgs threshold voltage i. e. voltage applied between the Gate and Source terminal, it8217s about 2 volt on the BS170 MOSFET, we could bring the MOSFET into its saturate stage (ON) and this voltage level could be easily provided by the MSP430G2231 microcontroller output port. The MSP430G2231 Pulse Width Modulation Pulse Width Modulation (PWM) is a technique widely used in modern switching circuit to control the amount of power given to the electrical device (i. e. the DC motor). By simply switches ON and OFF the power supplied to the DC motor rapidly and the average amount of energy received by the DC motor is corresponding to the ON and OFF period (duty cycle) therefore by varying the ON period i. e. longer or shorter than the OFF period, we could control the DC motor rotation speed. The MSP430G2231 microcontroller actually has two capturecompare registers that could be used for generating the PWM automatically, but because we need two independent PWM sources with the configurable PWM duty cycle and on the specific PWM frequency, therefore we could not use the built in PWM which is provided by the MSP4302231 microcontroller. Instead on this LFR project I used the software PWM which is based on the MSP430G2231 TimerA channel 0 interrupt. The basic software PWM could be made by first creating the basic digital ramp counter for the PWM signal period and then use the variable to be compared with the ramp counter value and this will create the necessary PWM duty cycle as shown on this following diagram: The basic digital ramp counter used the pwmcount variable to count from 0 to MAXCOUNT and start to count from 0 again repeatedly. The pwmcount will provide a constant period to the PWM signal. Next we need two variables pwmm1 and pwmm2 to be compared with the pwmcount variable. When the pwmcount reach 0, we simply turn ON the MSP430G2231 microcontroller output port and when the pwmcount equal to the pwmm1 or pwmm2 value, we simply turn OFF the MSP430G2231 microcontroller output port. Therefore by varying both of the pwmm1 or pwmm2 variables value we could control the PWM signal duty cycle. We used the MSP430G2231 microcontroller TimerA in 8220 Up Mode 8221 to actually increase and control the pwmcount value and when the TimerA counter register ( TAR ) equal to Timer A CaptureControl Register channel 0 ( TACCR0 ) it will generate the interrupt. Because on this project I used MSP430G2231 microcontroller standard Sub Main Clock ( SMCLK ) of 1 MHz for the TimerA clock source, thus assigning 99 to the TACCR0 register will make the TimerA channel 0 to generate interrupt on every 100 ( TACCR0 1 ) cycles or about 0.1 ms as shown on this following C code: The software PWM implementation is implemented inside the TimerA channel 0 interrupt function handler as show on this following C code: By choosing MAXCOUNT of 100, we could get the PWM period about 101 x 0.1ms, which is about 10.1 ms or we could say that the PWM frequency is about 100 Hz and by assigning each of the pwmm1 and pwmm2 variables value from 0 to 100, we could get the PWM duty cycle output varying from 0 to 100. The pwmm1 and pwmm2 variables value is supplied by the digital value from the left and the right sensors from the adc2cycle() function which basically set the upper and lower PWM duty cycle value returned to these variables. The upper and lower threshold setting is depend on the black line track and the sensors characteristic and could be changed by changing each of the MAXTHRESHOLD and the MINTHRESHOLD definition value. The MSP430G2231 ADC Peripheral The MSP430G2231 microcontroller has one 10-bit Analog to Digital Conversion (ADC) peripheral also known as ADC10 peripheral with 8 channel (A0 to A7), where the channel (A10) is specially used for the internal thermometer. The MSP430G2231 ADC10 peripheral used what is called 8220 Successive Approximation Method 8221 to convert the analog input from one of these channels to the 10-bit digital representation and stores the result in the ADC10MEM register. The ADC10 peripheral is controlled by two control registers, ADC10CTL0 and ADC10CTL1 . Thus by setting the ADC10ON bit (logical high) in ADC10CTL0 register we enable this ADC core. The most important thing to remember that these ADC10 control registers can only be modified when ENC (Enable Conversion) bit in ADC10CTL0 is low ( ENC 0 ) and prior to the AD conversion this bit has to be set to 1 (logical high). The MSP430G2231 ADC10 peripheral have four operating mode which could be selected by setting the CONSEQx bits in the ADC10CTL1 (ADC10 Control Register 1) and on this LFR project we will use the 8220 Single Channel Single Conversion Mode 8220. The following C code show how we setup the MSP430G2231 microcontroller ADC10 peripheral: The multiplexer analog channels input could be selected by assigning the corresponding INCHx bits in the ADC10CTL1 register. The actual AD conversion is take placed in the ReadSensor() function, as shown on this following C code: Noticed on the C code above that before we change the ADC10 control register (i. e. ADC10CTL0 and ADC10CTL1 ), we have to disable the ADC10 first be resetting the ENC bit on ADC10CTL0 register then prior to the AD conversion we set (enable) the ENC and ADC10SC (ADC10 Start Conversion) bits in ADC10CTL0 register. Next we wait the conversion by checking the ADC10BUSY bit on the ADC10CTL1 register. When the ADC10BUSY bit is become 822008221 means the conversion is done and we could retrieve the stored 10-bit digital value in the ADC10MEM register. One of the most important features on this LFR project is the used of the calibration phase in the CalibrateSensor() function. In the calibration phase we read the sensors for their maximum value (i. e. on the black line) and the minimum (i. e. on the white background) value. This calibration phase will ensure both of the left and right sensors provide equal value to the PWM generator for driving DC motor. The actual algorithm to make this LFR navigate the black track line successfully is shown on this following C code: The Line Follower Robot Assembly The Line Follower Robot first is constructed on the breadboard in order to test the circuit before I move it to the perforated PCB (70 x 55 mm) I used a similar wiring method to wire the circuit on the main LFR perforated PCB as explained on my previous article 8220Quick and Efficiently Wiring Your Prototype Circuit Board 8220. The Line Follower Robot construction could be constructed freely but the easiest one is to use the discarded CDDVD ROM as shown on these following pictures: I glued the two CDROM together in order to make more room and attached the two GM2 DC motors, 4xAA battery holder, main board, and sensor board using the double tape. The sensors (LDR and LED) are constructed in a small perforated PCB (50 x 15 mm) with this following guidance: Finally using the Texas Instruments MSP430 Value Line LaunchPad development board Spy-Bi-Wire connector and the Texas Instruments Code Composer Studio Core Edition v4.2.1.00004 (used in this project), we could easily programming and debugging the LFR firmware: After putting all the parts together and downloading the code into the MSP430G2231 microcontroller flash RAM now is time to watch how this nice Line Follower Robot in action: Another interesting video of this MSP430G2231 based Line Follower Robot: As you8217ve seen from the demo video above this Texas Instruments 16-bit MSP430G2231 microcontroller based Line Follower Robot design could handle and smoothly navigate the complex black track line using just two LDR sensors. I hope this Line Follower Robot project will trigger your passion to learn more about this powerful 16-bit MSP430 value line series microcontroller from Texas Instruments. Bookmarks and Share Related Posts

No comments:

Post a Comment