Перейти к содержанию
    

Вопросы програмирования LPC2294

On 7/24/2023 at 10:20 AM, MPetrovich said:

  ...

Вон там доже кнопочка есть Vector Calc.

Если у вас JTAG не цепляется, то понаставьте светодиодиков, в несколько ключевых точек вашей программы. Например, по сбросу,

до инициализации PLL, после PLL и т.д. и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, dimka76 said:

Вон там доже кнопочка есть Vector Calc.

И что это мне даёт? Когда нажимаешь на эту кнопку на картинке подсвечивается красным сумма

image.thumb.png.77112fbe042f10af0f160dd382b07792.png

И что мне с этой информацией делать? Или это свидетельство того, что утилита считает контрольную сумму?

9 minutes ago, dimka76 said:

Если у вас JTAG не цепляется, то понаставьте светодиодиков, в несколько ключевых точек вашей программы

Не понял :umnik2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/24/2023 at 10:35 AM, MPetrovich said:

И что это мне даёт?

Уверенность в действиях )))

On 7/24/2023 at 10:35 AM, MPetrovich said:

Не понял :umnik2:

Ножкой подергать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, dimka76 said:

Ножкой подергать

Я уж не первый день пытаюсь "ножкой подёргать" и всё никак)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/24/2023 at 10:54 AM, MPetrovich said:

Я уж не первый день пытаюсь "ножкой подёргать" и всё никак)))

в ключевых местах, в качестве отладки, чтобы по ним смотреть ход прохождения программы. Зажегся светодиод - значит прошли эту строчку кода, смотрите следующий светодиод.

И так поэтапно узнаете до куда программа доходит, а на какой строке стопорится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для этого мне надо на каком-то порту инициализировать вывод как uotput и записать в него единицу. Вот мой main.c:

                
#include <LPC22xx.H>                       /* LPC21xx definitions */

void delay (volatile unsigned int i) /* Delay function */
	{
for(i=0; i<1000UL; ++i){};
  }

// Feed sequence for the PLL
void feed()
{
PLLFEED=0xAA;
PLLFEED=0x55;
}
	
int main (void) 
{
// The MAMTIM value would depend upon the system clock desired MAM is fully enabled below
MAMTIM=0x01; //1 - MAM fetch cycles are 1 processor clock (CCLK) in duration
MAMCR=0x02; //MAM functions fully enabled
// The PLLCFG value is provided for input frequency of 12 MHz and the desired system frequency is 60 MHz
PLLCFG=0x24;
feed();
// Enabling the PLL
PLLCON=0x1;
feed();
// Wait for the PLL to lock to set frequency
while(!(PLLSTAT & (1<<10))){;}//PLLSTAT[10]=PLOK - Reflects the PLL Lock status. When zero, the PLL is not locked.
                               //When one, the PLL is locked onto the requested frequency.
// Connect the PLL as the clock source
PLLCON=0x3;
feed();
// Set the peripheral clock. Here we set it to 60 MHz
VPBDIV=0x1;
	
	//SCS = 0; //GPIO port0 and port1 is accessed via APB addresses in a fashion
            //compatible with previous LCP2000 devices. 0 - value after reset
  IODIR1 |= (1<<16); // P1.16-output

  while (1)
   {
      //IOSET1 |= 1<<16;    /* Turn on LED */
		 IOPIN1 |= 1<<16;
      delay(5000);        /* Delay */
      //IOCLR1 |= (1<<16);   /* Turn off LEDs */
     IOPIN1 &= ~(1<<16);		 
      delay(5000);     
    }
  }

куда тут вставлятьсветодиоды?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, MPetrovich сказал:

На входе XTAL1 контроллера сигнал от генератора, а на каком выходе контроллера проверять то? XTAL2 что ли? А смысл?

А МК надеюсь знает, что у него на входе не кварц, а генератор?

11 часов назад, MPetrovich сказал:

Это, как бы, ожидаемо... Но вот не срастается с JTAGом

Выкинуть ULINK, купить J-Link. Тогда и IAR можно будет взять и запустить его пример.

2 часа назад, MPetrovich сказал:

Я уж не первый день пытаюсь "ножкой подёргать" и всё никак)))

И зачем все эти страдания с "процессором в кроватке"? Вы же (надеюсь) не в новом изделии его применить собираетесь? :wink2: А значит - есть какая-то плата с уже установленным и правильно разведённым МК. Почему бы JTAG не подключить к ней? Припаяться если не выведен разъём.

 

PS: Таблица векторов в вашем .hex какая-то подозрительная.... Чаще всего она состояла из множества одинаковых команд LDR PC, [PC, #24]. У вас же там что-то другое. Хотя конечно возможны варианты...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/24/2023 at 1:18 PM, jcxz said:

А МК надеюсь знает, что у него на входе не кварц, а генератор?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, dimka76 сказал:

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

Встроенный ROM-код работает на одной частоте (может вообще PLL не включает), код автора - на другой. ROM-код может быть рассчитан на генератор (или определять что подключено (если есть такая возможность)), а код, который автор где-то надыбал, может быть написан в расчёте на кварц. Кроме того - правильно ли программируются регистры FLASH? С учётом тактовой частоты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, jcxz said:

А МК надеюсь знает, что у него на входе не кварц, а генератор?

А ему это без разницы.

The onboard oscillator in the LPC21xx/LPC22xx can operate in one of two modes: slave
mode and oscillation mode.
In slave mode the input clock signal should be coupled by means of a capacitor of 100 pF
(CC in Figure 14, drawing a), with an amplitude of at least 200 mVrms. The XTAL2 pin in
this configuration can be left not connected. If slave mode is selected, the FOSC signal of
50-50 duty cycle can range from 1 MHz to 25 MHz.

1 hour ago, jcxz said:

Вы же (надеюсь) не в новом изделии его применить собираетесь?

Я его вообще применять на собираюсь. Мне такой геморрой задаром не нужен. Это микросхемы, которые я должен протестить на минимальную работоспособность (в том смысле, что не просто кирпич) и отдать в целости и сохранности. Паять нельзя ни в коем случае. Даже царапать боже упаси)))

 

23 minutes ago, jcxz said:

правильно ли программируются регистры FLASH? С учётом тактовой частоты?

частота задается в окошке филипсовской утилиты. Думаю это определяет как программируются регистры. Хотя, с другой стороны, какая разница МК что за частота у него на входе. Он регистры PLL читает и делит-множит как сказано, а что там на выходе в SYSCLK пойдет - это как получится. Неправильно заданные делители-множители  PLL не дадут возможности  PLL замкнуться. Мне так кажется.

28 minutes ago, jcxz said:

код, который автор где-то надыбал,

AN10404
Initialization code/hints for the LPC2000 family

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, MPetrovich сказал:

частота задается в окошке филипсовской утилиты. Думаю это определяет как программируются регистры.

:shok:   думаете эта утилита залазит в вашу программу и дописывает в неё код программирования PLL?  :biggrin:

6 минут назад, MPetrovich сказал:

Хотя, с другой стороны, какая разница МК что за частота у него на входе. Он регистры PLL читает и делит-множит как сказано, а что там на выходе в SYSCLK пойдет - это как получится. Неправильно заданные делители-множители  PLL не дадут возможности  PLL замкнуться. Мне так кажется.

Когда кажется - крестятся. А в вашем случае - открывают мануал на МК и читают раздел про флешь. Особенно - MAM Timing register.

А "неправильно заданные" дадут возможность МК не захотеть работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, MPetrovich сказал:

Я его вообще применять на собираюсь. Мне такой геморрой задаром не нужен. Это микросхемы, которые я должен протестить на минимальную работоспособность (в том смысле, что не просто кирпич) и отдать в целости и сохранности. Паять нельзя ни в коем случае. Даже царапать боже упаси)))

Интересная у вас задача, скажу я, и странная. А именно, такие камни сейчас берутся только под какие-то старые разработки, а значит под них есть готовое ПО, тестовое ПО и пр. По крайне мере должно быть к.м.к. Поэтому я на вашем месте первоначально узнал бы об этом, потому, что получить тестовую прошивку , залить ее и проверить гораздо проще и полезнее в вашем случае, чем ваять новый "велосипед" в отсутствие знаний и опыта, ИМХО...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, jcxz said:

думаете эта утилита залазит в вашу программу и дописывает в неё код программирования PLL?

Думаю, что указание частоты в окошке утилиты помогает утилите при расчёте baudrait...

 

Господа! Дайте уже кто-нибудь рабочий .hex, чтобы я мог со спокойной совестью проверить, отдать и забыть про эти утырочные МК! Они мне уже весь мозг съели!

1 minute ago, mantech said:

значит под них есть готовое ПО, тестовое ПО

Есть. Мне его никто не даст - оно секретное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, MPetrovich сказал:

оно секретное.

И тестовое и отладочное??  О как еще))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, mantech said:

И тестовое и отладочное??

Заказчик - производство. Они шьют в МК то, что им дали. Никакого тестового ПО нет в доступе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...