Embedded systeem en SOC (systeem op chip) ontwerpers kiezen voor bijzonder microprocessor kernen , bibliotheken en verschillende tools om op microprocessor gebaseerde applicaties te ontwikkelen. Een ARM-processor is een van de beste alternatieven die verkrijgbaar zijn voor ontwerpers van embedded systemen. In de afgelopen jaren is de ARM-architectuur erg populair geworden en deze zijn verkrijgbaar bij verschillende IC-fabrikanten. De toepassingen van ARM-processors omvatten mobiele telefoons, remsystemen voor auto's, enz. Een wereldwijde ARM-gemeenschapspartner heeft zowel halfgeleiderbedrijven als productontwerpbedrijven ontwikkeld, waaronder ingenieurs, ontwerpers en ontwikkelaars. Dit artikel gaat over op ARM7 gebaseerde LPC2148-microcontroller, architectuur en pinconfiguratie. Dit artikel helpt u de basisprincipes van de microcontroller te begrijpen.
ARM7 gebaseerde LPC2148 Microcontroller
De volledige vorm van een ARM is een computer met geavanceerde gereduceerde instructieset (RISC) machine , en het is een 32-bits processorarchitectuur die is uitgebreid met ARM-holdings. De toepassingen van een ARM-processor omvatten verschillende microcontrollers en processors. De architectuur van een ARM-processor werd door veel bedrijven in licentie gegeven voor het ontwerpen van op ARM-processor gebaseerde SoC-producten en CPU's. Hierdoor kunnen de bedrijven hun producten vervaardigen met behulp van ARM-architectuur. Evenzo zullen alle grote halfgeleiderbedrijven ARM-gebaseerde SOC's maken, zoals Samsung, Atmel, TI enz.
Wat is een ARM7-processor?
ARM7-processor wordt vaak gebruikt in embedded systeemtoepassingen. Het is ook een balans tussen klassieke en nieuwe Cortex-sequenties. Deze processor is geweldig in het vinden van de bronnen die op internet bestaan met uitmuntende documentatie aangeboden door NXP Semiconductors. Het past volledig voor een leerling om de implementatie van hardware & software-ontwerp in detail te verkrijgen.
LPC2148 Microcontroller
De LPC2148-microcontroller is ontworpen door Philips (NXP Semiconductor) met verschillende ingebouwde functies en randapparatuur. Om deze redenen wordt het zowel betrouwbaarder als efficiënter voor een applicatieontwikkelaar. LPC2148 is een 16-bit of 32-bit microcontroller gebaseerd op de ARM7-familie.
Kenmerken van LPC2148
De belangrijkste kenmerken van LPC2148 zijn onder meer de volgende.
- De LPC2148 is een 16 bit of 32 bit ARM7 familie gebaseerde microcontroller en verkrijgbaar in een klein LQFP64-pakket.
- ISP (in systeemprogrammering) of IAP (in applicatieprogrammering) met behulp van on-chip bootloader-software.
- On-chip statische RAM is 8 kB-40 kB, on-chip flash-geheugen is 32 kB-512 kB, de brede interface is 128 bit, of accelerator maakt 60 MHz high-speed operatie mogelijk.
- Het duurt 400 milliseconden om de gegevens in de volledige chip te wissen en 1 milliseconde voor 256 bytes aan programmeren.
- Embedded Trace-interfaces en Embedded ICE RT bieden real-time debugging met supersnelle tracering van instructie-uitvoering en on-chip Real Monitor-software.
- Het heeft 2 kB eindpunt-RAM en USB 2.0 full-speed apparaatcontroller. Bovendien biedt deze microcontroller 8kB on-chip RAM in de buurt naar USB met DMA.
- Een of twee 10-bits ADC's bieden 6 of 14 analogen i / ps met een lage conversietijd van 2,44 μs / kanaal.
- Slechts 10 bit DAC biedt veranderlijke analoge o / p.
- Externe gebeurtenisteller / 32-bits timers-2, PWM-eenheid en waakhond.
- Low power RTC (real-time klok) en 32 kHz klokingang.
- Meerdere seriële interfaces zoals twee 16C550 UART's, twee I2C-bussen met 400 kbit / s snelheid.
- 5 volt tolerante, snelle input / output-pinnen voor algemeen gebruik in een klein LQFP64-pakket.
- Buiten onderbrekingspinnen-21.
- 60 MHz van de uiterste CPU CLK-klok die kan worden verkregen via de programmeerbare fasevergrendelde lus op de chip door de tijd op te lossen is 100 μs.
- De ingebouwde oscillator op de chip werkt met een extern kristal dat varieert van 1 MHz-25 MHz
- De modi voor energiebesparing bestaan voornamelijk uit inactief en uitschakelen.
- Voor extra stroomoptimalisatie zijn er individuele in- of uitschakelen van perifere functies en perifere CLK-schaling.
Geheugen
De LPC2148-microcontroller heeft 512 kB on-chip FLASH-geheugen en 32 kB on-chip SRAM. Deze microcontroller bevat ook inherente ondersteuning tot 2kB eindpunt USB RAM. Dit geheugen is goed afgestemd op alle microcontroller-toepassingen.
On-chip FLASH-geheugensysteem
Deze microcontroller bevat een 512-kB Flash-geheugensysteem en dit geheugen kan nuttig zijn voor zowel de gegevensopslag als de code. Het programmeren van dit geheugen kan als volgt worden gedaan.
- Door JTAG-interface in serie op te nemen
- UART of ISP gebruiken (in systeemprogrammering)
- Mogelijkheden van IAP (in applicatieprogrammering)
Het op IAP-functie gebaseerde applicatieprogramma kan ook worden verwijderd terwijl het programma wordt uitgevoerd. Telkens wanneer de microcontroller LPC2148 on-chip bootloader wordt gebruikt, is 500 kB Flash-geheugen beschikbaar voor consumentencode. Het Flash-geheugen van deze microcontroller biedt het kleinste aantal van 100.000 schrijf- / wiscycli en 20 jaar gegevensbehoud.
SRAM op de chip
Deze microcontroller biedt statische RAM met 32 kB en is erg handig voor gegevensopslag of code. Het is toegankelijk voor 8-bits, 16-bits en 32-bits.
Input / output-poorten
De LPC2148-microcontroller heeft twee invoer- / uitvoerpoorten en deze worden P0 en P1 genoemd. Elke poortpinnen zijn gemerkt met PX.Y. Hier staat ‘X’ voor poortnummer zoals 0 of 1, terwijl ‘Y’ pincode 0-31 aangeeft. Alle pinnen kunnen ook alternatieve taken uitvoeren. P0.8 biedt bijvoorbeeld als GPIO- en Tx-pin van de UART1, AD1.1, PWM4. Op RST (RESET) is elke pin gerangschikt als GPIO.
Hoe te beginnen met programmeren?
De eerste stap in de richting van lpc2148-programmering is een arrangement van GPIO-pinnen. Dus hier zijn ook de gerelateerde concepten als registers De algemene I / O-poortpinnen in LPC2148 omvatten P0.0 tot P0.31 en P1.16 tot P1.31, en eigenlijk zijn deze pinnen beschikbaar op basis van het gebruik van alternatieve functies.
Port-0 en Port-1 zijn 32-bit input / output-poorten, en elk bit van deze poorten kan worden bestuurd door een individuele richting. De werking van poort-0 en poort-1 is afhankelijk van de functie van een pin die is geselecteerd met behulp van het pin-verbonden blok. In Port-0 zijn pinnen zoals P0.24, P0.26 en P0.27 niet verkrijgbaar, terwijl in Port-1 de pinnen 0 tot 15 niet verkrijgbaar zijn. Hier worden beide pinnen, zoals Port-0 en Port-1, bestuurd door twee groepen registers die hieronder worden besproken.
LPC2148 Pin-configuratie
Op ARM7 gebaseerde microcontroller (LPC2148) Pinconfiguratie
Pin1- (P0.21 / PWM5CAP1.3 / AD1.6)
- P0.21 is een GPIO-pin (I / O-pin voor algemeen gebruik)
- AD1.6 is alleen verkrijgbaar in LPC2144 / 46/48-microcontrollers waar een AD1.6 staat voor ADC-1, i / p-6.
- PWM5 is een pulsbreedtemodulator-uitgang-5.
- CAP1.3 is een Capture i / p voor Timer-1, kanaal-3
Pin2- (P0.22 / CAP0.0 / AD1.7 / MAT0.0 2
- P0.22 is een digitale GPIO-pin
- AD1.7-pin is alleen beschikbaar in LPC2144 / 46/48 waar een AD1.7 staat voor ADC-1, input-7
- CAP0.0 is een capture-invoerpin voor Timer-0, kanaal-0.
- MAT0.0 is een match o / p voor Timer-0, kanaal-0
Pin3-RTXC1 3
Het is een I / p naar het RTC-oscillatorcircuit
Pin4- TRACEPKT3 / P1.19
- TRACEPKT3 is een traceerpakket, bit-3, standaard input / output poort door de inner pull-up.
- P1.19 is een GPIO digitale pin
Pin5-RTXC2
Dit is een outputpin van het RTC-oscillatorcircuit
Pin6, Pin18, Pin25, Pin42 en Pin50
Deze pinnen zijn een grondreferentie
Pin7-VDDA
Deze pin is een analoge spanningsvoeding (3.3V), en deze spanning is erg handig voor de on-chip analoog naar digitaal converters en digitaal naar analoog converters.
Pin8- P1.18 / TRACEPKT2
- P1.18 is een digitale GPIO-pin
- TRACEPKT2 is een traceringspakket, bit-2, standaard invoer / uitvoerpoort door de inner pull-up.
Pin9- P0.25 / AOUT / AD0.4
- P0.25 is een GPIO digitale pin I
- AD0.4 staat voor ADC-0, input-4
- Aout- de output van DAC en die is alleen toegankelijk in LPC2142 / LPC2144 / LPC2146 / LPC2148
Pin10- D +
Deze pin is een bidirectionele USB D + -lijn
Pin11- D-
Deze pin is een bidirectionele USB-D-lijn
Pin12-P1.17 / TRACEPKT1
- P1.17 is een digitale GPIO-pin
- TRACEPKT1 is een traceringspakket, bit-1, standaard invoer / uitvoerpoort door de binnenste pull-up.
Pin13-P0.28 / CAP0.2 / AD0.1 / MAT0.2
- P0.28 is een GPIO digitale pin
- AD0.1 staat voor ADC-0, input-1
- CAP0.2 is een capture i / p voor Timer-0, kanaal-2.
- MAT0.2 is een match o / p voor Timer-0, kanaal-2
Pin14-P0.29 / CAP0.3 / AD0.2 / MAT0.3
- P0.29 is een digitale GPIO-pin
- AD0.2 staat voor ADC-0, input-2
- CAP0.3 is een capture-i / p voor Timer-0, kanaal-3.
- MAT0.3 is een match o / p voor Timer-0, kanaal-3
Pin15-P0.30 / EINT3 / AD0.3 / CAP0.0
- P0.30 is een GPIO digitale pin
- AD0.3 staat voor ADC-0, input-3
- EINT3 is een externe interrupt 3-ingang.
- CAP0.3 is een capture-i / p voor Timer-0, kanaal-0.
Pin16- P1.16 / TRACEPKT0
- P1.16 is een GPIO digitale pin
- TRACEPKT1 is een traceerpakket, bit-0, standaard invoer- / uitvoerpoort door middel van inner pull-up
Pin17-P0.31 / UP_LED / CONNECT
- P0.31 is een GPIO digitale pin
- UP_LED is een goede USB-link LED-indicator. Als het apparaat is opgesteld, is het laag en als het apparaat niet is opgesteld, is het hoog.
- CONNECT- Dit signaal wordt gebruikt om een externe weerstand (1,5 kΩ) te besturen onder besturing van een softwarebesturing, en het wordt gebruikt door de functie van Soft Connect
Pin19- P0.0 / PWM / TXD0
- P0.0 is een GPIO digitale pin
- TXD0 is een zender o / p voor UART0.
- PWM1 is een pulsbreedtemodulator o / p-1.
Pin20- P1.31 / TRIESTE
- P1.31 is een digitale GPIO-pin
- TRST is een testreset voor de JTAG-interface.
Pin21-P0.1 / PWM3 / RXD0 / EINT0
- P0.1 is een digitale GPIO-pin
- RXD0 is een ontvanger i / p voor UART0.
- PWM3 is een pulsbreedtemodulator o / p-3.
- EINT0 is een externe interrupt 0-ingang
Pin22- P0.2 / CAP0.0 / SCL0
- P0.2 is een GPIO digitale pin
- SCL0 is een I2C0-klok-I / O en open-afvoer o / p
- CAP0.0 is een capture-i / p voor Timer-0, kanaal-0.
Pin 23, 43 en 51 - VDD
Deze pinnen zijn voedingsspanning voor zowel de I / O-poorten als de kern.
Pin24- P1.26 / RTCK
- P1.26 is een GPIO digitale pin
- RTCK is een geretourneerde test CLK o / p, een extra signaal toegevoegd aan de JTAG-poort. Wanneer de frequentie van de processor verandert, helpt dit bij het debuggen van de synchronisatie.
Pin26- P0.3 / SDA0 / MAT0.0 / EINT1
- P0.3 is een digitale GPIO-pin
- SDA0 is een I2C0 data I / O en open drain o / p voor I2C bus observatie.
- MAT0.0 komt overeen met o / p voor timer-0, kanaal-0.
- EINT1 is een externe interrupt 1-i / p.
Pin27-P0.4 / CAP0.1 / SCK0 / AD0.6
- P0.4 is een GPIO digitale pin I / O
- SCK0 is een seriële CLK voor SPI0 en SPI CLK o / p van master / i / p naar slave.
- CAP0.1 is een capture i / p voor timer-0, kanaal-0.
- IAD0.6 staat voor ADC-0, input-6
Pin28-P1.25 / EXTIN0
- P1.25 is een GPIO digitale pin I / O
- EXTIN0 is een externe trigger i / p, en standaard input / output met inner pull-up
Pin29- P0.5 / MAT0.1 / MISO0 / AD0.7
- P0.5 is een GPIO digitale pin I / O
- MISO0 is een master in slave out voor SPI0, data i / p naar SPI-master / data o / p van SPI slave.
- MAT0.1 is een match o / p voor timer-0, kanaal-1.
- AD0.7 staat voor ADC-0, input-7.
Pin30-P0.6 / MOSI0 / CAP0.2 / AD1.0
- P0.6 is een GPIO digitale pin I / O
- MOSI0 is een master out slave in voor SPI0, en data o / p van SPI master / data i / p naar SPI slave.
- CAP0.2 is een capture i / p voor Timer-0, kanaal-2.
Pin31-P0.7 / PWM2 / SSEL0 / EINT2
- P0.7 is een GPIO digitale pin I / O
- SSEL0 is een slave select voor SPI0 en kiest de SPI-interface als slave.
- PWM2 is een pulsbreedtemodulatoruitgang-2.
- EINT2 is een externe interrupt 2-ingang.
Pin32-P1.24 / TRACECLK
- P1.24 is een GPIO digitale pin I / O.
- TRACECLK is een trace CLK en standaard invoer / uitvoerpoort met interne pull-up
Pin33-P0.8 / TXD1 / PWM4 / AD1.1
- P0.8 is een GPIO digitale pin I / O
- TXD1 is een zender o / p voor UART1.
- PWM4 is een pulsbreedtemodulator o / p-4.
- AD1.1 staat voor ADC-1, input-1, en is alleen verkrijgbaar in LPC2144 / 46/48.
Pin34- P0.9 / PWM6 / RXD1 / EINT3
- P0.9 is een GPIO digitale pin I / O
- RXD1 is een ontvanger i / p voor UART1.
- PWM6 is een pulsbreedtemodulator o / p-6.
- EINT3 is een externe interrupt 3-ingang
Pin35-P0.10 / RTS1 / CAP1.0 / AD1.2
- P0.10 is een GPIO digitale pin I / O
- RTS1 vraagt om o / p te verzenden voor UART1 en LPC2144 / 46/48.
- CAP1.0 is een capture i / p voor timer-1, kanaal-0.
- AD1.2 staat voor ADC-1, input-2, en is alleen verkrijgbaar in LPC2144 / 46/48
Pin36-P1.23 / PIPESTAT2
- P1.23 is een GPIO digitale pin I / O
- PIPESTAT2 is een pijplijnstatus, bit-2., En een standaard invoer- / uitvoerpoort met interne pull-up
Pin37-P0.11 / CAP1.1 / CTS1 / SCL1
- P0.11 is een GPIO digitale pin I / O
- CTS1 is duidelijk om i / p voor UART1 te verzenden, en deze zijn alleen toegankelijk in LPC2144 / 46/48
- CAP1.1 is een capture i / p voor timer-1, kanaal-1.
- SCL1 - I2C1 CLK I / O, en open afvoer o / p voor de I2C-bus observatie
Pin38-P0.12 / MAT1.0 / AD1.3 / DSR1
- P0.12 is een GPIO digitale pin I / O
- DSR1 is een dataset gereed i / p voor UART1, en deze zijn alleen toegankelijk in LPC2144 / 46/48.
- MAT1.0 is een match o / p voor timer-1, kanaal-0.
- AD1.3 geeft ADC input-3 aan, en is alleen toegankelijk in LPC2144 / 46/48.
Pin39-P0.13 / DTR1 / MAT1.1 / AD1.4
- P0.13 is een GPIO digitale pin I / O
- DTR1 is een dataterminal klaar voor alleen UART1 en LPC2144 / 46/48.
- MAT1.1 is een match o / p voor timer-1, kanaal-1.
- AD1.4 geeft ADC input-4 aan, en deze zijn alleen toegankelijk in LPC2144 / 46/48.
Pin40-P1.22 / PIPESTAT1
- P1.22 is een GPIO digitale pin I / O
- PIPESTAT1 is een pijplijnstatus, bit-1 en een standaard invoer- / uitvoerpoort met interne pull-up
Pin41-P0.14 / DCD1 / EINT1 / SDA1
- P0.14 is een GPIO digitale pin I / O
- DCD1 is een datadragerdetectie-i / p voor UART1, en ook alleen voor LPC2144 / 46/48.
- EINT1 is een externe interrupt 1-ingang.
- SDA1 is een I2C1 data I / O en een open drain o / p voor I2C bus observatie
Pin44: P1.21 / PIPESTAT0 44
- I / O P1.21 is een GPIO digitale pin I / O
- PIPESTAT0 is een Pipeline Status, bit 0, en standaard Input / Output-poort door de inner pull-up.
Pin45: P0.15 / EINT2 / RI1 / AD1.5 45
- I / O P0.15 is een GPIO digitale pin I / O
- RI1 is een ring pointer i / p voor UART1 en is alleen toegankelijk in LPC2144 / 46/48.
- EINT2 is een externe interrupt 2-ingang.
- AD1.5 geeft ADC 1, input-5 aan, en is ook alleen beschikbaar in LPC2144 / 46/48
Pin46: P0.16 / MAT0.2 / EINT0 / CAP0.2
- P0.16 is een GPIO digitale pin I / O
- EINT0 is een externe interrupt0-ingang.
- MAT0.2 is een match o / p voor Timer-0, kanaal -2
- CAP0.2 is een capture i / p voor Timer-0, kanaal-2.
Pin47: P0.17 / SCK1 / CAP1.2 / MAT1.2 47
- P0.17 is een GPIO digitale pin I / O
- CAP1.2 is een capture-i / p voor Timer-1, kanaal-2.
- SCK1 is een seriële CLK voor SSP en CLK o / p van master naar slave.
- MAT1.2 is een match o / p voor Timer-1, kanaal-2.
Pin48: P1.20 / TRACESYNC
- P1.20 is een GPIO digitale pin I / O
- TRACESYNC is traceersynchronisatie.
Pin49: VBAT
RTC-voeding: Deze pin geeft de voeding aan de RTC.
Pin52: P1.30 / TMS
P1.30 is een GPIO digitale pin I / O
TMS is een testmoduskeuze voor interfacing van JTAG.
Pin53: P0.18 / CAP1.3 / MISO1 / MAT1.3
- P0.18 is een GPIO digitale pin I / O
- CAP1.3 is een capture-i / p voor Timer 1, kanaal 3.
- MISO1 is een master In Slave-out voor SSP en data i / p naar SPI-master
Pin54: P0.19 / MOSI1 / MAT1.2 / CAP1.2
- P0.19 is een GPIO digitale pin I / O.
- MAT1.2 geeft match o / p aan voor Timer 1, kanaal 2.
- MOSI1 is een master out slave voor SSP master.
- CAP1.2 is een capture-i / p voor Timer 1, kanaal 2.
Pen 55: P0.20 / SSEL1 / MAT1.3 / EINT3
- P0.20 is een GPIO digitale pin I / O.
- MAT1.3 is een match o / p voor Timer 1, kanaal 3. I
- SSEL1 is een Slave Select ontworpen voor SSP. Kiest hier de interface van SSP als slaaf.
- EINT3 is een externe interrupt 3-ingang.
Pin56: P1.29 / TCK
- P1.29 is een GPIO digitale pin I / O
- TCK is een test CLK voor een interface van JTAG.
Pin57: Externe reset-ingang
Het apparaat kan worden herschikt door een LOW op deze pin, wat invloed heeft op de invoer- / uitvoerpoorten en randapparatuur voor het verkrijgen op hun standaardcondities, en de uitvoering van de processor begint op adres 0.
Pin58: P0.23 / VBUS
- P0.23 is een GPIO digitale pin I / O
- VBUS specificeert het bestaan van USB-busvoeding
Pin59: VSSA
VSSA is een analoge aarde, en dit moet hetzelfde voltage zijn als VSS, hoewel het gescheiden moet zijn om fouten en ruis te verminderen
Pin60: P1.28 / TDI 60
- P1.28 is een GPIO digitale pin I / O
- TDI-pin is een testgegevens die worden gebruikt voor het koppelen van JTAG
Pin61: XTAL2
XTAL2 is een o / p van de oscillatorversterker
Pin62: XTAL1
XTAL1 is een i / p voor de interne CLK-generator en oscillatorcircuits
Pin63: VREF-ADC-referentie
Deze pin moet nominaal gelijk zijn aan of kleiner zijn dan de spanning VDD, hoewel deze moet worden gescheiden om zowel fouten als ruis te verminderen.
Pin64: P1.27 / TDO 64
- P1.27 is een GPIO digitale pin I / O
- TDO is een testgegevens die wordt gebruikt voor het koppelen van JTAG.
Dit gaat dus over de op ARM 7 gebaseerde LPC2148-microcontrollerpenconfiguratie. Voor de studenten elektrotechniek geeft deze informatie een basiskennis over pinconfiguratie, I / O-poortgeheugen en registers. Hier is een vraag voor u, wat zijn de toepassingen van de LPC2148-microcontroller?