Инструкция пользователя ЬРС2104, ЬРС2105 и ЬРС2106 Бнимание! Это черновой вариант перевода инструкции, в котором много ошибок ! Если вы обнаружили ошибку, пожалуйста, сообщите автору перевода по адресу vsash2@mail.ru Версия перевода от 01.02.2006г. Василюк А.В. г.Запорожье ОСОБЕННОСТИ • ARM7TDMI-S процессор. • 128 килобайт флешь память с доступом через ISP интерфейс с возможностью записи из программы (IAP). Время записи в flash память 1 мс на 512 байтовый блок. 10000 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) • • • • • • • • • • • • • • • • • • • • гарантированных циклов перезаписи для каждого 512 байтового блока. Стирание отдельного сектора (8 КБ), или стирание всего чипа за 400 мс. 64/32/16-килобайт статического ОЗУ (LPC2106/2105/2104). Контроллер векторных прерываний. Модуль пошаговой эмуляции поддерживает отладку в реальном времени. Модуль RealMonitor позволяющий производить отладку в реальном времени. Стандартный ARM Test/Debug интерфейс совместимый с существующими инструментами. Маленький корпус LQFP48 (7x7мм2). Два UART, один из них с полным модемным интерфейсом. I2C последовательный интерфейс. SPI последовательный интерфейс. Два таймера, каждый с 4 захватывающими/сравнивающими каналами. PWM модуль с 6 PWM выходами. Часы реального времени. Сторожевой Таймер. Вводы/выводи общего назначения. Центральный процессор, использующий тактовую частоту до 60 МГЦ. Двойное электропитание. • Центральный процессор питается напряжением в диапазоне от 1.65V до 1.95V (1.8V+/8.3%). • Диапазон электропитания системы ввода - вывода от 3.0V до 3.6V (3.3V +/-10 %). Два режима низкого энергопотребления, Idle и Power Down. Выход процессора из Power Down режима по внешнему прерыванию. Индивидуальное управление функциями переферии для оптимизации энергопотребления. Встроенный кварцевый генератор с диапазоном 10 МГЦ - 25 МГЦ. КРАТКИЙ ОБЗОР АРХИТЕКТУРЫ LPC2106/2105/2104 состоит из ARM7TDMI-S центрального процессора с поддержкой эмуляции, локальная шина ARM7 для контроллера встроенной памяти, AMBA Advanced High-performance Bus (AHB) для интерфейса контроллера прерываний, и VLSI Периферийная шина (VPB, совместимый расширенный набор AMBA AHB) для подключения к функциям встроенной переферии. В LPC2106/2105/2104 устанавливается ARM7TDMI-S ядро, работающее с прямым порядком байт (младший байт в конце слова, старший в начале). AHB переферия размещена в 2 мегабайтовом диапазоне адресов в самой вершине 4х гигобайтного адресного пространства ARM. Каждое AHB периферийное устройство занимает 16-килобайт в адресном пространстве AHB. Вся переферия LPC2106/05/04 (кроме контроллера прерываний) подключена к шине VPB. Шина VPB соединяется с шиной AHB через «AHB to VPB bridge». VPB переферия также размещена в 2 мегабайтовом диапазоне адресов, начинающихся с адреса 3.5 Гб. Каждое VPB периферийное устройство занимает 16- килобайт в адресном пространстве VPB. Подключением встроенной переферии к выводам микроконтроллера управляет «Блок подключения выводов». Он настраивается программным обеспечением, для выполнения конкретных задач. ПРОЦЕССОР ARM7TDMI-S ARM7TDMI-S - это 32 разрядный микроконтроллер, обладающий высокой производительностью и низким энергопотреблением. ARM базируется на принципах RISC архитектуры и наборе инструкций. Процессор ARM7TDMI-S также поддерживает архитектуру THUMB использующую более компактный код. По существу, процессор ARM7TDMI-S имеет два набора инструкции: Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) • Стандартный 32 битный набор инструкции ARM. • Набор 16-битных инструкций THUMB. ВСТРОЕННАЯ СИСТЕМА FLASH ПАМЯТИ LPC2106/2105/2104 включает 128 КБ Flash памяти. Эта память может использоваться и для хранения данных и кода программ. Программирование Flash памяти может быть выполнено несколькими способами: по встроенному последовательному интерфейсу JTAG, используя ISP и UART0, или непосредственно из выполняющейся программы. Прикладная программа, используя IAP функции, может также стереть и/или программировать Flash, во время выполнения программы, предоставляя большую степень гибкости для хранения данных, модернизации программного обеспечения, и т.д. ВСТРОЕННОЕ СТАТИЧЕСКОЕ ОЗУ LPC2106, LPC2105 и LPC2104 содержат 64 КБ, 32 КБ и 16 КБ статического ОЗУ (СОЗУ) соответственно, в котором могут размещаться как данные, так и программы. СОЗУ поддерживает 8 разрядный, 16 разрядный, и 32 разрядный доступ. Диспетчер СОЗУ содержит буфер записи, чтобы предотвращать простой центрального процессора в течение цикла записи. Буфер всегда содержит последние данные, посланные программным обеспечением в СОЗУ. Эти данные запишутся в СОЗУ только когда программное обеспечение выполнит следующую операцию записи. Если происходит сброс чипа, фактическое содержимое СОЗУ не будет содержать самые последние операции записи. Любое программное обеспечение, которое проверяет содержание СОЗУ после сброса должно учитывать эту особенность. Фиктивная запись в неиспользуемое пространство, может использоваться, для гарантированного внесения изменений в СОЗУ. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) * Объединены с выводами портов ввода вывода РЕГИСТРЫ LPC2106/2105/2104 Доступ к регистрам в ЬРС2106/2105/2104 имеет следующие ограничения: 1. Пользователь НЕ должен пытаться обратится к неопределенным регистрам. 2. Доступ к любым регистрам выполняется с помощью функций предназначенных для работы с регистрами. 3. Отдельные биты регистра обозначаются как '-', '0' или '1' в эти биты может быть записано или прочитано только: • '-' Нужно записывать только '0', но прочитано может быть любое значение. Эти биты зарезервированы для использования в будущем. • '0' ' Нужно записывать только '0', и при считывании всегда возвращает '0'. • '1' ' Нужно записывать только '1', и при считывании всегда возвращает '1'. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Следующая таблица отображает все регистры имеющиеся в контроллере LPC2106/2105/2104. Для отдельного регистра может быть определен следующий тип доступа: чтение и запись, только чтение, только запись (R/W, RO и WO соответственно). Поле "После сброса" относится только к используемым (доступным) битам, и не включает содержимое зарезервированных битов. Некоторые регистраторы могут содержать неопределенные данные после сброса. В этом случае, значение регистра указывается как "неопределенное". Значение "НВ" указывает на то, что сброс не влияет на содержимое данного регистра. Некоторые регистры в RTC не затрагивает сброс чипа. Их значение после сброса помечено как *, и эти регистры должны инициализироваться программным обеспечением, если RTC разрешен. Регистры в LPC2106/2105/2104имеют разрядность 8,16 или 32 бит. Для 8 битных регистров, показанных в Таблице 1, бит соответствующий MSB является старшим (бит №7), а бит соответствующий LSB является младшим (бит № 0). Если регистр - 16/32 битный, бит расположенный в верхнем левом углу является старшим битом (бит 15/31) а бит расположенный нижнем правом углу - младшим (бит 0). Например: бит "ENA6" в регистре PWMPCR (адрес 0xE001404C), представляет бит в позиции 14 в этом регистре; биты 15, 8, 7 и 0 в этом регистре зарезервированы. Бит " Stop on MR6" в регистре PWMMCR (0xE0014014) соответствует биту в позиции 20; биты с 31 по 21 из того же самого регистра зарезервированы. Зарезервированные биты отмечены "-" и представлены как серые поля. Доступ к ним ограничен как уже описано. таблица 1: LPC2106/2105/2104 Регистры Адрес Имя Описание MSB LSB Доступ После сброса Сторожевой таймер Регистр режимов сторожевого таймера OxEOOOOO OO WD MOD 0xE0000004 WDTC OxEOOOOO O8 Регистр WD разрешающей FEED последовательности сторожевого таймера OxEOOOOO WDTV OC - - - Регистр константы сторожевого таймера - WD INT WD TOF WO WDEN R/W RESET 32 бита данных 8 бита данных (ОхАА с последующими 0x55) Регистр значения сторожевого таймера 32 бита данных Таймер 0 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) R/W WO RO 0 OxFF NA OxFF Адрес 0xE0004000 0xE0004004 0xE0004008 0xE000400C 0xE0004010 0xE0004014 Имя Описание Регистр прерываний ТО Регистр TOTCR управления ТО T0IR T0TC MSB - LSB CR2 Int. CR1 Int. - CR0 Int. - - ТО Счетчик ТО Регистр предв. делителя T0PC ТО Счетчик предв. делителя T0MCR ТО Регистр управления совпадением T0PR 4 бита зарезервировано Доступ После сброса R/W 0 CTR Сброс разреше CTR н 32 бита данных R/W 0 R/W 0 32 бита данных R/W 0 32 бита данных R/W 0 Стоп по Сброс Прер. Стоп по R/W MR3 по MR3 по MR3 MR2 0 MR3 MR2 Int. MR1 Int. MR0 Int. Int. - - Сброс Прер. Стоп Сброс Прер. Стоп по Сброс Прер. по MR2 по MR2 по MR1 по MR1 по MR1 MR0 по MR0 по MR0 0xE0004018 T0MR0 ТО Регистр совпадения О 32 бита данных R/W 0 0xE000401C T0MR1 ТО Регистр совпадения 1 32 бита данных R/W 0 0xE0004020 T0MR2 ТО Регистр совпадения 2 32 бита данных R/W 0 0xE0004024 T0MR3 ТО Регистр совпадения 3 32 бита данных R/W 0 0xE0004028 T0CCR ТО Регистр управления захватом Прер.п R/W о Cpt.2 0 0xE000402C T0CR0 ТО Регистр захвата О 0xE0004030 T0CR1 ТО Регистр захвата 1 0xE0004034 T0CR2 ТО Регистр захвата 2 0xE000403C T0EMR ТО Регистр выходов захвата 7 бит зарезервировано Прер.по Прер.по Прер.п Прер.п Прер.по Прер.по Прер.по Прер.п спаду нарост. о Cpt.1 о спаду нарост. Cpt.0 спаду о Cpt.2 Cpt.2 Cpt.1 Cpt.1 Cpt.0 нарост. Cpt.0 32 бита данных R0 0 32 бита данных R0 0 32 бита данных R0 0 Управление R/W выходом захвата 2 Разреш. Разреш. Разреш. выхода выхода выхода захвата захвата захвата 2. 1. 0 0 R/W 0 CTR Сброс разреше CTR н 32 бита данных R/W 0 R/W 0 32 бита данных R/W 0 32 бита данных R/W 0 Стоп по Сброс Прер. Стоп по R/W MR3 по MR3 по MR3 MR2 0 6 бит зарезервировано Управление Управление выходом захвата выходом 1 захвата 0 - Таймер 1 Регистр CR3 Int. CR2 Int. CR1 прерываний Т1 Int. 0xE0008000 T1IR 0xE0008004 T1TCR Регистр управления Т1 0xE0008008 T1TC Т1 Счетчик 0xE000800C 0xE0008010 0xE0008014 Т1 Регистр предв. делителя Т1 Счетчик T1PC предв. делителя T1MCR Т1 Регистр управления совпадением - - CR0 Int. - T1PR 4 бита зарезервировано - MR3 MR2 Int. MR1 Int. MR0 Int. Int. - - Сброс Прер. Стоп Сброс Прер. Стоп по Сброс Прер. по MR2 по MR2 по MR1 по MR1 по MR1 MR0 по MR0 по MR0 0xE0008018 T1MR0 Т1 Регистр совпадения О 32 бита данных R/W 0 0xE000801C T1MR1 Т1 Регистр совпадения 1 32 бита данных R/W 0 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Адрес Имя Описание MSB LSB Доступ сброса После 0xE0008020 T1MR2 Т1 Регистр совпадения 2 32 бита данных R/W 0 0xE0008024 T1MR3 Т1 Регистр совпадения 3 32 бита данных R/W 0 0xE0008028 Т1 Регистр управления захватом R/W 0 RO 0 T1CCR Прер. Прер.по Прер.по Прер. по Cpt.3 спаду нарост. по Cpt.3 Cpt.3 Cpt.2 4 бит зарезервировано Прер.по Прер.по Прер.п Прер.п Прер.по Прер.по Прер.по Прер.п спаду нарост. о Cpt.1 о спаду нарост. Cpt.0 спаду о Cpt.2 Cpt.2 Cpt.1 Cpt.1 Cpt.0 нарост. Cpt.0 Т1 Регистр 32 бита данных захвата 0 0xE000802C T1CR0 0xE0008030 T1CR1 Т1 Регистр захвата 1 32 бита данных RO 0 0xE0008034 T1CR2 Т1 Регистр захвата 2 32 бита данных RO 0 0xE0008038 T1CR3 Т1 Регистр захвата 3 32 бита данных RO 0 Управление Управление R/W выходом захвата выходом 3 захвата 2 Разреш. Разреш. Разреш. Разреш выхода выхода выхода . захвата захвата захвата выхода 3 2 1 захвата 0 0 0xE000803C T1EMR Т1 Регистр выходов захвата 4 бит зарезервировано Управление Управление выходом выходом захвата захвата 0 1 UART O 0xE000C000 U0RBR (DLAß=0 UO Receiver Buffer Register 8 бит данных RO undefined U0THR (DLAB=0 UO Transmit Holding Register 8 бит данных WO NA U0DLL (DLAB=1 UO Divisor Latch LSB 8 бит данных R/W 0x01 U0IER (DLAB=0 UO Interrupt Enable Register En. Rx Line Status Int. R/W 0 U0DLM (DLAB=1 UO Divisor Latch MSB R/W 0 RO 0x01 U0 Rx U0 FIFO FIFO Reset Enable WO 0 Word Length Select R/W 0 OE RO 0x60 R/W 0 0xE000C004 0xE000C008 U0IIR 0 0 UO FIFO Control Register 0xE000C00C U0LCR UO Line Control Register 0xE000C014 U0LSR UO Line Status Register 0xE000C01C U0SCR UO Scratch Pad Register 0 0 Enable En. Rx THRE Data Int. Av.Int 8 бит данных UO Interrupt FIFOs Enabled ID Register U0FCR 0 Rx Trigger DLAB Set Break 0 0 IIR3 IIR2 - - - U0Tx FIFO Reset Stick Parity IIR1 Even Parity Nm. of Parity Enable Stop Select Bits Rx FIFO TEMT THRE Error B1 FE PE 8 бит данных UART 1 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) IIR0 DR Адрес Имя Описание MSB LSB Доступ сброса После OxEOO1OOO U1RBR (DLAB= O O) Ul Receiver Buffer Register 8 бит данных RO undefined U1THR (DLAB= O) Ul Transmit Holding Register 8 бит данных WO NA U1DLL (DLAB= 1) U1IER (DLAB= O) Ul Divisor Latch LSB 8 бит данных RW 0x01 RW 0 RW 0 RO 0x01 U0 Rx U0 FIFO FIFO Reset Enable WO 0 Word Length Select RW 0 0xE0010004 0xE0010008 Ul Interrupt Enable Register U1DLM Ul Divisor (DLAB= Latch MSB 1) U1IIR Ul Interrupt ID Register U1FCR 0 0 FIFOs Enabled Ul FIFO Control Register 0xE0010014 OxEOO1OO1 C 0xE0010018 U1LSR Ul Modem Control Register 0 En. En. Rx Mdem Line Satus Status Int. Int. Rx Trigger 0 U l Line Status Rx FIFO Register Error 0 0 IIR3 IIR2 - - - U0Tx FIFO Reset Set Stick Brea Parity k 0 0 TEM THR T E IIRl Even Parity Nm. of Parity Enable Stop Select Bits IIR0 Loop Back 0 0 RTS DTR RW 0 BI FE PE OE DR RO 0x60 RW 0 Delta CTS RO 0 MR6 Int. MR5 Int. MR4 Int. RW 0 RW 0 8 бит данных U1SCR Ul Scratch Pad Register U1 MSR Enable En. Rx THRE Data Int. Av.Int. 8 бит данных OxEOO1OOO U1LCR Ul Line Control DLAB Register C OxEOO1OO1 U1 MCR O 0 Ul Modem DCD Status Register RI DSR CTS Delta Trailing DCD Edge RI Delta DSR PWM 0xE0014000 PWM IR PWM Interrupt Register - - - - - - - - - - - - - MRЗ MR2 Int. MRl Int. MR0 Int. Int. 0xE0014004 PWM TCR PWM Timer Control Register PWM Enable - CTR Reset 0xE0014008 PWM TC PWM Timer Counter 32 бита данных RW 0 0xE001400C PWM PR PWM Prescale Register 32 бита данных RW 0 0xE0014010 PWM PC PWM Prescale Counter 32 бита данных RW 0 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) CTR Enable Адрес 0xE0014014 Имя PWM MCR Описание PWM Match Control Register MSB LSB Доступ 11 бит зарезервировано Stop on Reset Int. on Stop on Reset R/W MR6 on MR6 MR6 MR5 on MR5 После сброса 0 Int. on Stop on Reset Int. on Stop on Reset Int. on Stop on MR5 MR4 on MR4 MR4 MR3 on MR3 MR3 MR2 Reset Int. on Stop on Reset Int. on Stop on on MR2 MR2 MR1 on MR1 MR1 MR0 Reset on MR0 Int. on MR0 0xE0014018 PWM MR0 PWM Match Register 0 32 бита данных R/W 0 0xE001401C PWM MR1 PWM Match Register 1 32 бита данных R/W 0 0xE0014020 PWM MR2 PWM Match Register 2 32 бита данных R/W 0 0xE0014024 PWM MR3 PWM Match Register 3 32 бита данных R/W 0 0xE0014040 PWM MR4 PWM Match Register 4 32 бита данных R/W 0 0xE0014044 PWM MR5 PWM Match Register 5 32 бита данных R/W 0 0xE0014048 PWM MR6 PWM Match Register 6 32 бита данных R/W 0 0xE001404C PWM PCR PWM Control Register R/W 0 PWM LER PWM Latch Enable Register 0xE0014050 - ENA6 ENA5 ENA4 ENA3 ENA2 ENA1 - - SEL6 SEL5 SEL4 SEL3 SEL2 SEL1 - Ena. PWM M6 Latch Ena. PWM M5 Latch Ena. PWM M4 Latch Ena. PWM M3 Latch Ena. PWM M2 Latch Ena. PWM M1 Latch Ena. PWM M0 Latch R/W 0 STO SI AA - - R/W 0 0 0 0 RO 0xF8 R/W 0 R/W 0 I2C 0xE001C000 I2CON SET 12C Control Set Register 0xE001C004 I2STAT 12C Status Register 0xE001C008 I2DAT 12C Data Register 0xE001C00C I2 ADR 12C Slave Address Register - I2EN STA 5 бит статус 8 бит данных 7 бит данных GC SCL Duty Cycle Register High Half Word 16 бит данных R/W 0x04 0xE001C014 I2 SCLL SCL Duty Cycle Register Low Half Word 16 бит данных R/W 0x04 0xE001C018 12C Control Clear Register 0xE001C010 I2 SCLH I2CON CLR - I2ENC STAC - SIC AAC - - WO NA - - - R/W 0 SP1 0xE0020000 SPCR SP1 Control Register SP1E LSBF MSTR CPOL CPHA Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Адрес Имя Описание MS B 0xE0020004 SPSR SPI Status Register 0xE0020008 SPDR SPI Data Register 0xE002000C SP CCR SPI Clock Counter Register 0xE002001C SPINT SPI Interrupt Flag - - - - - - - 0xE0024000 ILR Interrupt Location Register - - - - - - RTC ALF 0xE0024004 CTC Clock Tick Counter 0xE0024008 CCR Clock Control Register - - 0xE002400C CIIR Counter Increment Interrupt Register IM YEA R IM MO N IM IM DO DOW Y IM DOM IM HOUR 0xE0024010 AMR Alarm Mask AM Register R YEA R CTIME Consolidated Time Register O 0 AM R MO N - AM AMR R DOW DO Y - AMR DOM AMR HOUR 0xE0024014 0xE0024018 0xE002401C CTIME Consolidated Time Register 1 1 SPIF LSB WC OL RO MODF ABRT VR - - - - - 8 бит данных R/W 0 8 бит данных R/W 0 SPI Int. R/W 0 RTC CIF R/W * - RO * R/W * IM MIN CLK EN IM SEC R/W * AMR MIN AMR R/W SEC * CTC RST 3 бита - день недели RO * RO * RO * 5 бит - часы - - - 6 бит минуты - - 6 бит секунды - - - сброса 0 CTTEST - После RO 15 бит данных - Доступ 12 бит - год - - - - - - 4 бита - месяц - 5 бит - день месяца 20 бит зарезервировано CTIME Consolidated Time Register 2 2 12 бит - день в году 0xE0024020 SEC Seconds Register - - 6 бит данных R/W * 0xE0024024 MIN Minutes Register - - 6 бит данных R/W * 0xE0024028 HOUR Hours Register - - - 5 бит данных R/W * 0xE002402C DOM Day of Month Register - - - 5 бит данных R/W * 0xE0024030 DOW Day of Week Register - - - R/W * 0xE0024034 DOY Day of Year Register 9 бита данных R/W * 0xE0024038 MONT H Months Register 4 бита данных R/W * 0xE002403C YEAR Year Register R/W * - 7 бит зарезервировано - - 4 бита зарезервировано - - - 3 бита данных 12 бит данных Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Адрес Имя Описание MSB LSB Доступ После сброса 0xE0024060 AL SEC Alarm value for Seconds - - 6 бит данных RW * 0xE0024064 AL MIN Alarm value for Minutes - - 6 бит данных RW * 0xE0024068 Alarm value for AL Hours HOUR - - - 5 бит данных RW * 0xE002406C AL DOM Alarm value for Day of Month - - - 5 бит данных RW * 0xE0024070 AL DOW Alarm value for Day of Week - - - RW * 0xE0024074 AL DOY Alarm value for Day of Year 7 бит зарезервировано RW * 0xE0024078 AL MON Alarm value for Months - RW * - - 3 бита данных - 9 бита данных - 4 бита данных - Alarm value for 4 бита AL Year зарезервировано YEAR 12 бит данных RW * 0xE0024080 PRE INT Prescale value, 3 бита integer portion зарезервировано 13 бит данных RW 0 RW 0 0xE002407C 0xE0024084 PRE FRAC Prescale value, fractional portion 15 бит данных - GPIO 0xE0028000 IOPIN GPIO Pin value register 32 бита данных RO NA 0xE0028004 IOSET GPIO 0 Output set register 32 бита данных R/W 0 0xE0028008 IODIR GPIO 0 Direction control register 32 бита данных R/W 0 0xE002800C IOCLR GPIO 0 Output clear register 32 бита данных WO 0 Pin function select register 0 32 бита данных R/W 0 Pin function select register 1 32 бита данных R/W 0 2 бита данных R/W 0 Pin Connet Block 0xE002C000 PIN SELO 0xE002C004 PIN SEL1 System Control Block 0xE01FC000 МАМ CR MAM control register - - - - - 0xE01FC004 МАМ TIM MAM timing control - - - - - 0xE01FC040 MEM MAP Memory mapping control - - - - - - 2 бита данных R/W 0 PLL control register - - - - - - PLLC 0 0xE01FC080 PLL CON - 3 бита данных Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) R/W PLLE R/W 0x07 Адрес Имя 0xE01FC084 PLL CFG Описание MS B PLL configuration register - PLL STAT PLL status register - 0xE01FC08C PLL FEED PLL feed register 0xE01FC0C0 PCON Power control register 0xE01FC0C4 PCONP Power control for peripherals 0xE01FC088 - LSB 2 бита PSEL - - 5 бит данных MSEL - PLLE 8 бит данных - - - - - - 22 бит зарезервировано PC I2C - PC PWM0 сброса R/W 0 RO 0 WO NA R/W 0 После 5 бит данных MSEL 0xE01FC100 VPB DIV VPB divider control - - - 0xE01FC140 EXT INT External interrupt flag register - - - - External interrupt wakeup register - - - - EXT WAKE PLOCK PLLC 2 бита PSEL PC URT 1 - 0xE01FC144 - Доступ PC URT 0 - PD IDL PC RTC PC SPI R/W PC TIM1 - PC TIM0 0x3BE - 2 бита данных R/W 0 - EINT2 EINT1 EINTO R/W 0 - EXT EXT EXT R/W WAKE WAKE WAKE O 2 1 0 КАРТА ПАМЯТИ ЬРС2106/2105/2104 содержит несколько различных областей памяти, показанных на следующих рисунках. Рисунок 2 показывает полную карту всего адресного пространства с точки зрения пользовательской программы после сброса. Размещение векторов исключений зависит от переназначение памяти, которая будет описана позже в этой главе Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 4,0 Г6 3,75 Г6 3,5 Г6 АНВпереферия 0xFFFF FFFF 0xF000 0000 0xE0000000 УРВпереферия 3,0 Г6 Зарезервировано для внешней 0xC000 0000 памяти 2,0 Г6 0x8000 0000 Загрузочный блок (переопределен на внутреннюю flash память) Зарезервировано для внутренней памяти 1,0 Г6 0x4000 FFFF: LPC2106 (64 kB) 0x4000 7FFF: LPC2105 (32 кв) 0x4000 3FFF: LPC2104 (l6 kB) Внутреннее СОЗУ 0x4000 0000 0x0002 0000 Энергонезависимая встроенная память на 128 КБ 0x0001 FFFF 0x0000 0000 0,0 Г6 Рисунок 2. Карта Памяти Системы Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) OxFFFF FFFF 4,0 Гб 4,0 Гб - АНВпереферия 2 Мб Примечание OxFFEO OOOO OxFFDF FFFF Зарезервировано Блок АНВ состоит из 128 16ти Кбайтных блоков общей емкостью 2 Мбайат. Блок УРВ состоит из 128 16ти Кбайтных блоков общей емкостью 2 Мбайат. OxFOOOOO OO OxEFFF FFFF 3,75 Гб Зарезервировано 3,5 Гб + 2 Мб УРВпереферия 3,5 Гб OxEO2OOO OO OxEOlF FFFF OxEOOOOOO O Рисунок 3. Карта Памяти Периферийных Устройств Рисунки 3 - 5 показывают различные представления адресного пространства периферийного оборудования. И АНВ и УРВ периферия занимает области по 2 мегабайта, которые разбиты на 128 устройств. Каждое устройство занимает 16 килобайт. Это позволяет упрощать расшифровку адреса периферийного устройства. Все адреса периферийных устройств выровнены по границе слова (32 бита) независимо от размера данных. Контроллер векторов прерываний АНВпереферия №126 АНВпереферия №№125 OxFFFF FFFF OxFFFF FOOO(4G-4K) OxFFFF COOO OxFFFF 8OOO OxFFFF 4OOO OxFFFF OOOO АНВпереферия .№124 —== OxFFEl OOOO OxFFEO COOO АНВпереферия .№3 АНВпереферия №2 OxFFEO 8OOO OxFFEO 4OOO OxFFEO АНВпереферия №1 OOOO АНВпереферия №O Рисунок 4. Карта Памяти АНВ Периферийных Устройств Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) OxEOlF FFFF System Control Block VPB nepe^epna №127 OxEOlF COOO VPB nepe^epna №126 OxEOlF 8OOO OxEOO4 OOOO VPB nepe^epna .№15 OxEOO3 COOO VPB nepe^epna №14 OxEOO3 8OOO VPB nepe^epna №13 OxEOO3 4OOO VPB nepe^epna .№12 OxEOO3 OOOO Pin Connect Block VPB nepe^epna №11 GPIO VPB nepe^epna №10 RTC VPB nepe^epna №9 SPI VPB nepe^epna №8 OxEOO2 COOO OxEOO2 8OOO OxEOO2 4OOO OxEOO2 OOOO 2 IC VPB nepe^epna №7 OxEOOlCOOO VPB nepe^epna №6 OxEOOl8OOO PWM0 VPB nepe^epna №5 UART1 VPB nepe^epna №4 UART0 VPB nepe^epna №3 Timer1 VPB nepe^epna №2 TimerO VPB nepe^epna №1 Watchdog Timer VPB nepe^epna №0 OxEOOl4OOO OxEOOlOOOO OxEOOO COOO OxEOOO8OOO OxEOOO 4OOO OxEOOO OOOO Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Рисунок 5. Карта Памяти VPB Периферийных Устройств LPC2106/2105/2104 ПЕРЕНАЗНАЧЕНИЕ ЗАГРУЗОЧНЫЙ БЛОК ПАМЯТИ И Концепция адресного пространства и режимы функционирования Основная концепция LPC2106/2105/2104 - в том, что каждая область памяти имеет "естественное" местоположение в адресном пространстве. Это означает, что код пишется для той области, в которой он будет располагаться. Большая часть адресуемого пространства памяти остается постоянно установленной в одном и том же месте, устраняя необходимость в программном коде, работающем в любом месте памяти. Из-за расположения векторов исключений на ARM7 процессоре (в адресах с 0x0000 0000 по 0x0000 001C, как показано в Таблице 2 ниже), маленькая часть загрузочного блока и области СОЗУ должна быть переназначена, чтобы позволить альтернативные использования прерываний в различных режимах функционирования, описанных в Таблице 3. Адрес Исключение 0x0000 0000 Сброс 0x0000 0004 Неопределенная комманда 0x0000 0008 Программное исключение 0x0000 000C Аварийное прекращение упреждающей выборки (выборка инструкции приводит к ошибке памяти) 0x0000 0010 Аварийное прекращение обращения к данным (обращение к памяти приводит к ошибке памяти) 0x0000 0014 Зарезервировано * 0x0000 0018 IRQ 0x0000 001C F1Q * - отмечен как зарезервированный в документации к ARM, но используется начальным загрузчиком для определения корректной программы пользователя. Таблица 2. Расположение векторов исключений. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Режим Активация Использование Режим начального загрузчика После сброса. Режим использования Flash Программная Активируется начальным загрузчиком, если в памяти распознана корректная программа активация из пользователя, действия загрузчика прекращаются, и память не переназначается. Память загрузочного кода таблицы векторов исключений располагается в начале Flash памяти. Режим использования ОЗУ Программная активация из пользовательской программы Начальный загрузчик всегда выполняется после любого сброса. Память таблицы векторов исключений загрузочного блока переназначаются на начало памяти участка загрузочного блока, позволяя обрабатывать исключения во время загрузки. Активируется программой пользователя при необходимости. Память таблицы векторов исключений переназначается в начало СОЗУ Таблица 3. Режими переназначения памяти. ПЕРЕНАЗНАЧЕНИЕ ПАМЯТИ Для совместимости с будущими разработками, виртуальное адресное пространство загрузочного блока размещено в вершине адресного пространства внутренней памяти. При этом, использование больших или маленьких flash модулей не повлечет изменения местоположения загрузочного блока (которое требовало бы изменения кода начального загрузчика) или изменения адресов векторов исключений блока начальной загрузки. Другие участки памяти кроме векторов исключений остаются в установленных местах. На рис. 6 показано адресное пространство внутренней памяти, для всех способов переопределения памяти. Участок памяти, который переопределяется, для организации обработки исключений в различных способах, включает область таблицы векторов исключений (32 байта) и дополнительные 32 байта, для общего количества равного 64 байтам. Переопределенный блок таблицы адресов исключений накладывается на адресное пространство с 0x0000 0000 по 0x0000 003F. Типичная программа пользователя в flash памяти может разместить обработчик FIQ непосредственно с адреса 0x0000 001С не учитывая переназначение памяти. Обработчик исключения или набор инструкций, которые ссылаются на обработчик исключения в СОЗУ, внешней памяти, и блоке начальной загрузки может размещается фактически в области таблицы исключений. Есть три причины для выбора такой конфигурации: Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 1. 2.0ГВ --------------------- — ------------------------- ---- 0x8000 0000 8 Кбайт. Загрузочный блок 0x7FFF FFFF (переназначен на верхний участок Аазіїпамяти) 2.0 ГВ - 8K (таблица адресов прерываний загрузочного блока) Зарезервированная область 0x4000 FFFF Встроеное СОЗУ 0x4000 FFFF: LPC2106 (64 кВ) 0x4000 7FFF: LPC2105 (32 кв) 0x4000 3FFF: LPC2104 (і6 кВ) 1.0ГВ (таблица адресов прерываний СОЗУ) 0x4000 0000 0x3FFF FFFF 0x0001 FFFF (8КБайт могут выделятся под загрузочный блок) Встроенная flash память 0.0ГВ Действительная таблица прерываний (может переопределяется на загрузочный блок или СОЗУ) 0x0000 0000 ИСКЛЮЧЕНИЯ АВАРИЙНОГО ПРЕКРАЩЕНИЯ УПРЕЖДАЮЩЕЙ ВЫБОРКИ И АВАРИЙНОГО ПРЕКРАЩЕНИЯ ОБРАЩЕНИЯ К ДАННЫМ LPC2106/2105/2104 производит соответствующее исключение аварийного прекращения работы шины, если запрошен адрес из зарезервированной или неиспользуемой области памяти. Это области: 1. Области адресного пространства, которые не используются в данном микроконтроллере. Для LPC2106/2105/2104, это: • Адресное пространство между встроенной энергонезависимой памятью и специальными регистрами, обозначенной как "Зарезервированная для внутренней памяти" на рис.2 и рис.6. • Адресное пространство между внутренней Статической ОЗУ и Внешней Памятью. Обозначенный как "Зарезервировано для внутренней памяти" на рис.2. • Внешняя Память (так как внешняя шина не реализована на LPC2106/2105/2104). • - Зарезервированная область в пространстве AHB и VPB. См. Рис.3. 2. Неиспользуемые Области адресного пространства AHB. см. Рис.4. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 3. Неиспользуемые Области адресного пространства VPB. см. Рис.5. Для этих областей, любая предпринимаемая попытка доступа к данным или попытка чтения инструкции вызывают исключение. Кроме того, исключение Аварийного прекращения работы упреждающей выборки генерируется при обращению к пространству AHB или VPB переферии. В пределах адресного пространства VPB периферии, исключение аварийного прекращения обращения к данным не производится в ответ на запрос неопределенного адреса. Расшифровка адреса в пределах каждой периферии ограничена только выбором соответствующего регистра, а при обращении к неопределенному адресу происходит обращение к какому либо регистру в пределах этой переферии. Например, при обращении к регистру 0xE000D000 (неопределенный адрес в пределах UART0) может произойти доступ к регистру, определенному в адресе 0xE000C000. Детали такого совмещения имен адреса в пределах периферийного устройства - неопределены в документации по LPC2106/2105/2104. Обратите внимание, что ARM ядро хранит флаг аварийного прекращения упреждающей выборки вместе со связанной инструкцией в очередь комманд, и аварийное прекращение упреждающей выборки, происходит только если попытка обращения к адресу сделана. Это предотвращает случайные аварийные прекращения работы, которые могли быть вызваны упреждающей выборкой, когда код выполнен на границе памяти. БЛОК УПРАВЛЕНИЯ СИСТЕМЫ ОБЗОР ФУНКЦИЙ БЛОКА УПРАВЛЕНИЯ СИСТЕМЫ Блок управления системы включает несколько особенностей системы и регистров управления для множества функций, которые не связаны с определенными периферийными устройствами. Они включают: • Встроенный тактовый генератор. • Внешние входы прерываний. • Управление переназначением памяти. • РЬЬ. • Управление питанием. • Сброс. • УРВ делитель. • Таймер пробуждения. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) ОПИСАНИЕ ВЫВОДОВ В табл. 4 приведены выводы, используемые в блоке управления системы. Направление Описание Наименование X1 вход Вход встроенного тактового генератора или внешних тактовых импульсов X2 выход Инверсный выход встроенного тактового генератора EINTO вход EINT1 вход EINT2 вход Вход внешнего Активным является сигнал низкого уровня. Этот прерывания 0. вывод может использоваться для вывода процессора из режима «idle» или «PowerDown» Вход внешнего режимов. Низкий уровень на этих выводах сразу прерывания 1. после сброса переводит процессор в ISP режим. Вход внешнего Более детально о ISP можно прочесть в прерывания 2. соответствующем разделе. RST вход Сброс Сигнал низкого уровня сбрасывает микроконтроллер. Табл. 4. Назначение выводов. ОПИСАНИЕ РЕГИСТРОВ Все регистры, независимо от размера, находятся на границах адреса слова. Более подробно регистры описаны в описании каждой функции. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Адрес Имя Описание Досту п После" сброса Внешние прерывания 0xE01FC140 0xE01FC144 Регистр флагов внешних прерываний. R/W 0 EXTWAKE Регистр wakeup внешних прерываний. R/W 0 R/W 0 EXTINT Управление переназначением памяти 0xE01FC040 MEMMAP Управление переназначением памяти PLL 0xE01FC080 PLLCON РЬЬ управляющий регистр. R/W 0 0xE01FC084 PLLCFG РЬЬ регистр конфигурации. R/W 0 0xE01FC088 PLLSTAT РЬЬ регистр состояния. RO 0 0xE01FC08C PLLFEED РЬЬ задающий регистр. WO NA 0 Управление питанием 0xE01FC0C0 PCON Регистр управления питанием. R/W 0xE01FC0C4 PCONP Регистр управления питанием переферии. R/W VPBDIV Регистр управления VPB делителем. R/W 0x3BE VPB делитель 0xE01FC100 * - Поле «После сброса» отражает только состояние используемых битов. Таблица 5. Обзор регистров управления системой Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 0