LPC2468 и IAR ARM Вопросы и ответы

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

LPC2468 и IAR ARM Вопросы и ответы

Сообщение Mr.Denis »

Всем привет!
Изучаю MK ARM LPC2468 в связке с IAR ARM. Есть вопросы но не знаю куда обратится, вот и решил создать тему.
Можете проверить правильно я настроил МК на частоту 60МГц, и USB на 48МГц.

Код: Выделить всё

void InitClock(void)
{
  // Конфигурация регистра SCS:
  // GPIO = 1 (Включение быстрого режима),
  // OSCRANGE = 0 (Выбор рабочего диапазона генератора от 1MHz до 20Mhz),
  // OSCEN = 1 (Разрешить использование основного генератора подключенного к  XTAL1 è XTAL2).
 SCS |= 0x00000021;
 // Конфигурация регистра  PLLCON:
 // PLLC = 1 (Отключаем PLL)
 PLLCON &= 0x00000002;
 // Для изменения PLLCON записываем две команды в PLLFEED
 PLLFEED = 0xAA;
 PLLFEED = 0x55;
 // Конфигурация регистра  PLLCON:
 // PLLE = 1 (Выключаем  PLL)
 PLLCON &= 0x00000001;
 // Для изменения PLLCON записываем две команды в PLLFEED
 PLLFEED = 0xAA;
 PLLFEED = 0x55;
 // Дожидаемся стабильного сигнала от основного генератора
 // Проверяем бит OSCSTAT в регистре SCS
 while (!( SCS &0x00000040));
 // Выбираем основной генератор в качестве источника синхронизации PLL
 // CLKSRC = 0x01; 
 CLKSRCSEL = 0x00000001;
 // Расчет коэффициента умножения:
 // Fcco = 480MHz, Fin = 12MHz.
 // M = (Fcco * 1) / (2 * Fin) = (480 * 1) / (2 * 12) =  20 - 1 = 19
 // Расчет коэффициента деления:
 // N = (2 * M * Fin) / Fcco = (2 * 20 * 12) / 480 = 1 - 1 = 0
 // Записываем в биты MSEL регистра PLLCFG множитель 19 (HEX:0x13)
 // Записываем в биты NSEL регистра PLLCFG делитель 0 (HEX:0x00)
 PLLCFG = 0x00000013;
 // Для изменения PLLCFG записываем две команды в PLLFEED
 PLLFEED = 0xAA;
 PLLFEED = 0x55;
  // Включение  PLL
 PLLCON = 0x00000001;
 // Для изменения PLLCON записываем две команды в PLLFEED
 PLLFEED = 0xAA;
 PLLFEED = 0x55;
 // Считаем делитель CPU для 60MHz
 // CCLKCFG = Fcco / Cclk = 480 / 60 = 8 - 1 = 7
 // Записываем в CCLKSEL делитель 7
 CCLKCFG = 0x00000007;
 // Считаем делитель USB для 48MHz
 // USBCLKCFG = Fcco / USBclk = 480 / 48 = 10 - 1 = 9
 // Записываем в USBSEL делитель 9
 USBCLKCFG = 0x00000009;
 // Ждем установленного сигнала PLL
 while(!(PLLSTAT & 0x02000000));
 // Подключаем  PLL
  PLLCON |= 0x00000002;
   // Для изменения PLLCON записываем две команды в PLLFEED
 PLLFEED = 0xAA;
 PLLFEED = 0x55;
} 
В заранее всем спасибо!)))
STM32F4 Discovery + KEIL + Windows 7
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

похоже на то.
а что, не работает ?
Реклама
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Mr.Denis »

Еще не проверял!
Просто мне интересно насколько правильно я понимаю смысал.
Меня интересует правильность формул, правильные они или нет?
Самы настораживавший момент в формулах, не пойму с вычитанием еденици ( M-1 )или сложением еденици (M+1)
Вот тут я и под запутался(((


Регистры и биты вних перепроверил. Вроде все правильно.)))
Повторюсь, меня интересует правильность расчета!)))
STM32F4 Discovery + KEIL + Windows 7
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

У тебя разве это не на базе того же примера из IARа сделано ? -))
С формулами нормально.

Вот только LPC23xx/24xx старье моральное...
Реклама
Эиком - электронные компоненты и радиодетали
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Mr.Denis »

Спасибо за помощь!
Какого примера?
Это я сам сегодня при помощи мануала написал и сразу комментировал чтобы отложилось в файле и голове!)))

По поводу LPC23xx/24xx, я загорелся и купил сломе голову не разобравшись что к чему, а потом узнал что они уже устарели. Ну нечего лоханулся по полной, теперь буду его изучать. Потом со временим другой куплю.)))
STM32F4 Discovery + KEIL + Windows 7
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

Mr.Denis писал(а): Какого примера?
Да хотя бы такого :)))
C:\Program Files\IAR Systems\Embedded Workbench 6.0\arm\examples\NXP\LPC24xx\IAR-LPC-2468\VirtualCom\board\sys.c
см. функцию с тем же названием, что и у тебя.

На самом деле, если навыками пайки владеешь, на место lpc23xx/24xx без каких либо изменений вообще встают lpc177x/178x .
Периферия кроме GPIO там та же самая. Если не вникать в само ядро, писать на Си и не увлекаться оптимизацией - то можно и на том что есть потренироваться, зря время много не потратишь.
Реклама
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Mr.Denis »

Ок, спасибо!
Все же буду пака на тренироваться на том что есть!
Сейчас скомпилировал проект и залил его в МК, все работает без проблем)))
Скажи а как я могу убедится что МК работает на частоте 60МГц?

Подскажи, как лучше написать функцию задержки при помощи таймера?
STM32F4 Discovery + KEIL + Windows 7
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

ну как.... завести таймер и ждать пока натикает. как еще ? -)))
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Mr.Denis »

Что-то я не как не пойму как этот Timer0 настроить!?
Делаю так:

Код: Выделить всё

void InitTimer0(void){
// Сбрасываю Timer0
 T0TCR = 0x00000002; 
 //60MHz = 60 000 000Hz.
 //Количество тактов за 1мк = 60000000 / 2 / 1000 = 30000 тактов за 1мк
 //Количество тактов за 1 мкс = 60000000 / 2 / 1000000 = 30 тактов за 1мкс
 // Устанавливаю пред делитель 2
 T0PR = 0x00000002;
}
Вот до этого дошел, и то неуверен что правильно.((
Дальше совсем ступор. Не могу понять что делать дальше?
Подскажите пожалуйста
STM32F4 Discovery + KEIL + Windows 7
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение SII »

Mr.Denis писал(а):По поводу LPC23xx/24xx, я загорелся и купил сломе голову не разобравшись что к чему, а потом узнал что они уже устарели. Ну нечего лоханулся по полной, теперь буду его изучать. Потом со временим другой куплю.)))
Устареть-то устарели, но современные NXP LPC17xx по периферии очень близки к 23xx/24xx (в некоторых случаях 100% совместимость снизу вверх, да и по ногам совместимость близкая к полной). Поэтому изучение "старья" вполне оправданно, ведь основные заморочки связаны с периферией, а не с инициализацией PLL -- это не говоря о том, что разобравшись с принципами один раз и на одном МК, уже без проблем можно будет работать с любыми другими МК любых других производителей.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

SII писал(а): Устареть-то устарели, но современные NXP LPC17xx по периферии очень близки к 23xx/24xx (в некоторых случаях 100% совместимость снизу вверх, да и по ногам совместимость близкая к полной).
Там только GPIO принципиально новый. Остальное без изменений.

Но, если выбор есть, лучше без промежуточных этапов :)))
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение SII »

Satyr писал(а):На самом деле, если навыками пайки владеешь, на место lpc23xx/24xx без каких либо изменений вообще встают lpc177x/178x .
Периферия кроме GPIO там та же самая. Если не вникать в само ядро, писать на Си и не увлекаться оптимизацией - то можно и на том что есть потренироваться, зря время много не потратишь.
Там только GPIO принципиально новый. Остальное без изменений.
GPIO сам по себе точно такой же, совершенно иная лишь инициализация ног (какая за что отвечает и всё такое прочее) -- т.е., сделав инициализацию, в дальнейшем с ногами работаешь, как на 24хх. А у прочих 17хх (не 177х/8х) вроде вообще на 100% та же самая.

Си вообще не признаю и не использую: "высокоуровневый" код делаю на Аде, низкоуровневый -- на ассемблере. Так вот, переносимость правильно написанного ассемблерного кода между 2478 и 1788 у меня процентов 90, наверное -- во всяком случае, править приходится немного.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

Ну, код под Thumb режим Arm7tdmi может практически без изменений на cortex-m3 скомпилируется с его преемственным Thumb2.
Практический смысл только весьма умеренный - набор комманд Thumb2 куда интересней и резервы для оптимизации большие.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

Вобщем, если вдруг автору для коммерческих разработок, то при прочем равном lpc17xx примерно на треть дешевле lpc23xx/24xx и в ~2 раза производительнее.
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Mr.Denis »

Приветствую!
Спасибо за разъяснения по МК!)
Можете что-то подсказать по таймеру?
А то не как немого понять как настроить его(((
STM32F4 Discovery + KEIL + Windows 7
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

Mr.Denis писал(а): А то не как немого понять как настроить его(((
Посмотри примеры из комплекта IARа. Там все предельно понятно и с комментариями.
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Mr.Denis »

Всем привет!
Вернулся из командировки и продолжаю изучать arm)))
Для того чтобы сделать функцию задержки в каком режиме мне нужно настроить TIMER0? Я пока пытаюсь запустить в режиме счетчика!
STM32F4 Discovery + KEIL + Windows 7
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: LPC2468 и IAR ARM Вопросы и ответы

Сообщение Satyr »

в режиме счетчика и надо
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»