Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 10.01.2011, 11:41  
XRuZzz
Частый гость
 
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
XRuZzz на пути к лучшему
Вопрос [РЕШЕНО] Как оживить LPC1114 (тактирование МК)

В данный момент изучаю LPC1114. После того как прошил плату,
микроконтроллер перестал опознаваться, у меня такое чувство что убил контроллер строчкой:
SYSCON_MCKSel(SYSCON_MCK_PLLINPUT);
Замыкание ноги RESET перед подключением программатора не помогает.

При попытке подключить
J-Flash ARM v4.20 пишет:
Failed to download RAMCode for CPU clock frequency detection!
Failed to measure CPU clock frequency
Failed to connect

IAR пишет:
Parity error (Data = 0xFFFFFFFF, ReceivedParity=1)

А вообще хотелось настроить чтобы контроллер работал от кварца, чтобы контроллер работал на 80 МГц.

Использую:
IAR 5.5(редактирую в Eclipse)
Нелегальный программатор J-Link
к МК подключен кварц 10 Мгц

В проект включил: ОС - CoOS, CMSIS, LPC11xx_lib.
Кусок инициализации:
Код:
        TIM_TIMERCFG_Type TIM_ConfigStruct;
    	TIM_MATCHCFG_Type TIM_MatchConfigStruct;
        GPIO_SetDir(PORT3, LED_RED, 1);
        LPC_IOCON-›PIO0_1=1;
        LPC_SYSCON-›SYSOSCCTRL = 0×01;
        SYSCON_MCKSel(SYSCON_MCK_PLLINPUT);
        SysOscConfig (ENABLE,SYSCON_MOSC_FREQRANG_1_20);
        SYSCON_MCKUpdate();
	SYSCON_CLKOUTClkSel(SYSCON_CLKOUT_CLK_SYSOSC);
        SYSCON_CLKOUTClkDiv(8);
        SYSCON_CLKOUTClkUpdate();
        SYSCON_AHBPeriphClockCmd(SYSCON_AHBPeriph_IOCON ,ENABLE);
	LPC_IOCON-›PIO1_10=0x02;
	LPC_IOCON-›PIO0_1=1;
	LPC_TMR16B1-›PWMC|=2;
    	TIM_ConfigStruct.PrescaleOption = TIM_PRESCALE_TICKVAL;
    	TIM_ConfigStruct.PrescaleValue	= 1;
    	TIM_MatchPins(LPC_TMR16B1,TIM_PINS_MAT1);
    	TIM_Init(LPC_TMR16B1, TIM_TIMER_MODE,&TIM_ConfigStruct);
        TIM_MatchConfigStruct.MatchChannel=1;
        TIM_MatchConfigStruct.ExtMatchOutputType=3;
        TIM_MatchConfigStruct.MatchValue=(0xFFFF››1);
    	TIM_ConfigMatch(LPC_TMR16B1,&TIM_MatchConfigStruct);
    	TIM_ResetCounter(LPC_TMR16B1);
    	TIM_Cmd(LPC_TMR16B1, ENABLE);
lpc11xx_syscon.c
Код:
/**************************************************  *******************//**
 * @brief 		 Selects the main system clock source
 * @param[in]	 SYSCON_MCK_source Clock source, it can be:
 *                - SYSCON_MCK_IRC      : IRC oscillator
 *                - SYSCON_MCK_PLLINPUT : Input clock to system PLL
 *                - SYSCON_MCK_WDTOSC   : WDT oscillator
 *                - SYSCON_MCK_PLL      : System PLL clock out 
 * @return none
 **************************************************  ********************/
void SYSCON_MCKSel(uint32_t SYSCON_MCK_source) 
{
    CHECK_PARAM(PARAM_MCKSEL(SYSCON_MCK_source));    
    
    LPC_SYSCON-›MAINCLKSEL = SYSCON_MCK_source;
    
    //SYSCON_MCKUpdate();  // Не могу понять почему оно за комментировано
      
}


/**************************************************  *******************//**
 * @brief 		 Updates the clock source of the main clock with the new 
 *               input clock
 * @param[in]	 None
 * @return       None
 **************************************************  ********************/
void SYSCON_MCKUpdate (void)
{
    LPC_SYSCON-›MAINCLKUEN = 1;                 
    LPC_SYSCON-›MAINCLKUEN = 0;
    LPC_SYSCON-›MAINCLKUEN = 1;

    /* Wait until updated */
    while (!(LPC_SYSCON-›MAINCLKUEN & 1));
}


Проблема была решена следующий образом:

1. Открыл в меню IARa Project-›Options... выбрал настройки J-Link вкладка Setup
2. Там поменял параметр Reset с "Reset pin" на "Core" как показано на скриншоте.

Однако после этого стали появляться warning-и, которые исчезли после установки Reset в Normal.
Файл с логами warning-ов вложил в сообщение


На другой убитой плате этот способ не помог. Зато помогло заземление PIO0_1, но перед этим надо выключить питание контроллера. ногу удерживать в заземленном состоянии до начала программирования
Миниатюры:
Нажмите на изображение для увеличения
Название: iar_live_lpc1114.JPG
Просмотров: 141
Размер:	39.3 Кб
ID:	16706  
Вложения:
Тип файла: txt iar_logs.txt (24.6 Кб, 186 просмотров)
Реклама:

Последний раз редактировалось XRuZzz; 11.01.2011 в 16:36.
XRuZzz вне форума  
Эти 2 пользователя(ей) сказали Спасибо XRuZzz за это сообщение:
forbidden (05.02.2011), MisterDi (11.01.2011)
Непрочитано 10.01.2011, 12:41  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Как оживить LPC1114

Сообщение о paryty error наводит на мысль о проблемах по линиям JTAG-интерфейса. Проверьте наличие сигналов JTAG-а на выводах процессора при попытыке программирования.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 10.01.2011, 12:52  
XRuZzz
Частый гость
 
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
XRuZzz на пути к лучшему
По умолчанию Re: Как оживить LPC1114

Так он же прошивает девственные платы. Но я на всякий случай потыкался аналог. осциллографом на TMS и TCK - состояние меняется. Может как то попытаться подать внешнее тактирование на контроллер?

Последний раз редактировалось XRuZzz; 10.01.2011 в 13:44.
XRuZzz вне форума  
Непрочитано 10.01.2011, 16:13  
XRuZzz
Частый гость
 
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
XRuZzz на пути к лучшему
По умолчанию Re: Как оживить LPC1114

я так понимаю что тактирование должно начинаться с system oscillator. хотя не понимаю что происходит между кварцем и system oscillator. в даташите не нашёл. нужно ли ещё что нить там настраивать?
Миниатюры:
Нажмите на изображение для увеличения
Название: clock.JPG
Просмотров: 158
Размер:	51.1 Кб
ID:	16704  
XRuZzz вне форума  
Непрочитано 10.01.2011, 16:23  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: Как оживить LPC1114

А если попробовать стартануть бутлоадер?

"работал от кварца с частотой 80 МГц"
80 - опечатка?
akimych вне форума  
Непрочитано 10.01.2011, 16:37  
XRuZzz
Частый гость
 
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
XRuZzz на пути к лучшему
По умолчанию Re: Как оживить LPC1114

А как это делается? Это что то в IARe нужно нажать?
XRuZzz вне форума  
Непрочитано 10.01.2011, 16:52  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: Как оживить LPC1114

Замкнуть ножу проца отвечающую за бутлоадер на землю. Включить питание и прошить правильно прощивкой
Gnider вне форума  
Непрочитано 10.01.2011, 17:14  
XRuZzz
Частый гость
 
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
XRuZzz на пути к лучшему
По умолчанию Re: Как оживить LPC1114

всем спасибо! контроллер ожил, но ногу для бутлоадера (впрочем как и кнопку, чтоб поставить в теме статус [РЕШЕНО]) не нашёл. Буду рад советами по настройке тактирования.
В LPC11xx_lib есть функция SystemInit() но как ей пользоваться не могу понять. То есть её нужно вызвать сразу после main. А вот нужно ли её внутри править или дефайны в system_LPC11xx.c не ясно, вообще библиотеки страшновато трогать.
XRuZzz вне форума  
Непрочитано 10.01.2011, 19:17  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: Как оживить LPC1114

Цитата:
1. Открыл в меню IARa Project-›Options... выбрал настройки J-Link вкладка Setup
2. Там поменял параметр Reset с "Reset pin" на "Core" как показано на скриншоте.
По идее, самое лучшее "Connect during reset" (если заработает).

Цитата:
ногу для бутлоадера не нашёл
А че ее искать-то?
Цитата:
PIO0_1 — General purpose digital input/output pin. A LOW level on this pin during reset starts the ISP command handler.
Вот прикол, я только что столкнулся с такой же проблемой на stm32. Хотел померить потребление, когда ядро в спячке. В результате ст-линк перестал работать. Выручил как раз бутлоадер.
akimych вне форума  
Непрочитано 11.01.2011, 16:35  
XRuZzz
Частый гость
 
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
XRuZzz на пути к лучшему
По умолчанию Re: Как оживить LPC1114

SystemInit() работает.

Код:
#define CLOCK_SETUP           1

#define MAIN_PLL_SETUP        1
#define MAIN_CLKSRCSEL_Val    0x00000001
#define MAIN_PLL_M_Val        0x00000007   // Для кварца 10 МГц и чтобы на выходе получить 80 МГц
// Максимально удалось разогнать до 100 МГц  MAIN_PLL_M_Val 9
#define MAIN_PLL_P_Val        0x00000001 
#define SYS_AHB_DIV_Val       1			/* 1 through 255, typical is 1 or 2 or 4 */

#define USB_CLK_SETUP         0			/* If the USB is used, this bit needs to be set */
#define USE_USB_PLL           0			/* If USB_PLL_SETUP is 0, USE_USB_PLL can't be 1,
                                        USB clock can be either from main PLL or USB PLL. */
#define USB_CLKSRCSEL_Val     0x00000001
#define USB_PLL_M_Val         0x00000003
#define USB_PLL_P_Val         0x00000001
Вложения:
Тип файла: txt system_LPC11xx_с.txt (9.6 Кб, 189 просмотров)

Последний раз редактировалось XRuZzz; 11.01.2011 в 20:21.
XRuZzz вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Публикации и заметки, посвящёные ДР Николы Теслы - 10 июля! Все на праздник! hacker7 Отвлекитесь, эмбеддеры! 14 15.04.2011 23:59
Как пользоваться зажимом "крючок" ASU_Andy Измерительное оборудование 4 23.01.2010 14:24
[Решено] Третье Послание Человечеству lelkanet Отвлекитесь, эмбеддеры! 201 06.01.2010 00:33


Часовой пояс GMT +4, время: 06:08.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot