valeroon
Участник-
Постов
38 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о valeroon
-
Звание
Участник
-
помощь с ARM
valeroon ответил valeroon тема в ARM, 32bit
Не вопрос /************************************************************************* * * Used with ICCARM and AARM. * * © Copyright IAR Systems 2007 * * File name : main.c * Description : Define main module * * History : * 1. Data : 28, February 2007 * Author : Stanimir Bonev * Description : Create * * This example project shows how to use the IAR Embedded Workbench for ARM * to develop code for the IAR LPC-P2378-SK board. It shows basic use of the I/O, * the timer and the interrupt controllers. * It starts by blinking USB Link LED. * * Note: * After power-up the controller get clock from internal RC oscillator that * is unstable and may fail with J-Link auto detect, therefore adaptive clocking * should always be used. The adaptive clock can be select from menu: * Project->Options..., section Debugger->J-Link/J-Trace JTAG Speed - Adaptive. * * $Revision: 1.1.2.2 $ ******************************************************************************/ #include <inarm.h> #include <stdio.h> #include <iolpc2378.h> #include "board.h" #define bitset(var,bitno)((var)|=1<<(bitno))//set bit #define bitclr(var,bitno)((var)&=~(1<<(bitno)))//clear bit #define testbit(var, bitno)((var>> bitno)&0x01)//test bit //***************Объявление переменных и прототипов функций********************* int a,b; void timer(void); //****************************************************************************** #pragma vector=0x1C //определение положения вектора fiq на карте памяти(0x1C) __fiq __arm void fiq_handler(void)//обработчик прерываний { a++; timer(); T0IR_bit.MR0INT=1; } /******************************************************************************* * Function Name: InitClock * Parameters: void * Return: void * * Description: Initialize PLL and clocks' dividers. Hclk - 288MHz, * Cclk- 57.6MHz, Usbclk - 48MHz * ******************************************************************************/ void InitClock(void) { // 1. Init OSC SCS_bit.OSCRANGE = 0; SCS_bit.OSCEN = 1; // 2. Wait for OSC ready while(!SCS_bit.OSCSTAT); // 3. Disconnect PLL PLLCON_bit.PLLC = 0; PLLFEED = 0xAA; PLLFEED = 0x55; // 4. Disable PLL PLLCON_bit.PLLE = 0; PLLFEED = 0xAA; PLLFEED = 0x55; // 5. Select source clock for PLL CLKSRCSEL_bit.CLKSRC = 1; // Selects the main oscillator as a PLL clock source. // 6. Set PLL settings 288 MHz PLLCFG_bit.MSEL = 24-1; PLLCFG_bit.NSEL = 2-1; PLLFEED = 0xAA; PLLFEED = 0x55; // 7. Enable PLL PLLCON_bit.PLLE = 1; PLLFEED = 0xAA; PLLFEED = 0x55; // 8. Wait for the PLL to achieve lock while(!PLLSTAT_bit.PLOCK); // 9. Set clk divider settings CCLKCFG = 5-1; // 1/5 Fpll - 57.6 MHz USBCLKCFG = 6-1; // 1/6 Fpll - 48 MHz PCLKSEL0 = PCLKSEL1 = 0; // other peripherals - 18MHz // 10. Connect the PLL PLLCON_bit.PLLC = 1; PLLFEED = 0xAA; PLLFEED = 0x55; } /************************************************************************* * Function Name: GpioInit * Parameters: void * Return: void * * Description: Reset all GPIO pins to default: primary function * *************************************************************************/ void GpioInit(void) { // Set to inputs IO0DIR = \ IO1DIR = \ FIO0DIR = \ FIO1DIR = \ FIO2DIR = \ FIO3DIR = \ FIO4DIR = 0; // Enable Fast GPIO 0,1 SCS_bit.GPIOM = 1; // clear mask registers FIO0MASK =\ FIO1MASK =\ FIO2MASK =\ FIO3MASK =\ FIO4MASK = 0; // Reset all GPIO pins to default primary function PINSEL0 =\ PINSEL1 =\ PINSEL2 =\ PINSEL3 =\ PINSEL4 =\ PINSEL5 =\ PINSEL6 =\ PINSEL7 =\ PINSEL8 =\ PINSEL9 =\ PINSEL10= 0; } //****************************************************************************** void VicInit(void) { bitset(VICINTSELECT,4);// TMR0 int-FIQ bitset(VICINTENABLE,4);// разрешить прер. } //****************************************************************************** //***************************Подпрограммы*************************************** void timer() { if(testbit(FIO1PIN,19)){bitset(FIO1CLR,19);} else{bitset(FIO1SET,19);}// индикация входа в прерывание по TMR0 } /******************************************************************************* * Function Name: main * Parameters: none * * Return: none * * Description: main * ******************************************************************************/ void main(void) { // MAM init MAMCR_bit.MODECTRL = 0; MAMTIM_bit.CYCLES = 3; // FCLK > 40 MHz MAMCR_bit.MODECTRL = 2; // MAM functions fully enabled // Init clock InitClock(); // Init GPIO GpioInit(); // Init VIC VicInit(); //********************Инициализация и настройка режимов TMR0******************** PCONP_bit.PCTIM0=1;//TMR0 запитан T0TCR_bit.CR=1;//таймер сброшен T0TC=0;T0PC=0;//счетчик таймера и предделителя сброшены T0TCR_bit.CE=1;//разрешение счета T0PR=0x0FFF;//коэфф предделителя T0MR0=0x00FF;//значение совпадения c T0TC reg T0MCR_bit.MR0I=1;//разрешить установку флага прерывания T0MCR_bit.MR0R=1;//сброс счетчика T0TC по совпадению T0TCR_bit.CR=0;//счет T0IR_bit.MR0INT=1;//сброс флага рперывания по совпадению //*************************Тест работы LED************************************** bitset(FIO1DIR,19);// P1.19-выход bitset(FIO1SET,19);// P1.19-установлен в 1 bitset(FIO1CLR,19);// P1.19-сброшен в 0 //****************************************************************************** __enable_interrupt(); while(1) {b++;} } -
помощь с ARM
valeroon опубликовал тема в ARM, 32bit
Здравствуйте.Прошу помощи по началам работы с LPC2378(плата LPC-P2378-SK) за основу был взят пример с диска в комплекте сплатой под который написал свой код(fiq прерывание от TMR0) Проблема в следующем-когда обработчик прерывания прописан в теле функции fiq,отладка в железе идет нормально-но стоит оформить обработчик в виде функции и вызывать ее при прирываниии то-кирдык. В чем я не прав помогите. Среда IAR отладка через JLINK. -
KEIL + LPC2378
valeroon опубликовал тема в В помощь начинающему
Помогите правильно настроить отладчик mVision 3 для совместной работы с платой LPC-2378-SK. На плате встроенный USB-JLINK. При попытке соединения (в файле только startup.s и пустой main.c) кроме всего прочего вижу такие строки ***JLink Error: Failed to verify @ address 0x00000004 (Expected: 0xE59FF018, Found: 0x00000000) JTAG speed: 2285 kHz ***JLink Error: JTAG Timeout during adaptive clocking: RTCK did not respond. Спасибо за совет. -
например LPC-2378-SK в Терраэлектронике около 6000р
-
А с J-LINK усбовым он дружит?
-
А как с этим делом в других средах обстоит?
-
Добрый день.Помогите советом начинающему.Нужно симулировать таймер,но не понятно как быть с инициализацией системы.На цикле типа while(!SCS_bit.OSCSTAT);симулятор циклится а принудительный взвод этого бита -мое ощущение-игнорируется.
-
Помогите стартануть с LPC
valeroon ответил valeroon тема в ARM, 32bit
Спасибо всем отозвавшимся.Сообщаю что этот исходник заработал за одним изменением-регистры типа IOxSET,CLR,PIN,DIR были заменены на FIOxSET и тп.В чем разница думаю разберусь самостоятельно. Насчет бездумного копирования кода-за пример был взят исходник из книги(П.П. Редькин Микроконтроллеры ARM семейства LPC2000).Не имел оснований не доверять написанному. Данный пример компилировался в IAR EW-и программа выполняется из ОЗУ.Вопрос-как осуществить запись и выполнение программы из FLASH. -
Помогите стартануть с LPC
valeroon опубликовал тема в ARM, 32bit
Здравствуйте!Приобрел плату с LPC2378 и как нормальный начинающий сразу сел в лужу.То ли неправильно сконфигурированы GPIO то ли еще чего,но включить/выключить светодиод(классика) не удается(P0.13).Эмулятор через J-LINK плату видит нормально.Вот мой первый исходник для ARM- (сам я электронщик а не программист поэтому написан извините как понимаю).Прошу помощи ! #include <iolpc2378.h> //****************************************************************************** int main() { //***********************Инициализация акселератора FLASH памяти**************** MAMCR_bit.MODECTRL = 0;//MAM blocked MAMTIM_bit.CYCLES = 1;// FCLK<20 MHz MAMCR_bit.MODECTRL = 2;// MAM functions fully enabled MEMMAP=0x00000002; //***************************Инициализация системы****************************** SCS_bit.OSCRANGE = 0;// Fosc=1-20MHz SCS_bit.OSCEN = 1;//Main oscillator enabled while(SCS_bit.OSCSTAT==0);//waiting OSC ready //Disconnect PLL PLLCON_bit.PLLC = 0; PLLFEED = 0xAA; PLLFEED = 0x55; //Disable PLL PLLCON_bit.PLLE = 0; PLLFEED = 0xAA; PLLFEED = 0x55; //***********************Конфигурирование выводов портов************************ IO0DIR=0x00002000;// //IO1DIR=0x00080000;// PINSEL0=0; PINSEL1=0; //****************************************************************************** IO0CLR=0x00002000; IO0SET=0x00002000; IO0CLR=0x00002000; IO0SET=0x00002000; IO0CLR=0x00002000; IO0SET=0x00002000; for( ; ; ) {} } -
Добрый день всем.Есть желание да и необходимость не за горами начать работу с ARM.Для себя определился с интересной для меня архитектурой-это AT91SAM7A3 или AT91SAM7X256.Помогите с выбором отладочной платы.Возможны варианты-все в одном,так и дополняемые модулями(если таковые существуют).Для информации-на сегодняшний день работаю с PIC18 пишу на hi-tech C. Заранее спасибо откликнувшимся.Валера
-
sot353
valeroon опубликовал тема в Компоненты
Добрый день.Ремонтирую дорогой прибор и столкнулся с проблемой идентификации неисправного компонента.Выполнен в корпусе типа sot353,выводы 1,3 входы 4,5 выходы 2 на массу схемы.Cудя по конфигурации печатных проводников должен быть спаренный стабилитрон или защитный диод.Поискал но ничего подходящего по топологии не увидел(выводы1,3 печатью не соединяются с 4,5)Прошу помощи. Да забыл еще -на корпусе маркировка FA и как бы повернутая на 90 градусов буква H -
Подтолкнул к решению проблемы следующий факт-пик завешивается и при подключении к схеме земли осциллографа.Предпринял меры: 1.Землю схемы на корпус прибора через RC. 2.Нейтраль трехфазного ввода на корпус. 3.Радуюсь жизни!!!
-
Добрый день.Вчера просил помощи на форуме микрочип.ру Защелкиваются входа на 16F873a.Перекомпилил без изменений под 16f877-сбои исчезли.Меня давай лечить про кривую программу,разводку,схему и тп.И про "толстую" технологию в 16f877.Проясните чем 8XXa отличается от 8XX.И на кой нужна "тонкая" технология ?Сколько не писал под 16F877-работает как танк хрен завесишь и убьешь