Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Запуск Phillips LPC2368FBD100

Вс окт 22, 2017 01:45:29

Коллеги, мяу!

Заимел на руки LPC2368 для ознакомления...

Читал документацию, после мучений с AT91SAM7 она мне показалась более "взрослой" и полезной :)

Припаяв чип на плату и достав свой мостик на CP2103 радовался я недолго.

Наковырял в Keil'е нехитрый код:
Код:
#include <LPC23xx.h>

int main(void) {
   FIO2DIR |= (1<<12);
   CLKSRCSEL = 0x01;
   while(1) {
      FIO2SET |= (1<<12);
      FIO2CLR |= (1<<12);
   }
};

Прогнал симулятором - все ок, можно шиться, чем я и занялся посредством Flash Magic.

Прошивка заливается, но на экране осциллоскопа тишина!

Порт P2.12 молчит, осциллятор молчит. Пробовал переключаться на внутренний генератор (CLKSRCSEL = 0x00;) - результат тот же.

Долго курил теорию и лабы Бауманки по этому процу (где достал - сам не понял). Согласно им все должно работать.
Если глядеть в мануал - тактирование на GPIO по дефолту всегда, все пины GPIO после ребута никуда не замаплены.

Подскажите, что с ним (или со мной) не так? :roll:

Re: Запуск Phillips LPC2368FBD100

Пн окт 23, 2017 03:00:23

Вывод BOOT подтянут к питанию?

Re: Запуск Phillips LPC2368FBD100

Пн окт 23, 2017 09:54:52

AlphaLaiman писал(а):Вывод BOOT подтянут к питанию?


А что это, простите, за вывод? Просмотрел весь UM10211 по линейке LPC236x, там про такой вывод ни слова...

На данный момент у меня служебные пины таковы:

Vss - GND
Vssa - GND
Vdd(3v3) - 3.3V
Dvv(dcdc) - 3.3V
Vdda - 3.3V
Vref - 3.3V

XTAL1, XTAL2 - кварц 12МГц + кондеры по 10пФ

RESET - через 10к на 3.3V

Ну и для обмена с CP2103 подключены пины P0[2]/TXD0 и P0[3]/RXD0.

Из не подключенных служебных остались только RTCX1, RTCX2 и VBAT, но они все, вроде как, относятся к часам реального времени (кварц + дежурная батарейка), которые мне и не нужны.

Re: Запуск Phillips LPC2368FBD100

Пн окт 23, 2017 11:22:55

Управление загрузчиком

upd. В этом камне оказывается используется пин P2[10]/EINT0
Вложения
bootloader.PNG
(175.63 KiB) Скачиваний: 905

Re: Запуск Phillips LPC2368FBD100

Пн окт 23, 2017 11:46:43

uk8amk писал(а):В этом камне оказывается используется пин P2[10]/EINT0


Все верно. В режим программирования я захожу опустив пин P2[10] на GND. Прошиваюсь успешно. Снимаю питание, снимаю перемычку с P2[10].

После запуска МК вроде как должен уйти в обычный BOOT, так гласит и дока, и присланный Вами кусочек странички.

В реальности - контроллер молчит, читаю память (в режиме программирования) - все прошилось успещно.
Или же ему P2[10] после прошивки надо жестко подтянуть к +3.3V?

Re: Запуск Phillips LPC2368FBD100

Пн окт 23, 2017 12:35:22

Вы там по Редькину что ли изучаете?
На двух сразу попавшихся бордах.

Изображение Изображение

Re: Запуск Phillips LPC2368FBD100

Пн окт 23, 2017 12:55:52

dosikus писал(а):Вы там по Редькину что ли изучаете?


Не, спасибо, изучал по нему AT91SAM7, плакал :))) :))) :)))

Но однако, здравствуйте! Вечером буду пытать!

Re: Запуск Phillips LPC2368FBD100

Пн окт 23, 2017 23:54:34

Товарищи, мяу!

Все сделано... Подтяжка P2[10] на 3.3V есть.

Почитав про MEMMAP для 236x в user manual'е, вычитал, что режим запуска с флэша при коде b01 регистра.

Вот пытаюсь ему скормить:
Код:
#include <LPC23xx.h>

int main(void) {
   MEMMAP = 0x1;
   FIO2DIR |= (1<<12);
   CLKSRCSEL = 0x01;
   while(1) {
      FIO2SET |= (1<<12);
      FIO2CLR |= (1<<12);
   }
};

Пробовал MEMMAP 0x2. А ему хоть бы что, ничего нет на пине P2.12... Вообще ничего!

Добавлено after 12 minutes 44 seconds:
Заглянул в 2300.s, где нашел такие строки:
Код:
; *  REMAP: when set the startup code initializes the register MEMMAP
; *  which overwrites the settings of the CPU configuration pins. The
; *  startup and interrupt vectors are remapped from:
; *     0x00000000  [b]default setting (not remapped)[/b]
; *     0x40000000  when RAM_MODE is used
; *     0x80000000  when EXTMEM_MODE is used

Откуда я сделал вывод, что у 23хх так или иначе загрузка идет с адреса 0х00, где и лежит сам код (попытка чтения памяти в Flash Magic это подтверждает).

Re: Запуск Phillips LPC2368FBD100

Вт окт 24, 2017 06:15:33

Приведите код что ниже кАмментов...

Re: Запуск Phillips LPC2368FBD100

Вт окт 24, 2017 11:30:50

Привожу...



И еще кусок

Вот как-то так :oops:

Re: Запуск Phillips LPC2368FBD100

Вт окт 24, 2017 17:13:41

Коллеги, мяу!
Подскажите, что с ним (или со мной) не так? :roll:

"не так" - отсутствует JTAG.

Если у вас при пине BOOT установленном на выполнение кода из флеша, при этом входит в код ISP (так как к МК может подключиться FlashMagic), то получается что управление похоже вообще почему-то не передаётся на код во флешь.
Уверены что правильно скомпилили исходник? Симулятор - не аргумент.
Чем компилили? IAR? При компиляции выставили тип МК?
Как вариант: в LPC ROM-стартап-код проверяет контрольную сумму нескольких первых векторов прерываний (находящуюся в одном из векторов), если она неверна или недопустимое значение каких-то векторов, то управление останется в ISP-коде и не будет передано на код во флешь.

Не, спасибо, изучал по нему AT91SAM7, плакал :))) :))) :)))

Чтобы не плакать, изучать надо по даташиту и с эмулятором под рукой.

Re: Запуск Phillips LPC2368FBD100

Вт окт 24, 2017 18:34:38

Так никто и не плакал :kill:

Даташит читан. Если бы читан не был - не задавал бы и вопросов :)))

По коду - компилировано в Keil 4. Тип МК выставлен, выставлена компиляция под ISP, а не под Ethernet.

Re: Запуск Phillips LPC2368FBD100

Ср окт 25, 2017 15:00:30

Мяу!

Ознакомился с Редькиным по LPC2000... Прочитал про переотображение памяти, про чудесный MEMMAP... Результатов пока нет...

Re: Запуск Phillips LPC2368FBD100

Чт ноя 02, 2017 13:43:09

Коллеги, мяу!
Заимел на руки LPC2368 для ознакомления...
Читал документацию, после мучений с AT91SAM7 она мне показалась более "взрослой" и полезной :)

Зачем ??? Эта серия LPC23xx/24xx фигня уж лет 7 как замененая на LPC16xx/LPC17xxx, да и эти уже барахло устарелое.
Не жалко собственного времени ?

аковырял в Keil&#39;е нехитрый код:
Код:
#include <LPC23xx.h>

int main(void) {
   FIO2DIR |= (1<<12);
   CLKSRCSEL = 0x01;
   while(1) {
      FIO2SET |= (1<<12);
      FIO2CLR |= (1<<12);
   }
};

Прогнал симулятором - все ок, можно шиться, чем я и занялся посредством Flash Magic.

Прошивка заливается, но на экране осциллоскопа тишина!

Порт P2.12 молчит, осциллятор молчит. Пробовал переключаться на внутренний генератор (CLKSRCSEL = 0x00;) - результат тот же.


Осциллятор чтоб не молчал, его включить сначала надо. и не помню точно про LPC24xx, очень давно делал, но LPC17xx помнится мне, надо еще GPIO колнтроллер сначала включить, а потом к его ногам лезить

Добавлено after 44 minutes 25 seconds:
Зачем вам ARM7TDMI с мозголомными десятью стеками и кучей режимов ? Оно уж в бесконечно далеком прошлом.
На кортексах все куда проще, очевидней и шустрее.

Re: Запуск Phillips LPC2368FBD100

Чт ноя 02, 2017 19:13:56

Satyr писал(а):Зачем вам ARM7TDMI


Satyr, ну вот что с извращенца возьмешь? :)))

Все это время я тоже вечерами времени даром не терял и завел его. Работает и внутренний генератор, и внешний кварц, и PLL. :tea:

Сейчас не могу понять вот что... имею код в main:
Код:
while(1) {
      FIO2SET |= (1<<12);
      FIO2CLR |= (1<<12);
   }

При кварце 12 МГц нога "дрыгается" с частотой 1.92(!!!)МГц. Та же историй с PLL, настроенным на 72МГц - частота "дрыганий" - 2,4 МГц. При внутреннем генераторе -640 кГц. :shock:

Проверил предделитель процессора - 1, периферии - 1.

Есть ли у него какой-то вариант посмотреть тактовую частоту осциллографом, не замаплен ли выход PLL на какую ногу для таких целей? :roll:

Re: Запуск Phillips LPC2368FBD100

Чт ноя 02, 2017 19:32:58

Мда, что ни нуб то первое что делает -мерянье частоты ногодрыга.
Заразная гадость однако...

Re: Запуск Phillips LPC2368FBD100

Чт ноя 02, 2017 19:36:29

При кварце 12 МГц нога "дрыгается" с частотой 1.92(!!!)МГц. Та же историй с PLL, настроенным на 72МГц - частота "дрыганий" - 2,4 МГц. При внутреннем генераторе -640 кГц. :shock:

Кварц, плл - вторично. как и частота ядра. важна частота переферийной шины и собственный делитель на конкретной переферии.
А так же латентность шины между яжром и периферией.

Не стоит думать, что ногой можно будет дрыгать с частотой ядра.

тактов за 5-7 ядра между записью от ядра и сменой состояния ноги - нормальный показатель.

кстати, елси ногами дергать, битбанговые алиасы на регистры в этом антикваре есть ? очень помогает в ногодрыге -))

Re: Запуск Phillips LPC2368FBD100

Чт ноя 02, 2017 19:43:31

dosikus писал(а):Мда, что ни нуб то первое что делает

Радует Ваша неполиткорректность. Хорошо у меня кэш большой, на долго хватает.

Satyr писал(а):битбанговые алиасы на регистры в этом антикваре есть

За них пока не вчитывался :dont_know:

Satyr писал(а):Не стоит думать, что ногой можно будет дрыгать с частотой ядра.

тактов за 5-7 ядра между записью от ядра и сменой состояния ноги - нормальный показатель.

Да это понятно :)) Непонятен показатель 2,4МГц при частоте ядра 72МГц...

Re: Запуск Phillips LPC2368FBD100

Чт ноя 02, 2017 20:29:14

Осознайте, ногодрочерство не прерогатива арм.

Re: Запуск Phillips LPC2368FBD100

Чт ноя 02, 2017 21:34:21

Вы название темы видели? Запуск. Мне попросить его вывести по HDMI "Hello World!" на панель 42"?
Ответить