Полная версия этой страницы:
LPC2148 + JETLINK5-14
В моем распоряжении есть платка D2148 (схемку прикрепляю) и есть JETLINK5-14. Попытка выполнить отладку из Keil uVision 3 приводит к появлению сообщения "Cannot stop Arm device!". Питание на плату подал внешнее (5 В на вход стабилизатора). Keil пишет:
VTarget = 3.306V
Info: TotalIRLen = ?, IRPrint = 0x..FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Info: TotalIRLen = ?, IRPrint = 0x..FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
***JLink Error: Could not find supported CPU core on JTAG chain
Как следует понимать эту ситуацию? LPC2148 не исправен? Спасибо.
zltigo
Aug 14 2010, 19:35
JTAG разъем не стандартный - проверьте правильность подключения.
RTCK засажен намертво и соответственно не может использоваться - смотрите настройки.
Если контроллер прошит, то возможно JTAG заблокирован.
Цитата
JTAG разъем не стандартный - проверьте правильность подключения.
На плате точно такой-же. Общие провода вроде бы совпали. Я перепроверю.
Цитата
RTCK засажен намертво и соответственно не может использоваться - смотрите настройки.
Не совсем понял. Какие настройки где и как смотреть? Я чайник.
Цитата
Если контроллер прошит, то возможно JTAG заблокирован.
Платку нашел на работе. На нее было навешено кое-чего так что вполне возможно конироллер программировался. Я весь самопальный обвес отпаял, платку вымыл. Что можно придумать? Потребляемый ток 16,2 мА.
zltigo
Aug 14 2010, 19:48
QUOTE (smk @ Aug 14 2010, 21:40)

Не совсем понял. Какие настройки где и как смотреть?
Настройки JTAG интерфейса. Режим тактирования.
QUOTE
На нее было навешено кое-чего так что вполне возможно конироллер программировался.
Значит стереть для начала через UART.
Цитата
RTCK засажен намертво и соответственно не может использоваться - смотрите настройки.
Это как я понимаю выв 8 разъема по нумерации на схеме? Он никуда не подключен как на схеме так и на плате.
Разъемы на плате и на JETLINK подключаются pin-to-pin?
zltigo
Aug 14 2010, 19:56
QUOTE (smk @ Aug 14 2010, 21:52)

Это как я понимаю выв 8 разъема по нумерации на схеме?
Неправильно.
QUOTE
Разъемы на плате и на JETLINK подключаются pin-to-pin?
Стандартный ARM JTAG 20pin, а не 14.
Цитата
Настройки JTAG интерфейса. Режим тактирования.
Посмотрел и убедился, что я не знаю где эти настройки.
Цитата
Значит стереть для начала через UART.
Там есть разъем USB. Flash Magiс поможет?
zltigo
Aug 14 2010, 20:04
QUOTE (smk @ Aug 14 2010, 21:58)

Там есть разъем USB. Flash Magiс поможет?
Уже писал UART.
Подитожим на сегодня. Поскольку есть разъем 14 pin и столько-же на JETLINK будет разумно предположить, что они соединяются pin-to-pin. Поскольку производитель устанавливал контроллер чистым, а есть вероятность, что он уже программирован, то чтобы сбросить его нужно к выводам Р0.0 (TXD0) и Р0.1 (RXD0) подключить посредством MAX232 компьютер и с помощю Flash Magic сбросить контроллер? Я все правильно понял?
zltigo
Aug 14 2010, 20:13
QUOTE (smk @ Aug 14 2010, 22:10)

будет разумно предположить
Не будет. 14pin на плате и КОПИИ 20pin J-Link названной JETLINK могли сделать какие попало.
QUOTE
нужно к выводам Р0.0 (TXD0) и Р0.1 (RXD0) подключить посредством MAX232 компьютер и..
Да.
Flash Magic сказал "Erase complete". JETLINK по прежнему не видит контролер, хотя лампочка "Target" на корпусе зажигается. "Cannot stop Arm device!" как и раньше.
zltigo
Aug 15 2010, 08:36
QUOTE (smk @ Aug 15 2010, 09:52)

Flash Magic сказал "Erase complete".
Значит чип достаточно живой.
QUOTE
JETLINK по прежнему не видит контролер
Если не знаете, где там какие галочки, возьмите для начала родной софт от Segger - Jlink.
Ну и про необходимость разбоки с разъемом клона уже писал.
Благодарю Вас, zltigo, за то, что не оставили меня сам на сам и уделяете мне свое время!
В настоящий момент после скачивания-прочтения инструкции и скачивания-установки ПО от SEGGER, настройки uVision по инструкции имею следующую ситуацию:
Нажмите для просмотра прикрепленного файла Если определился Core Id, то можно ли сделать вывод, что JETLINK и конроллер увидели друг друга?
И вот такая еще проблемка нарисовалась:
Нажмите для просмотра прикрепленного файлаКак с этим поступить?
zltigo
Aug 15 2010, 09:48
QUOTE (smk @ Aug 15 2010, 11:21)

И вот такая еще проблемка нарисовалась
"Проблема" на форуме обсуждалась. Как проблема лицензий, так и проблема правильных прошивок firmware. Настоятельно советую воспользоваться поиском и не шуметь сильно по поводу выреза на ЭТОМ форуме.
QUOTE
Если определился Core Id, то можно ли сделать вывод, что JETLINK и конроллер увидели друг друга?
Да. Только питания Target он не видит. Подключение смотрите. Auto скорость уберите, особенно в Вашем подключении без RTCK. Начните с чего-нибудь типа 100KHz, потом поднимите. Поминаемый ранее простенький JLink лицензии НЕ требует.
Ну ошибки я исправил и ругательства прекратились. Поиск помог. Теперь такой вопрос, если я вижу вот это
Нажмите для просмотра прикрепленного файлаТо означает ли это, что все работает и МК и Jlink полноценно общаются?
Когда я вижу это:
Нажмите для просмотра прикрепленного файлато почему не видно как определился Device и где его selected?
Что можно сделать чтобы убедиться, что все работает? Как проверить? Что прочитать про это?
zltigo
Aug 15 2010, 11:14
Все нормально. Девайс у Вас в JTAG цепочке один. Если победили Segger, то можете поиграться для начала и с его утилитами Jmem и Jflash.
Цитата
Если победили Segger, то можете поиграться для начала и с его утилитами Jmem и Jflash.
Поигнгрался. Что-то открывается, что-то читается. Мне нужно чтобы из uVision можно было заливать прошивку и отлаживаться. С этим пока ничего не выходит. Что можно предпринять?
zltigo
Aug 15 2010, 14:03
QUOTE (smk @ Aug 15 2010, 15:21)

Что можно предпринять?
Не знаю, я отладчиками пользуюсь крайне редко, а в uVision вообще никогда и какие там "галочки" не интересно. Но RDI штука вообще несложная. Читайте документацию на IDE.
Ничего не получается. J-flash ARM вот такое пишерт:
Нажмите для просмотра прикрепленного файлаЧто это значит и что делать?
Только что загрузил проэкт от Keil. Вроде бы какая-то отладка происходит. Собственно вопрос теперь в том, как помигать светодиодом.
zltigo
Aug 15 2010, 15:26
QUOTE (smk @ Aug 15 2010, 16:55)

J-flash ARM вот такое пишерт
Вы хоть буквы RTCK видели в этом сообщении, или сразу картинку на форум? Теперь найдите, что я с самого начала про отсутствие RTCK на Вашем разъеме писал. Отключайте адаптивный клок. И не лезьте на 4MHz.
Чисто ради буквоедства хочу уточнить, 14-pin ARM JTAG существует стандартный, хоть и не рекомендованный. Варианты можно посмотреть например здесь
JTAG TIПо вашей проблеме. В окне лога на скриншоте написано: "Using adaptive clocking instead fixed...". Об этом вам говорят с самого начала - нужно явно включить режим с фиксированной частотой JTAG, поскольку для адаптивной нужен "возврат" клока в адаптер - сигнал RTCK, которого у вас нет.
zltigo
Aug 15 2010, 15:34
QUOTE (PSP @ Aug 15 2010, 17:28)

Чисто ради буквоедства хочу уточнить, 14-pin ARM JTAG существует стандартный
Нет. Разьемов всяких внутрифирменных, хоть TI, хоть Вася Пупкин International, разных море. Стандарт, для
ARM JTAG нынче один. Oт 14pin оказались в конце 90x месте с ARM's Embedded ICE emulator.
Цитата
включить режим с фиксированной частотой
Спасибо. Уже что-то начинает получаться. Настройки сохранятся для всех проэктов или каждый раз настраивать?
Цитата(zltigo @ Aug 15 2010, 18:34)

Нет. Разьемов всяких внутрифирменных, хоть TI, хоть Вася Пупкин International, разных море. Стандарт, для ARM JTAG нынче один. Oт 14pin оказались в конце 90x месте с ARM's Embedded ICE emulator.
Хорошо, уговорили,
"14-pin ARM JTAG
существовал стандартный"
Вот такая простенькая программа:
Код
#include <LPC21xx.H> /* LPC21xx definitions */
void init_mk(void);
/* Задержка около 300 мс */
void wait()
{
int d;
for (d = 0; d < 30000000; d++) { }
}
int main(void)
{
PINSEL0=0x00000000;
PINSEL1=0x00000000;
PINSEL2=0x00000004;
IODIR1=0xFFFFFFFF;
IODIR0=0xFFFFFFFF;
//init_mk();
while(1)
{
IOSET0=0xFFFFFFFF;
IOSET1=0xFFFFFFFF;
wait();
IOCLR0=0xFFFFFFFF;
IOCLR1=0xFFFFFFFF;
wait();
}//while(1)
}//main
Отладка вродебы происходит, но светодиод на Р0.31 упорно отказывается мигать. В симуляторе выводы перебрасываются 0/1 и обратно. Что это значит и как узнать заливается ли программа в чип?
Ну хоть что-нибудь подскажите. Где что может почитать?
Помигать светодиодом получилось. Победа своего рода. Файл (hex) зашивался J-Flash ARM от сеггера. В ходе зашивки программа спрашивала надо ли прописать правильную контрольную сумму (как я понял). Я отвечал, что надо. После прошивки и закрытия программы контроллер начинал мигать светодиодом как положено. В Keil отладка происходит. Точки останова отрабатывает правильно. Прошивка контроллера вероятно не выполняется т.к. после записи во флеш измененной программы контроллер выполняет ту, что была зашита сеггеровской утилитой. Как сделать так чтобы контроллер шился из Keil? Спасибо.
sonycman
Aug 19 2010, 09:58
Цитата(smk @ Aug 19 2010, 11:20)

Как сделать так чтобы контроллер шился из Keil? Спасибо.
Заходите в настройки проекта, на вкладку Utilities, под Use Target Driver for Flash Programming выбираете J-Link.
Жмёте Settings, Flash Download, далее Add и выбираете прошивальщик под свой камень.
Можете ещё зайти на вкладку Debug и настроить свой отладчик.
esaulenka
Aug 19 2010, 11:05
У меня почему-то способ, описанный sonycman, работает плохо.
Прошивка - без проблем, а отладчик периодически прыгает совершенно не туда или показывает дизассемблер, который исходному коду вообще не соответствует.
Хорошо хоть, что а) отладчиком почти не пользуюсь и б) Keil -> RDI -> Segger -> MT-link работает без проблем.
Цитата
Keil -> RDI -> Segger -> MT-link работает без проблем.
А у меня похоже не работает
Цитата
Заходите в настройки проекта, на вкладку Utilities, под Use Target Driver for Flash Programming выбираете J-Link.
У меня там выбран RDI Interface driver. Это неправильно?
Цитата
Жмёте Settings, Flash Download, далее Add и выбираете прошивальщик под свой камень.
А так чтобы Keil сам прошивал возможно?
sonycman
Aug 19 2010, 21:03
Цитата(smk @ Aug 19 2010, 22:32)

У меня там выбран RDI Interface driver. Это неправильно?
Можно работать и через RDI, но тут настройку не подскажу, не знаю.
Цитата(smk @ Aug 19 2010, 22:32)

А так чтобы Keil сам прошивал возможно?
Так сам кейл и будет прошивать, там выбирается лишь алгоритм для конкретного чипа, из списка идущих в комплекте с этой IDE.
Хотелось бы уточнить: 1) может ли Keil выполнять прошивку штатными средствами как это пишется в хелпе?
2) До сего дня рабочую прошивку удавалось загрузить с помощю J-Flash ARM в виде файла hex. Как настроить Keil в этом случае?
Так есть ли способ заставить работать кнопку Flash -> Download ? Очень бы хорошо чтобы перед дебагом программа загружалась в контроллер. Спасибо.
sonycman
Aug 24 2010, 20:21
Цитата(smk @ Aug 24 2010, 20:37)

Так есть ли способ заставить работать кнопку Flash -> Download ? Очень бы хорошо чтобы перед дебагом программа загружалась в контроллер. Спасибо.
Для этого есть галочка
Load Application at Startup.
Вы читайте внимательнее то, что уже было написано:
Цитата
Заходите в настройки проекта, на вкладку Utilities, под Use Target Driver for Flash Programming выбираете J-Link.
Жмёте Settings, Flash Download, далее Add и выбираете прошивальщик под свой камень.
Можете ещё зайти на вкладку Debug и настроить свой отладчик.
Ничего особо сложного в настройках кейла нет.
Поиграйтесь с ними, покрутите разные - глядишь, и всё получится
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.