|
Failed to autobaud (ISP), SK-MLPC2478 + Flash Magic |
|
|
|
Sep 2 2009, 10:13
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Подключаю демо плату (SK-MLPC2478) к последовательному порту, запускаю Flash Magic. Настройки программы: Device - LPC2478 Com1 9600 None(ISP) 12 Мгц Пытаюсь прочитать Device Signature Выдаёт "Operation Failed. Failed to autobaud - step 1. See http...." Захожу по ссылке. Читаю в чём могут быть проблемы. Схема платы. Посмотрел осцилографом сигналы. Что получил: На разъём платы DB-9 поступают 3 сигнала - RD, DTR и RTS. DTR и RTS меняют свои значения на противоположные (из -10В в +10В). И доходят непосредственно до ножек RST и KEY_1_BOOT (по-моему, с 3.3В напряжение падает до 0В). Всё как и должно быть. А вот с RD не могу разобраться. При попытке считать сигнатуру устройства - на разъём X9(DB-9) контакт RD поступают импульсы. Дальше они поступают на вход микросхемы DA3 (ножка 13). По логике этот же сигнал, но немного видоизменённый (микросхема вроде бы преобразовывает уровни) должен появиться на контакте 12 микросхемы и дальше пойти на соответствующую ножку МК. Но его там нет. Зато присутствует сигнал (пачка импульсов) на 11 ножке (сигнал на которую идёт с МК как ответ). Эта же пачка должна была бы выйти 14-ой ножке. Но её там тоже нет. Подскажите, в чём может быть проблема.
|
|
|
|
|
Sep 2 2009, 10:40
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Цитата На разъём платы DB-9 поступают 3 сигнала - C чего вдруг 3? 5 сигналов. Если плата исправна, то проблема в кабеле. Есть модемный, есть нуль-модемный. При этом разъемы могут быть самыми разными. Сделать свой собственный кабель - решение всех проблем.
--------------------
On the road again (Canned Heat)
|
|
|
|
|
Sep 2 2009, 11:05
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Цитата Если плата исправна, то проблема в кабеле. Есть модемный, есть нуль-модемный. При этом разъемы могут быть самыми разными. Сделать свой собственный кабель - решение всех проблем. Проблема явно не в кабеле. Нужные сигналы поступают с ПК через кабель на плату, но не доходят до самого МК. Всё упирается в микросхему MAX3232.
|
|
|
|
|
Sep 2 2009, 14:18
|

Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-08-09
Из: Украина, Харьков
Пользователь №: 52 034

|
Перемычки для программирование поставлены? Цитата J6,J7 - используются для программирования внутренней флешки через UART0 Боле подробно про джамперы есть тутПользовался когда-то еще первой версией этой платы (когда еще не продавали 2478 - стоял 2468). Через Flash Magic не программировал - только стирал. Распайка шнурка - обычный "удлинитель". Ставил параметры как у Вас, только проц 2468 и скорость 38400 - работало
Сообщение отредактировал i.cf - Sep 2 2009, 14:27
|
|
|
|
|
Sep 2 2009, 17:35
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Цитата Перемычки для программирование поставлены? Да, поставлены. " DTR и RTS меняют свои значения на противоположные (из -10В в +10В). И доходят непосредственно до ножек RST и KEY_1_BOOT (по-моему, с 3.3В напряжение падает до 0В). Всё как и должно быть." Цитата Не верю в существование неисправных плат. Пробовал 2 разных кабеля, один из которых шёл в комплекте с платой. Цитата In 99.9% of cases the error you are getting is caused by Flash Magic not receiving a response from the microcontroller.
What is autobauding? When the ISP bootloader in the microcontroller is started it waits for a special character (called the autobaud character) to be received on UART0. The character used varies depending on the device. Generally 8051 and XA devices use a 'U' while ARM devices use a '?'. Мне кажеться, как раз этот сигнал ( "?" ) и не доходит до МК (что следует из осцилограм). На 12 ножке микросхемы DA3 присутствует +3.3В вместо того самого "autobaud character" в виде последовательности импульсов.
|
|
|
|
|
Sep 7 2009, 16:23
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Цитата так может проще осцилл поставить на тригер и в ждущем режиме смотреть? а так можно посылку-то и не заметить Да, знаю такую функцию. Нужно с ней разобраться и использовать. Всем спасибо. До новых встреч. )
|
|
|
|
|
Sep 15 2009, 21:13
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Цитата Что такое <CR> и <LF>? Это как если бы Шумахер спросил что такое коробка передач. СR - возврат каретки. Код 0x0D. Как бы клавиша Enter LF - перевод строки. Код вроде 0x0A. Вроде как шифт Энтер.
--------------------
On the road again (Canned Heat)
|
|
|
|
|
Sep 19 2009, 19:32
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Цитата Так читайте его С НАЧАЛА, а не с середины. Почитал. В основном разобрался. Но есть кое-какие уточняющие вопросы: 1)Исходное состояние - память очищенна -> контроллер ждёт "?" Посылаю "?" -> отвечает "Synchronized" Посылаю "Synchronized" -> отвечает "ОК" Посылаю "ОК" -> отвечает "ОК" Дальше согласно документации нужно отправить тактовую частоту то ли платы... вообщем посылаю 12000 он мне в ответ какие-то иероглифы. Пробую сразу команды - выполняются. Получается никакое значение частоты посылать не нужно. Непонятно. Почему так? Цитата ...In response to this host should send the same string ("Synchronized<CR><LF>"). The auto-baud routine looks at the received characters to verify synchronization. If synchronization is verified then "OK<CR><LF>" string is sent to the host. Host should respond by sending the crystal frequency (in kHz) at which the part is running. For example, if the part is running at 10 MHz , the response from the host should be "10000<CR><LF>". "OK<CR><LF>" string is sent to the host after receiving the crystal frequency. If synchronization is not verified then the auto-baud routine waits again for a synchronization character. For auto-baud to work correctly in case of user invoked ISP, the CCLK frequency should be greater than or equal to 10 MHz И ещё - если я ошибся при вводе слова Synchronized или ещё где-то - он мне в ответ какие-то иероглифы посылает и дальше никак не реагирует. Помогает только перезапуск терминала и всё сначала. Что это вообще за иероглифы? И нужно всё сначала или можно что-то ввести и он продолжит? 2)<CR><LF> - символ возврата каретки и сивмол новой строки. В документации написано, что каждая команда должна ими завершаться. Возврат каретки это при нажатии Enter, а навую строку как? У меня работает просто с одним нажатием Enter. 3)А встроеным в ОС Win XP терминалом можно тоже самое проделать? Он правда вроде не может сигналы RTS и DTS генерировать. Но если память будет очищена - контроллер будет сам ждать команд и ему не нужно будет делать ресет и P2.10 в 0 устанавливать. А будет программа - то не получиться (так как не может генерировать сигналы RTS, DTS) Я пробовал - у меня не получилось. Пишу знак вопроса - никак не реагирует. Нажимаю "правка-передать главному компьютеру" - появляется слово "Synchronized". Пишу в ответ "Synchronized" и нажимаю "правка-передать главному компьютеру" - ничего не происходит. Энтер тоже не помагает. На этом и застопорился. 4)В Flash Magic есть такие выражения - Assert RTS, Deassert DTS. Как это переводиться? В словаре смотрел (утверждать; заявлять, объявлять, декларировать, провозглашать, обеспечивать, отстаивать, защищать (свои права и т. п.); доказывать) - есть перевод, но сути выражений не понял. Больше всего подходит обеспечивать, но что имеется ввиду?
|
|
|
|
|
Sep 19 2009, 20:06
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Владимир_КПИ @ Sep 20 2009, 01:32)  2)<CR><LF> - символ возврата каретки и сивмол новой строки. В документации написано, что каждая команда должна ими завершаться. Возврат каретки это при нажатии Enter, а навую строку как? У меня работает просто с одним нажатием Enter. В настройках программы-терминала обычно есть опция дополнять <CR> кодом <LF> или не дополнять. Цитата(Владимир_КПИ @ Sep 20 2009, 01:32)  3)А встроеным в ОС Win XP терминалом можно тоже самое проделать? Можно, но установить перемычку, запускающую BootLoader, и сбросить контроллер, вам придется вручную. Цитата(Владимир_КПИ @ Sep 20 2009, 01:32)  4)В Flash Magic есть такие выражения - Assert RTS, Deassert DTS. Как это переводиться? Разработчики программы в Германии обитают, им простительно  Смысл Assert и Deassert - активировать сигнал и деактивировать сигнал. Причем, следует учесть, что "активировать" совсем не означает однозначно "установить в лог.1". Зависит от схемотехники преобразователя уровней. По умолчанию (после инициализации COM-порта) сигналы RTS и DTR установлены, что соответствует их неактивному состоянию.
|
|
|
|
|
Sep 20 2009, 12:26
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Цитата Именно этому контроллеру не нужно - у него есть собственный генератор, которым и пользуется загрузчик. Это была вырезка из datasheet`а "LPC24xx User manual". Тогда получается для LPC2468 частоту задавать нужно, а для LPC2478 нет. Цитата В настройках программы-терминала обычно есть опция дополнять <CR> кодом <LF> или не дополнять. Вот она:
Когда наводиш на выбор пишет - "Select the characters to be send or received for a new line". Перевожу - "выбирите символы отправляемые или получаемые для новой линии". Насколько я понимаю - какие символы будут посылаться при нажатии Enter - "<CR>" или "<CR><LF>" Странно, но работает при обоих вариантах.Цитата Возвра́т каре́тки (англ. Carriage Return, CR) — управляющий символ ASCII 0x0D, при выводе которого курсор перемещается к левому краю поля, не меняя высоту. Этот управляющий символ вводится клавишей «Enter». Нажимая клавишу Enter в терминале/текстовом редакторе у меня (как и большинства пользоватетей MS Word`а) происходит не просто возврат каретки, а возврат каретки + подача новой строки. Непонятно. Цитата Можно, но установить перемычку, запускающую BootLoader, и сбросить контроллер, вам придется вручную. Кнопка сброса есть. А вот перемычки такой на плате нет. Схема. Цитата Разработчики программы в Германии обитают, им простительно Смысл Assert и Deassert - активировать сигнал и деактивировать сигнал. Причем, следует учесть, что "активировать" совсем не означает однозначно "установить в лог.1". Зависит от схемотехники преобразователя уровней. По умолчанию (после инициализации COM-порта) сигналы RTS и DTR установлены, что соответствует их неактивному состоянию. Насколько я понял - если поставить Assert - на ножке COM-порта будет лог. 0, если - Deassert - лог. 1 Если дальше схемотехника другая - сигналы могут быть инверсными. Зачем тогда использовать понятия активный/неактивный... Провёл эксперимент: записал тестовую программу в МК, запустил терминал, послал "?" - > ответа не последовало. Непонятно почему так. Ведь сигналы RTS и DTR должны быть установлены по умолчанию. Только когда я поставил галочку изменить поведение порта и выставил Deassert DTR, Assert RTS - мне в ответ выдало Synchronized (при других комбинациях Assert/Deassert - также не отвечает.)
|
|
|
|
|
Sep 20 2009, 13:37
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Цитата Учите язык, читайте не слова и обрывки фраз из середины а разделы целиком. Как раз читал раздел с самого начала. Datasheet посвящён LPC24хх. Странно было бы писать в нём не о LPC24xx. Раз написано - значит так и должно быть. Вот datasheet на LPC21xx/22xx. Там тоже самое написано. Было бы логичней для LPC21xx/22xx указать, что нужно указывать частоту, а для LPC23xx/24xx упустить это.
|
|
|
|
|
Sep 20 2009, 18:53
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Владимир_КПИ @ Sep 20 2009, 16:37)  Как раз читал раздел с самого начала. Смотрел в книгу видел ф..... Цитата When ISP mode is entered after a power on reset, the IRC and PLL are used to generate CCLK of 14.748 MHz. This may not be the case when ISP is invoked by the user application. Посему либо указывайте эту частоту, либо не указывайте вообще. Если изменили источник тактирования, или он неизвестен, как у LPC21xxx тогда, естественно надо задавать, если он не 10 (кажется) Mhz, как прописано в загрузчике по умолчанию. Эту цифирь в загрузчике можно поменять.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|