newbart 0 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Сконфигурировал вход -RST/NMI как NMI и лишился возможности шить через BSL. А надо, м/к впаян, JTAGа нет. Есть возможность исправить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Есть возможность исправить?Рассуждения чисто умозрительные, так что не пинайте, если неверные: Конфигурирует ваша программа. Значит, если не дать ей стартануть, загрузчик должен заработать. Не дать стартануть можно в момент подачи питания, подтянув вход сброса к земле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Без коммутации питания никак не исправить ИМХО. Нужно сделать так, чтобы питанием кристалла при загрузке управлял интерфейс BSL. Причем в программе нужно сделать таймаут (задержку) на изменение функции входа с RST на NMI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Без коммутации питания никак не исправить ИМХО. Нужно сделать так, чтобы питанием кристалла при загрузке управлял интерфейс BSL.Да. Или чтобы он хотя бы держал низкий уровень на Reset до входа в загрузчик. И пока он держит - подать питание на контроллер вручную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Да. Или чтобы он хотя бы держал низкий уровень на Reset до входа в загрузчик. И пока он держит - подать питание на контроллер вручную.Не, Сергей, такой вариант не покатит. Посмотри внимательно последовательность сигналов для запуска BSL. Там два импульса TST/TCK должно пройти до того как RST отпустит. А без наличия питания подавать эти импульсы смысла нету. Самое простое это сделать задержку в программе на изменение функции RST/NMI. Или использовать один пин кристалла для идентификации подключения BSL. Если конечно имеются свободные пины. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Не, Сергей, такой вариант не покатит. Посмотри внимательно последовательность сигналов для запуска BSL. Там два импульса TST/TCK должно пройти до того как RST отпустит. А без наличия питания подавать эти импульсы смысла нету.Естественно. Я имею ввиду, чтобы программа после завершения оставляла RST низким и в процессе инициализации случайно не дергала его вверх. Тогда запускаем программу один раз без кристалла вообще. Она ругается и ничего не шьет, но ставит RST в ноль. Подключаем кристалл, RST держится низким, запускаем программу - вот теперь должно получиться.Самое простое это сделать задержку в программе на изменение функции RST/NMI.А задержка как поможет? Успеть стартануть прошивальщик во время этой задержки? А если "после вчерашнего" и реакция никакая? ;) Или использовать один пин кристалла для идентификации подключения BSL. Если конечно имеются свободные пины.Это-то понятно... Но из первого поста я понял, что кристалл один и он уже прошит :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Это-то понятно... Но из первого поста я понял, что кристалл один и он уже прошит :crying:Ну при большой необходимости я распаивал проводочками JTAG прямо к выводам к TQFP-64 (шаг 0,5мм) :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
newbart 0 14 октября, 2008 Опубликовано 14 октября, 2008 · Жалоба Спасибо всем ответившим, но проблема осталась. Из ответов я понял, что вопрос надо уточнить. Итак. Кристалл 1, он впаян. JTAGа не будет точно. Вывод в NMI конфигурирует конечно моя программа и есть обработчик прерывания. Сброс питания приводит к нормальному выполнению программы, а при попытке прошить через BSL происходит потеря синхронизации. Ну вот и вопрос - как можно исправить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 14 октября, 2008 Опубликовано 14 октября, 2008 · Жалоба Ну вот и вопрос - как можно исправить?А все что выше для кого, спрашивается, писали-то? :cranky: ну ладно, еще раз попробую. Берете схему BSL из slaa096 и дорабатываете примерно так, как у меня указано. Подключаете его к кристаллу, причем подаете питание на MSP430 (и только на него) с 6 пина разъема по схеме. Далее запускаете программу Курта и пробуете для начала стереть кристалл. Если получится стереть, то дальше уже проще будет. Не забудьте только рекомендации по изменению вашей программы: введите тайм-аут после старта на перепрограммирование функции RST, чтобы еще раз в такой же просак не попасть. Update. Не, фигню какую-то нарисовал. :( Получается, что после сброса питание пропадет. Удалил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
newbart 0 15 октября, 2008 Опубликовано 15 октября, 2008 · Жалоба А все что выше для кого, спрашивается, писали-то? Так ведь не помогло! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 15 октября, 2008 Опубликовано 15 октября, 2008 · Жалоба Так ведь не помогло! А что именно вы делали/предпринимали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
newbart 0 16 октября, 2008 Опубликовано 16 октября, 2008 · Жалоба А что именно вы делали/предпринимали? Делал вот что: 1 выключил питание устройства, разрядил емкости; 2 отсоединил вывод ресет от программатора; 3 закоротил ресет на землю; 4 подключил программатор; 5 отпустил ресет - заработала программа ранее зашитая в MSP, восстановил соединение вывода ресета к программатору; 6 в исходнике из slaa096 в функции bslReset закомментировал начальные строки дерганья ресета (те что для To charge capacitor on boot loader hardware), откомпилил, запустил с ключом +e; 7 получил ошибку синхро + реакцию на устройстве на NMI; 8 все. Поскольку у меня в программе WDTNMIES=0, а активация BSL происходит по переходу с 0 в 1 на ресет, когда TEST=1 по-моему ничего вылечить не получится :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 16 октября, 2008 Опубликовано 16 октября, 2008 · Жалоба Видимо нужно аппаратно формировать времянку запуска BSL, а потом уже подключенным впараллель программатором стирать кристалл. Либо пересилить лень и припаять-таки четыре провода к пинам JTAG ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться