Day1_3

advertisement
LPC2148 Programming
Using BLUEBOARD
Enabling the ARM Learning in INDIA
AGENDA
 LPC214x Block Diagram
 Pin Diagram
 BlueBoard
 Schematic
 PIN Select Block
 General Purpose Input/Output
 First Program
Enabling the ARM Learning in INDIA
Bus Structure
In LPC2148 three types of busses are used to connect the core with other
peripherals on chip.
1. Local Bus to connect the onchip memory controllers and fast GPIO’s
2. AMBA Advance High Performance Bus (AHB) for interrupt controller
3. VLSI Peripheral Bus (VPB) for other onchip peripherals.
AHB acts as a bridge for VPB.
VPB is mainly meant for connect slower peripherals then that of processor.
VPB can dive the peripherals at ¼ CPU clock frequency.
Enabling the ARM Learning in INDIA
Bus Structure
Enabling the ARM Learning in INDIA
Memory MAP
To access any peripheral we need its address. The entire address space can be
divided in to several sections.
Enabling the ARM Learning in INDIA
Memory MAP
Enabling the ARM Learning in INDIA
Memory Access Module
The MAM block in the LPC2148 maximizes the performance of the ARM
processor when it is running code in Flash memory,
Two general methods for achieving code execution performance.
Using RAM for code execution.
Using Cache memory.
Enabling the ARM Learning in INDIA
Memory Access Module
The MAM block in the LPC2148
Enabling the ARM Learning in INDIA
Bootloader
A small piece of software executed after every reset. This software is used to
load the new user program in to the flash memory using any communication
channel like UART, USB, Ethernet or CAN.
For LPC2000 Series the Bootlader can be activated by maintaining low level on
P0.14 while reset.
Enabling the ARM Learning in INDIA
Bootloader
ISP
Philips microcontroller have a great feature called ISP (In System Programming).
It enables the user to flash the microcontroller with an ease. In LPC2148 the ISP
mode can be activated by maintaining low level on P0.14 while reset.
Enabling the ARM Learning in INDIA
Boot Process
Enabling the ARM Learning in INDIA
ISP Commands
Enabling the ARM Learning in INDIA
IAP
In-Application (IAP) programming is performing erase and write operation on
the on-chip flash memory, as directed by the end-user application code.
The bootloader code provides API to access flash memory from the user
program. The API are called using their codes.
IAP Command
Command Code in Decimals
Prepare sector(s) for write operation
50
Copy RAM to Flash
51
Erase sector(s)
52
Blank check sector(s)
53
Read Part ID
54
Read Boot code version
55
Compare
56
Reinvoke ISP
57
Enabling the ARM Learning in INDIA
Phased Lock Loop
PLL is a closed loop control system to generate high frequency by multiplying
with given factor to the input frequency.
Fout
Fin
Mul
Div
Basic PLL Block Diagram
In LPC2148 microcontrollers there are 2
PLLs which provides programmable
frequencies to the CPU and USB system.
The input clock frequency to PLL0 and PLL1 is in the range
of 10MHz to 25 MHz only. It is multiplied up the range of
10MHz to 60MHz for CCLK and 48MHz for the USB cock
using Current Controlled Oscillator (CCO).
Enabling the ARM Learning in INDIA
PLL Programming
PLL Registers
Gen. Name
Description
PLL0
PLL1
PLLCON
PLL Control Register. Holding register for
updating PLL control bits
0xE01F C080
PLL0CON
0xE01F C0A0
PLL1CON
PLLCFG
PLL Configuration Register. Holding register
for
updating PLL configuration values
0 0xE01F C084
PLL0CFG
0xE01F C0A4
PLL1CFG
PLLSTAT
PLL Status Register. Read-back register for
PLL
control and configuration information
0xE01F C088
PLL0STAT
0xE01F C0A8
PLL1STAT
PLLFEED
PLL Feed Register. This register enables
loading of the PLL control and configuration
information from the PLLCON and PLLCFG
registers into the shadow registers that
actually
affect PLL operation.
0xE01F C08C
PLL0FEED
0xE01F C0AC
PLL1FEED
Detail Register Bits LPC214X User Manual Page 27
Enabling the ARM Learning in INDIA
PLL Programming
Programming Steps:
1. Select the desired operating frequency for your system ( Processor operating
frequency) CCLK.
2. Check the oscillator connected to the controller on board. (FOSC)
3. Calculate the value of PLL multiplier “M”. CCLK = M × FOSC
4. Find the value of PLL Divider “P” in such a way that is in the range of 156 MHz
to 320 MHz. 156 <
FCCO < 320 = CCLK x 2 x P
5. Write the values PLLCON and PLLCFG.
6. Write the PLLFEED Values 0xAA and 0x55.
7. Wait for PLL to lock.
8. Connect the PLL.
Enabling the ARM Learning in INDIA
VBP Divider
VLSI Bus connected to various peripherals can be operated at different speeds
using the VBP Divider.
The VPB Divider serves two purposes:
1. Provides peripherals with desired PCLK via VPB bus, the VPB bus may
be slowed down to one half or one fourth of the processor clock rate
2. VPB Divider allow power savings when an application does not require
any peripherals to run at the full processor rate.
Enabling the ARM Learning in INDIA
VBP Divider
VPBDIV registers least 2 significant bits can be changed for desired PCLK
Peripherals on LPC2000 series can run at the full 60 MHz clock.
Enabling the ARM Learning in INDIA
POWER CONTROL
LPC214x support two reduced power modes Idle mode and Power-down mode.
Idle Mode: The CPU stops execution is suspended until a Reset or Interrupt from
peripheral occurs. Peripheral runs in idle mode and may generate interrupts to resume
the CPU execution.
Power-Down Mode: The oscillator is shutdown and the chip receives no internal clocks.
All the information of current execution state is preserved in this mode. A Reset signal
or External Interrupt can terminate the power-down mode.
PCON Register:
Bit 0
: When set to 1, causes the processor clock to be stopped.
Bit 1
: When set to 1, causes the on-chip clock to be stopped.
In LPC214x the power down mode have dependency on USB Block
Enabling the ARM Learning in INDIA
Peripheral Power Control
LPC2000 peripherals can be turned of individually using the PCONP Register bits
setting,
to save the power.
Few peripherals like GPIO, Watchdog timer, Pin connect block and System Control
block
cannot be turned off.
After reset the PCONP contains the value to enable all peripherals, so no need to
configure PCONP bits in-order to use any peripheral.
Page 37 LPC2148 User Manual
Enabling the ARM Learning in INDIA
INTERRUPT SYSTEM
Interrupt System
• ARM PrimeCell™ Vectored Interrupt Controller
• 32 interrupt request inputs
• 16 vectored IRQ interrupts
• 16 priority levels dynamically assigned to interrupt requests
• Software interrupt generation
Enabling the ARM Learning in INDIA
Enabling the ARM Learning in INDIA
Download