Easyelectronics.ru

Электроника для всех
Текущее время: 17 окт 2019, 15:41

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 25 ] 
Автор Сообщение
 Заголовок сообщения: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 00:50 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
Здравствуйте уважаемые форумчане!
Играюсь со зверем LPC2368, надумал на нем с USB разбираться да вот не задача, при попытке переключится на внешний генератор проц у меня виснет в ожидании стабилизации частоты (бита OSCSTAT). Ну и понятное дело что без внешнего источника тактирования ни о каком USB с его 48-ю мегагерцами и речи быть не может.
Пробовал и кварц подключать и генератор, и нифига.
В Erata про эту проблему ни слова не нашел (но из личного опыта знаю что верить её не стоит). На всякий случай у меня проц с буковкой ‘B’ т.е. Third device revision. Может у кого-то есть такой же проц с такой же ревизией который подключается к внешнему генератору? Перепробовал три разный проца, при чем один из ни шил не на макетке как два предыдущий а в промышленно изготовленной плате которая по идее должна с ним работать и в которой стоит генератор на 12МГц, на нем (проце) правда были буковки BY (что такое Y в Erata я не нашел).
В общем я уже начал склоняться к мнению что этот проц третьей ревизии в принципе от внешнего осцилятора не работает.
У кого какое мнение по этому поводу будет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 01:26 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Сбросьте свой код сюда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 09:01 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
Код:
#define CLKSRCSEL_MAINOSC    0x01;
#define  OSCEN()                      SCS |=0x00000020
#define  OSCSTAT                     !(SCS&0x00000040)
#define  OSCRANGE_1_20()       SCS &= ~0x00000010
*********************

CLKSRCSEL = CLKSRCSEL_MAINOSC;
OSCRANGE_1_20();                           //The frequency range of the main oscillator is 1MHz to 20MHz.
OSCEN();                                          //The main oscillator is enabled
/*Тут проц зависает в ожидании*/
while (OSCSTAT)                                //Wait for it to settle
{
      
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 11:51 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Не лучше сделать "стандартную" полную инициализацию? (из книги Т.Мартина)

Код:
SCS    &= ~0x0000010;      //   Enable main oscillator
SCS    |= 0x00000020;       //   Select main oscillator range
PLLCON  &= ~0x00000002;    //   disconnect the PLL
PLLFEED  = 0xAA;          //   write feed sequence
PLLFEED  = 0x55;
PLLCON  &= ~0x00000001;    //   Disable the PLL
PLLFEED  = 0xAA;          //   Write feed sequence
PLLFEED  = 0x55;

while(!(SCS&0x00000040));    //   Wait until main oscillator is stable

CLKSRC   = 0x00000001;       //   Select main oscillator as PLL input
PLLCFG   = 0x00000000;       //   Write PLL multiplier and divider values
PLLFEED  = 0xAA;          //   Write feed sequence
PLLFEED  = 0x55;
PLLCON   = 0x00000001;       //   Enable the PLL
PLLFEED  = 0xAA;          //   Write feed sequence
PLLFEED  = 0x55;
USBSEL   = 0x000000005;    //   Write USBSEL divider value
CCLKSEL  = 0x000000004;    //   Write CPU divider value

while(PLLSTAT & 0x000);    //   Wait for the PLL to Lock

PLLCON  |= 0x00000002;       //   Connect the PLL
PLLFEED  = 0xAA;          //   Write feed sequence
PLLFEED  = 0x55;

Кстати, это же ваши темы?
http://www.microchip.su/showthread.php?t=11797
http://electronix.ru/forum/index.php?showtopic=89764

Зависает при использовании отладчика?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 17:46 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
p.s. adaptive clocking попробуйте поменять на 1000Khz, к примеру в настройках j-link.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 19:20 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
A-10 писал(а):
Не лучше сделать "стандартную" полную инициализацию? (из книги Т.Мартина)
Кстати, это же ваши темы?

Если вы смотрели эти темы то наверняка виели что я делал и полную инициализацию согласно даташиту что по сути повторяется у Т.Мартина. Просто я решил попытаться определить проц виснет из-за PLL или из-за отсуствия внешнего синхросигнала. Так как вышенаписанный мной код не работает я делаю вывод что не работает именно внешнее тактирование а PLL только усугубляет ситуацию.
Указанные вами темы я создавал давольно давно, когда работал с процессором на макетке, на тот момент я сделал вывод что проблема в длинных дорогах макетки, но недавно мне в руки попалась промышленно изгатовленная плата с точно таким же процессором с которой повторилоась та же проблема. По этому тему я решил возобновить.
Создал тему сдесь потому что на других форумах мне никто ничего полезного не подсказал, а тут вы хотябы проявили любопытство к моей проблеме.
A-10 писал(а):
Зависает при использовании отладчика?

Нет, зависает независимо от наличия отладчика. У меня там светодиодик на плате стоит который должен загареться после того как тактирование установится. Но он не загарается. По поводу изменения скорости отладчика я тоже когда-то читал в интернете но боюсь что тут не в отладчике дело...

Мне уже даже интересно стало, неужели ни у кого не было аналогичной проблемы с этим процем? Проц то популярный, к тому же с тремя разными 2368-ми одна и та же проблема... Мистика))
Один - случайность, два - закономерность, три - пора дописывать глюк в Erata))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 20:19 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
ИМХО лучше проверить отладчиком, мало ли почему СД не горит. Я, к примеру, долго тупил с двумя пинами, которые не устанавливались, оказалось они по дефолту аналоговые (хотя я UM читал, просто мельком проголядел, думал все PINSEL по умолчанию 0). Спасибо подсказали, сам бы в последнюю очередь туда полез, ибо был "тупо уверен".
Заодно проверьте правильность установки битов в регистры.
Я в общем про то, что надо отбрасывать лишнее, когда проблема непонятно в чем.
Посмотрел еще 100% рабочий код на lpc2478 (на работе запускали), вроде все нормально со стартом и подключением генератора.
А от внутреннего работает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 21:14 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
A-10 писал(а):
ИМХО лучше проверить отладчиком, мало ли почему СД не горит. Я, к примеру, долго тупил с двумя пинами, которые не устанавливались, оказалось они по дефолту аналоговые (хотя я UM читал, просто мельком проголядел, думал все PINSEL по умолчанию 0). Спасибо подсказали, сам бы в последнюю очередь туда полез, ибо был "тупо уверен".
Заодно проверьте правильность установки битов в регистры.
Я в общем про то, что надо отбрасывать лишнее, когда проблема непонятно в чем.
Посмотрел еще 100% рабочий код на lpc2478 (на работе запускали), вроде все нормально со стартом и подключением генератора.
А от внутреннего работает?

По поводу светодиода я уверен на 100% в его работоспособности так как инициализирую порт и моргаю им перед подключением к кварцу а после он уже не загорается . По поводу отбрасывания всего лишнего полностью с вами согласен, собственно этим я и занимаюсь сейчас, только вот идеи заканчиваются потому и пишу на форумы в надежде на новые.
От внутреннего генератора нормально работает (иначе как бы до первого моргания светодиодом доходил).
В коде я в принципе тоже уверен, просто там особе не где ошибаться, эту инициализацию уже сто раз мусолили все кому не лень во всевозможной литературе и форумах.
Вот если бы найти у кого LPC2368 (а ещё лучше В-ревизию) и проверить... Подозреваю что это глюк конкретно этой серии процессоров. Собственно это не первый недокументированный глюк этого проца с которым я сталкивался, но этот победить я пока так и не смог. Ещё надо будет попробовать подрубить PLL к часовому кварцу, на макетке он подрубался иногда, но под настроение, может на промышленной плате будет лучше работать.
Какие ещё идеи будут?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 21:37 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Ну понятно.
А по разводке там как, что за плата вообще (та что промышленная)? Емкости какие стоят?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 22:08 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
A-10 писал(а):
Ну понятно.
А по разводке там как, что за плата вообще (та что промышленная)? Емкости какие стоят?

Пробовал все. И кварц с емкостями на 22 pF, сейчас на плате стоит генератор на 12МГц (а ему емкости не нужны). Ну могу попробовать сфоткать кусок платы с генератором и процем, ток у меня фотик не сильно макросъемку любит так что может и не получится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 08 июн 2011, 23:14 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
А вот и фотка
Вложение:
DSCF1572.JPG
DSCF1572.JPG [ 96.57 Кб | Просмотров: 15506 ]
дорога немного кривовата, но идет от генератора а он к помехам вполне устойчив, да и расстояние там вполне приемлимое для 12МГц-вого генератора, к тому же таких плат было выпущено несколько сотен, и если бы у них у все из-за дороги были такие глюки то думаю что их бы не делали. С другой стороны если бы у всех процев на этих платах были бы такие глюки то их бы не использовали...
В общем тут уже нужны не знания а опыт коего у меня при общении с ARM-ами пока маловато судя по всему. Надеюсь на коллег на этом форуме.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 00:30 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
Только что проверил. От часового кварца проц тактируется. Но когда попытался подрубить PLL то получил любопытную вещь. Если установить значение MSEL регистра PLLCFG больше 52-х то проц зависает и отваливается. Хотя в даташите написано "values of M from 6 through 512 are allowed". Либо чота не так в даташите либо у меня какой-то неправильный проц. С другими двумя помница было то же самое только там максимальное значение было где-то около 15. Но точно не 512...
В общем не знаю что и добавить.
Какие будут соображения?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 01:16 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Подумал откуда там такие дикие значения мн-ля, а там же еще постделитель. Ну тогда да, странно.
Мб там есть граничные значения, как для FFCO у LPC22xx?

Что-то типа:
Код:
#define   FCCO      (RL_FRQ * 2 * PDIV)

#if       (FCCO >=  320000000) || (FCCO <= 156000000) 
#error     FCCO must be in range of 156Mhz to 320Mhz!!!


Мне просто сейчас уже влом лезть в UM 2368, глаза устали.

p.s. Посмотрите еще раз мануал, мб упускаете какую-то мелочь.
Для часового кварца емкости у вас какие?

Все-таки странно, чтобы с генератора не заводился..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 09:25 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
A-10 писал(а):
Подумал откуда там такие дикие значения мн-ля, а там же еще постделитель. Ну тогда да, странно.
Мб там есть граничные значения, как для FFCO у LPC22xx?
Мне просто сейчас уже влом лезть в UM 2368, глаза устали.
p.s. Посмотрите еще раз мануал, мб упускаете какую-то мелочь.
Для часового кварца емкости у вас какие?

По поводу дикости значений не совсем понял. Постделитель там есть. По поводу величины М немного обманул
Цитата:
Supported values for M
are 6 through 512 and those listed in Table4–39

там в таблице записаны значения для часового кварца позволяющие загнять FCCO (наверное вы его имели ввиду) аж до 528 МГц (правда чота мне слабо верится в такое)
У FCCO есть граничное значение
Цитата:
FCCO is in the range of 275MHz to 550MHz.

Хотя в Erata есть упоминание что
Цитата:
The maximum output of the CCO within the PLL block is limited to 290MHz.
но этот баг описан для
Цитата:
Initial device revision
а у меня все таки уже третья ревизия.
Емкости на часовом кварце на макетке у меня на 22 пика как и на обычном кварце стояли, на второй плате пока не знаю. Там на фотке черный квадратик слева от основного генератора - это и есть часовой кварц. Подозреваю что это тоже генератор, но вечером попробую посмотреть может это закамуфлированный кварц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 19:22 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
Померил, на сфотографированной плате стоят примерно на 40 pF каждый (если верить моему тестеру).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 21:44 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Ну я просто удивился, ибо у lpc2214 множитель можно ставить весьма небольшой, а делителя в таком виде нет. И FCCO имеет другой диапазон.
А судя по Um на 2368 все ок.

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 22:15 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
Ну по поводу того что все Ok я согласен, мне не привыкать ловить ошибки в даташитах (при чем не только на ARM-ах), однако ж не работает... Неужели ни у кого на этом форуме нет под рукой LPC2368 чтоб просто убедится могут ли они вообще с кварцем работать... Может мне просто попались три проца не рабочих из разных источников и это именно их баг (хотя они мне из разных источников пришли)...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 23:05 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Да, ошибки в ДШ пристуствуют, к сожалению. Но такие фатальные ошибки довольно редки, обычно они касаются довольно специфических случаев при работе с периферией.
Имхо, на этом форуме не так много людей, работающих с армами, на том же электрониксе должно быть куда больше. Кроме того, многие уже переехали на Cortex-M3.
И к тому же, каждый случай может быть обособлен, и удаленно такие проблемы решать сложно. А когда все это есть на руках, можно разобрать все "по косточкам": попробовать подобрать другие емкости, посмотреть генерацию осциллографом и т.п. Главное локализовать, где проблема, в железе или в софте. Иногда начинаешь искать проблемы в железе, а оказывается где-то в коде допустил небольшую ошибку, которую уж никак не ожидал.

p.s. попробуйте поспрошать на зарубежных форумах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 09 июн 2011, 23:23 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
Попробую поспрашивать после отпуска. Завтра последний день так что уже не до проца будет. А насчет софта и железа то тут случай наверное тупиковый, так как вы сами видели исходник и все там правильно (да по другому и быть не могло, в 10-ти строчках которые кучу раз повторяют все кому не лень). Да и в железе тоже в двух ногах сложно запутаться. Осциллограмму как-нибудь могу прислать после отпуска, но все там нормально, я осциллограф в него в первый же день воткнул.

Кстати, вопрос не в тему, а чего все так на этих Cortex-ах помешались? Периферия круче или производительность выше? Да и любопытно куда такую производительность использовать (не думаю что каждый второй мобильник свой делает). Мне моего ARM 7 пока что выше крыши по всем параметрам. Если б он ещё работал нормально...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 10 июн 2011, 00:17 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Скиньте мне весь ваш код, касающийся инициализации. В свободное время попробую посмотреть на него повнимательней и сравню с имеющимся для lpc2478.

Ну Cortex вобрал в себя все лучшее от ARM7, по словам разработчиков. Из того, что помню - более навороченный контроллер прерываний, время входа в прерывание уменьшилось (и детерминированно), упрощен вызов вложенных прерываний. Почти все операции могут быть реализованы на Си, кроме того, есть стандарт CMSIS http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php.
Производительность зависит от линейки, но в целом выше (до 120Мгц ЕМНИП). Это не все конечно, лучше почитать оф. документацию на сайте ARM. Или книгу "The definitive guide to the arm cortex-m3 2nd edition".

В целом конечно можно сказать, что хватает и более слабых МК, однако задача задаче рознь. Когда нужно выводить данные на GLCD и обрабатывать данные с датчиков, при этом писать лог на СД-карту с высокой частотой и т.п., производительность лишней явно не будет =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 10 июн 2011, 00:53 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
Вот
Вложение:
TestOscilator.rar [3.44 Кб]
Скачиваний: 376
там функция инициализации, заголовок для неё с полной инфой по каждому биту, ну и на скорую руку набросал main которые моргает светодиодиком при успешной окончании инициализации. Все это дело написано под Keil v4.14.4.0. Думаю создать проект и просто добавить туда все файлы из архива не составит большого труда.

p.s. кстати, если интересно, для всяких битовых операций, которых в конфигурировании регистров полно, конечно можно использовать виндовый калькулятор который в Win7 уже нормально поддерживает сдвиги (не то что убогий calc из WinXP) но гораздо удобнее и нагляднее ИМХО пользоваться вот такой маленькой программой http://binhexdec32.sf.net/ Может она корни со степенями и не считает но для того чтобы выставить скажем 25-й бит в 32-х битном регистре нужно сделать всего один клик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 10 июн 2011, 01:23 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Ок
А калькулятор в вин7 неплохой, действительно. Хотя эти запарки с подсчетом битов порой так достают. Особенно после Pic'ов с возможностью выставить или снять любой бит путем обращения к структуре.
Спасибо за ссылку, заценю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 15 июн 2011, 20:08 
Заглядывает иногда

Зарегистрирован: 08 фев 2010, 21:01
Сообщения: 43
Откуда: Мариуполь
была проблема такая же один в один, но на камне lpc2478
оказалось, что всему виной отладчик
когда совершаешь операции с осциллятором, есть временное окно
для выполнения отдельных операций (сейчас уже точно не скажу где именно, давно дело было, или стабилизация генератора или захват ФАПЧ , помню прога висла на этапе инициализации)
решается проблема просто
воткнуть галку для старта отладки с функции main
в данном случае, вся инициализация проходит без временных задержек
и генератор удачно стартует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 18 июн 2011, 00:18 
Только пришел

Зарегистрирован: 08 июн 2011, 00:29
Сообщения: 13
scaler писал(а):
была проблема такая же один в один, но на камне lpc2478
оказалось, что всему виной отладчик
когда совершаешь операции с осциллятором, есть временное окно
для выполнения отдельных операций (сейчас уже точно не скажу где именно, давно дело было, или стабилизация генератора или захват ФАПЧ , помню прога висла на этапе инициализации)
решается проблема просто
воткнуть галку для старта отладки с функции main
в данном случае, вся инициализация проходит без временных задержек
и генератор удачно стартует.

В принципе я про эту галочку знал, но решил на всякий случай поэксперементировать с заливкой прошивки без отладки. К моему великому удивлению, действительно таким образом смог прекрасно догнать множитель М до значения 512 при работе с часовым кварцем... Но для Main Oscillator таке чудо не прокатило (собственно оно и раньше не прокатывало). При переключении на него проц ни в какую не желает заводится и моргать светодиодом, при попытке посмотреть отладчиком выдает:
Target DLL has been cancelled. Debugger aborted!
Так что не в отладчике тут дело, как я уже выше говорил а в чем-то другом, но в чем ума не приложу. Может бубен не тот :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LPC2368 main oscillator
СообщениеДобавлено: 25 авг 2013, 07:58 
Здравствуйте!

Зарегистрирован: 25 авг 2013, 07:50
Сообщения: 1
Так разобрались с этим или нет ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB