Всем привет! Изучаю 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
Еще не проверял! Просто мне интересно насколько правильно я понимаю смысал. Меня интересует правильность формул, правильные они или нет? Самы настораживавший момент в формулах, не пойму с вычитанием еденици ( M-1 )или сложением еденици (M+1) Вот тут я и под запутался(((
Регистры и биты вних перепроверил. Вроде все правильно.))) Повторюсь, меня интересует правильность расчета!)))
_________________ STM32F4 Discovery + KEIL + Windows 7
Спасибо за помощь! Какого примера? Это я сам сегодня при помощи мануала написал и сразу комментировал чтобы отложилось в файле и голове!)))
По поводу LPC23xx/24xx, я загорелся и купил сломе голову не разобравшись что к чему, а потом узнал что они уже устарели. Ну нечего лоханулся по полной, теперь буду его изучать. Потом со временим другой куплю.)))
_________________ STM32F4 Discovery + KEIL + Windows 7
Заголовок сообщения: Re: LPC2468 и IAR ARM Вопросы и ответы
Добавлено: Чт апр 12, 2012 22:49:45
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
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 там та же самая. Если не вникать в само ядро, писать на Си и не увлекаться оптимизацией - то можно и на том что есть потренироваться, зря время много не потратишь.
Ок, спасибо! Все же буду пака на тренироваться на том что есть! Сейчас скомпилировал проект и залил его в МК, все работает без проблем))) Скажи а как я могу убедится что МК работает на частоте 60МГц?
Подскажи, как лучше написать функцию задержки при помощи таймера?
_________________ STM32F4 Discovery + KEIL + Windows 7
По поводу LPC23xx/24xx, я загорелся и купил сломе голову не разобравшись что к чему, а потом узнал что они уже устарели. Ну нечего лоханулся по полной, теперь буду его изучать. Потом со временим другой куплю.)))
Устареть-то устарели, но современные NXP LPC17xx по периферии очень близки к 23xx/24xx (в некоторых случаях 100% совместимость снизу вверх, да и по ногам совместимость близкая к полной). Поэтому изучение "старья" вполне оправданно, ведь основные заморочки связаны с периферией, а не с инициализацией PLL -- это не говоря о том, что разобравшись с принципами один раз и на одном МК, уже без проблем можно будет работать с любыми другими МК любых других производителей.
Заголовок сообщения: Re: LPC2468 и IAR ARM Вопросы и ответы
Добавлено: Пт апр 13, 2012 21:08:33
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
SII писал(а):
Устареть-то устарели, но современные NXP LPC17xx по периферии очень близки к 23xx/24xx (в некоторых случаях 100% совместимость снизу вверх, да и по ногам совместимость близкая к полной).
Там только GPIO принципиально новый. Остальное без изменений.
Но, если выбор есть, лучше без промежуточных этапов
На самом деле, если навыками пайки владеешь, на место lpc23xx/24xx без каких либо изменений вообще встают lpc177x/178x . Периферия кроме GPIO там та же самая. Если не вникать в само ядро, писать на Си и не увлекаться оптимизацией - то можно и на том что есть потренироваться, зря время много не потратишь.
Цитата:
Там только GPIO принципиально новый. Остальное без изменений.
GPIO сам по себе точно такой же, совершенно иная лишь инициализация ног (какая за что отвечает и всё такое прочее) -- т.е., сделав инициализацию, в дальнейшем с ногами работаешь, как на 24хх. А у прочих 17хх (не 177х/8х) вроде вообще на 100% та же самая.
Си вообще не признаю и не использую: "высокоуровневый" код делаю на Аде, низкоуровневый -- на ассемблере. Так вот, переносимость правильно написанного ассемблерного кода между 2478 и 1788 у меня процентов 90, наверное -- во всяком случае, править приходится немного.
Заголовок сообщения: Re: LPC2468 и IAR ARM Вопросы и ответы
Добавлено: Пт апр 13, 2012 21:35:50
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Ну, код под Thumb режим Arm7tdmi может практически без изменений на cortex-m3 скомпилируется с его преемственным Thumb2. Практический смысл только весьма умеренный - набор комманд Thumb2 куда интересней и резервы для оптимизации большие.
Заголовок сообщения: Re: LPC2468 и IAR ARM Вопросы и ответы
Добавлено: Пт апр 13, 2012 21:47:43
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Вобщем, если вдруг автору для коммерческих разработок, то при прочем равном lpc17xx примерно на треть дешевле lpc23xx/24xx и в ~2 раза производительнее.
Всем привет! Вернулся из командировки и продолжаю изучать arm))) Для того чтобы сделать функцию задержки в каком режиме мне нужно настроить TIMER0? Я пока пытаюсь запустить в режиме счетчика!
_________________ STM32F4 Discovery + KEIL + Windows 7
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения