Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Еще раз про BSL
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Diman_
Здравствуйте.

Начинаю работу с MSP430F2272. Проектирую плату и не планировал выводить JTAG - плата очень мелкая. На плате будет FT232. Хотел использовать BSL как обсуждалось в ветке:
http://electronix.ru/forum/index.php?showt...mp;#entry212548

Вопрос в том, что в документе sla089d указано минимальное время между байтами 1.2 ms, а FT232 буферизирует данные и потом посылает пачкой. Не вылезут ли отсюда грабли ?

Вопрос номер два: правильно ли я понял, что со стороны MSP430F2272 P1.1 - выход Tx (FT232 -Rx), P2.2 - вход Rx(FT232 -Tx) ,RST/NMI/SBWTDIO - (FT232 -DTR), TEST/SBWTCK - (FT232 - RTS) ?

Есть ли готовые программы для программирования через BSL (с ходу сам не нашел) или нужно писать самому на основе примера кода от TI ?

Заранее спасибо за ответы.
rezident
Цитата(Diman_ @ Dec 23 2008, 05:56) *
Вопрос в том, что в документе sla089d указано минимальное время между байтами 1.2 ms, а FT232 буферизирует данные и потом посылает пачкой. Не вылезут ли отсюда грабли ?
Я лично использую BSL по схеме из slaa096 с нормальными COM-портами. Пару раз пробовал готовые переходники USB-COM с этим же адаптером, но что-то там не заработало. Бросил я эти эксперименты. Так что ничего определенного сообщить не могу sad.gif
Цитата(Diman_ @ Dec 23 2008, 05:56) *
Вопрос номер два: правильно ли я понял, что со стороны MSP430F2272 P1.1 - выход Tx (FT232 -Rx), P2.2 - вход Rx(FT232 -Tx) ,RST/NMI/SBWTDIO - (FT232 -DTR), TEST/SBWTCK - (FT232 - RTS) ?
См. вышеуказанную апликуху slaa096, там все расписано. P1.1 - выход передатчика BSL, P2.2 - вход передатчика, остальное тоже верно.
Цитата(Diman_ @ Dec 23 2008, 05:56) *
Есть ли готовые программы для программирования через BSL (с ходу сам не нашел) или нужно писать самому на основе примера кода от TI ?
Есть программатор Курта, но именно с этим кристаллом я его не пробовал по причине отсутствия оного.
VAI
Мы используес BSL c программой из slaa096d.
Используем и СОМ-порты на маме, а где их нету, то переходники на FTDI и CP2101. Везде рабртает. Но, если с родного СОМ-порта на скорости 38400 программа в 36 кБайт пишется за время 15 секунд, то с переходниками - (что FTDI, что CP2101) 55 секунд, как на 9600, но это какие-то УСБэшные проблемы.
А так, всё пишет и всё работает.
rx3apf
Цитата(Diman_ @ Dec 23 2008, 03:56) *
Вопрос в том, что в документе sla089d указано минимальное время между байтами 1.2 ms,

" Minimum time delay before sending new characters after characters have been received from the MSP430 BSL: 1.2 mS"
Это вовсе не "между байтами", а минимальная задержка между тем, что приняли от камня и тем, что затем в него посылается (очевидно, особенности программно-реализованного полудуплексного UART). Так что проблемы нет.
Цитата
для программирования через BSL (с ходу сам не нашел) или нужно писать самому на основе примера кода от TI ?

Вот сейчас шьем 2111 софтиной bsldemo2 из комплекта slaa096d, через FT232R - без проблем.
АДИКМ
Цитата(Diman_ @ Dec 23 2008, 04:56) *
Начинаю работу с MSP430F2272. Проектирую плату и не планировал выводить JTAG - плата очень мелкая. На плате будет FT232. Хотел использовать BSL


в 2272 есть SBW интерфейс. выведите 2 провода вместо полноценного jtaga.

От модератора.
Из сообщения удалено излишнее цитирование.
sept
Цитата(VAI @ Dec 23 2008, 09:08) *
Мы используес BSL c программой из slaa096d.
Используем и СОМ-порты на маме, а где их нету, то переходники на FTDI и CP2101. Везде рабртает. Но, если с родного СОМ-порта на скорости 38400 программа в 36 кБайт пишется за время 15 секунд, то с переходниками - (что FTDI, что CP2101) 55 секунд, как на 9600, но это какие-то УСБэшные проблемы.
А так, всё пишет и всё работает.

Приведите, если можно, пример ком. строки для чтения в файл содержимого INFO для MSP430F427, используя slaa096d. Стирание, запись,верификация работает. Почему то при отправке пароля прог. 086d выдает последовательность 80 10 06 06 E0 FF 02 00 A8 C9 33 DF, что не соответствует формату отправки пароля. BSL не отвечает на этот код. Использую строку
bsldemo2.exe -cCOM1 -pint.txt
bsldemo2.exe -r0x10ff ff sich_reade.txt
VAI
Цитата
Приведите, если можно, пример ком. строки для чтения в файл

Извините, не приведу. Никогда не ставилась задача читать BSL-лом из флэшь. Он используется на этапе серийного производства для программирования.
rx3apf
Цитата(sept @ Jan 9 2009, 09:53) *
Приведите, если можно, пример ком. строки для чтения в файл содержимого INFO для MSP430F427, используя slaa096d. Стирание, запись,верификация работает. Почему то при отправке пароля прог. 086d выдает последовательность 80 10 06 06 E0 FF 02 00 A8 C9 33 DF, что не соответствует формату отправки пароля. BSL не отвечает на этот код. Использую строку
bsldemo2.exe -cCOM1 -pint.txt
bsldemo2.exe -r0x10ff ff sich_reade.txt

Я не понял, что, ввод пароля и чтение файла сделаны разными вызовами bsldemo2 ? Тогда ничего удивительного, каждый вызов программы приводит к входу в режим BSL. И никакого чтения не будет... Все надо делать за один раз. Так вот сразу строку не припомню, давно игрался, но 2111 у меня читалась вся, включая собственно область кода BSL.
sept
Цитата(rx3apf @ Jan 9 2009, 15:58) *
Я не понял, что, ввод пароля и чтение файла сделаны разными вызовами bsldemo2 ? Тогда ничего удивительного, каждый вызов программы приводит к входу в режим BSL. И никакого чтения не будет... Все надо делать за один раз. Так вот сразу строку не припомню, давно игрался, но 2111 у меня читалась вся, включая собственно область кода BSL.

Все за один раз.
bsldemo2.exe -cCOM1 -pint.txt -r0x10ff ff sich_reade.txt
тоже не работает.
Diman_
Всем спасибо. Плата собрана. Программатор Курта не определяет MSP430F2272, но при выборе MSP430F2274 он позволяет делать сброс, проверку на чистоту, сравнение, стирание, чтение. При попытке записать бинарник MSP430F2272 отвечает NAK на второй блок данных. Смотрел обмен портмоном.

10:14:59 Device: MSP430F2274. Info(0x1000-0x10FF), Main:(0x8000-0xFFFF)
10:14:59 Programming the device memory...
10:14:59 Warning: Device memory started at 0x1000...
10:15:00 Program failed. NAK received

Может кто сталкивался с такими граблями. Заранее спасибо.
rezident
Цитата(Diman_ @ Jan 10 2009, 09:19) *
При попытке записать бинарник MSP430F2272 отвечает NAK на второй блок данных.
Используйте для прошивки HEX-формат или формат TI-TXT. Формат BIN позволяет только непрерывную область памяти хранить/писать. У вас NAK получается при попытке записи бинарного файла в несуществующую область Flash, которая по адресам сразу после INFO расположена.
MrYuran
Цитата(rezident @ Dec 23 2008, 04:33) *
Я лично использую BSL по схеме из slaa096 с нормальными COM-портами. Пару раз пробовал готовые переходники USB-COM с этим же адаптером, но что-то там не заработало. Бросил я эти эксперименты. Так что ничего определенного сообщить не могу sad.gif

Я пробовал загрузку по БСЛ через MOXA Nport (Eth->COM).
Почему-то всё замедляется, но прошивает нормально. Так что думаю и через УСБ нормально всё будет.
Использовал и bsldemo и msp430-bsl из состава mspgcc
Diman_
Спасибо всем ответившим, данной схемой подключения можно пользоваться - все работает.
M_Z
Цитата(Diman_ @ Jan 10 2009, 08:19) *
Всем спасибо. Плата собрана. Программатор Курта не определяет MSP430F2272, но при выборе MSP430F2274 он позволяет делать сброс, проверку на чистоту, сравнение, стирание, чтение. При попытке записать бинарник MSP430F2272 отвечает NAK на второй блок данных. Смотрел обмен портмоном.

10:14:59 Device: MSP430F2274. Info(0x1000-0x10FF), Main:(0x8000-0xFFFF)
10:14:59 Programming the device memory...
10:14:59 Warning: Device memory started at 0x1000...
10:15:00 Program failed. NAK received

Может кто сталкивался с такими граблями. Заранее спасибо.

Я вчера споял переходник USB <> RS232 на СР2102. Плюс 2 вентиля логики. Получил USB <> BSL. Программа от Курта.
В общем то заработало сразу же.
Ну а проблемы такие же как и Вас. процессор MSP430F1611 определяет как MSP430F149. Как то странновато это. Но это я так понимаю глюки программы Курта. По поводу глюков, то я наслышан немало. Поэтому я избегал пользования этой программой. Но для BSL я ничего другого не знаю и поэтому пришлось воспользоваться этой программой.
Что касается сообщения {10:15:00 Program failed. NAK received } Это нужно вначале почистить кристалл а потом проградуировать, или использовать панорамирование автоматом.
Может кто знает другие программы для работы по BSL, подскажите. Буду благодарен.
MrYuran
Цитата(M_Z @ Jan 31 2009, 16:42) *
Может кто знает другие программы для работы по BSL, подскажите. Буду благодарен.

В mspgcc есть утилита msp430-bsl.exe
Сейчас только ей и пользуюсь. Раньше пользовался bsl-demo от TI

Все параметры задаются в командной строке, включая инверсию управляющих сигналов.

Исходник написан на питоне, после некоторых дополнительных телодвижений его можно просмотреть и отредактировать.
jorikdima
скажите пожалуйста, те кто использовал FT232RL и аналогичные микросхемы, какую схему подключения вы использовали. Я имею ввиду следующее. В доках на МСП БСЛ есть схема программатора этого самого БСЛ. И там на все линиии ставится SN74AHC14 который выполняет роль преобразователя уровнеи и... инвертора. То есть там инвертируются ВСЕ сигналы (ресет дважды), в том чисде RXTX. Поэтому при передачи синхробайта, да и всех других данных происходит полная инверсия всей посылки UART. Как вы обходили это, использую USB->UART мосты?
rezident
jorikdima, вы не забывайте, что уровни RS232 инвертированы по напряжению по отношению к уровням TTL в UART. В RS232 уровень MARK соответствует отрицательному напряжению (ниже -5В), а уровень SPACE - положительному напряжению (выше +5В). В TTL UART уровень MARK это лог.1, уровень SPACE это лог.0. Поэтому 74HC14 выполняет точно такую же функцию инвертирования как и обычная м/с драйвера RS232 типа MAX232 или MAX3232. Посмотрите на структурную схему последних, у них также инверсия обозначена. Ну а вспомогательные сигналы TEST/TCK и RST, которые управляются не аппаратно, а "ногодрыжеством" можно инвертировать программно. В программе Kurt-a (MSPFET Programmer) именно так и сделано.
jorikdima
Очередное cпасибо, rezident.
С RS232 как таковым не работал как следует, поэтому не знал. Тогда буду разбираться почему у меня здоровый контрллер не входит в БСЛ при наличии валидной комбинации TCK и RST (2-x канальным осциллографом смотрю). Не отзывается на 0x80 вообще никак.
Stas633
Цитата(jorikdima @ Dec 20 2009, 11:20) *
.... Тогда буду разбираться почему у меня здоровый контрллер не входит в БСЛ при наличии валидной комбинации TCK и RST ...

Плз., сообщите результат "разбора" и если возможно, схемотехнику.
(около полугода назад попробовал FT232BM, "...чего-то там.." не срослось. Разбираться было некогда. Остался RS232....)
jorikdima
Цитата(Stas633 @ Dec 21 2009, 02:17) *
Плз., сообщите результат "разбора" и если возможно, схемотехнику.
(около полугода назад попробовал FT232BM, "...чего-то там.." не срослось. Разбираться было некогда. Остался RS232....)

Ну если разберусь, сообщу. Проблема еще в том, что обычного БСЛ программатора через RS232 у меня нет и не будет, хотя бы по причине отсутствия RS232 в ноуте. Но последовательность TCK/RST генерится правильная с помощью FTDI.
Kurt
Через интерфейс BSL нет возможности автоматически определить модель МК, только его семейство.
Для чтения прошивки в файл через командную строку можно использовать: mspfet +r \"psw.txt\" -o \"dump.hex\" -BSL=COM1\n
krolaka
Привет! у меня такая проблема мк тоже msp430f2272 и прогер на переходнике юзб-ком подключил как в певом посте пробовал прогу курта молчит и все грит нет синхронизации.. поцепл светодиод на вывод на вход есть передача инфы а из мк молчек crying.gif куда смореть?
AlexMad
Добавлю вопрос. вот тут написано следующее:

Цитата
Режим BSL не будет активизирован (с адреса вектора сброса BSL RESET) в том случае, если:


............

Вход -RST/NMI сконфигурирован как NMI (установлен бит NMI)


Сам я с МСП не общался ни разу. Сейчас, просто на руках есть устройство, которое во время перепрошивки с прилагаемого софта ушло в аут. Разработчики устройства предупреждали о такой возможности и теперь предлагают привезти изделие к ним. Все бы ничего, но живут они в солнечной Италии, далековато ехать.

На плате устройства установлен собственно MSP430F149 и FT232. Правда, соединены не напрямую, а через хитрозакрученную схему коммутации. Я подключил сигналы согласно схеме из slau256.pdf, но он молчит, зараза.


И вот вопрос: если в камушке установлен бит NMI, это лечится только житагом? или bsl с опцией -e (full-erase) должен его стирать?

И в догонку вопрос: правильно я понимаю, что ни mt-link, ни arm-usb-ocd с ним не справятся?
akl
Здравствуйте.
...slau256.pdf...
наверно, имелся в виду slau265?
И вот вопрос: если в камушке установлен бит NMI, это лечится только житагом? или bsl с опцией -e (full-erase) должен его стирать?
Пытался достучаться до F133 с активированным NMI BSL-программатором. Нифига. Только через JTAG.
rezident
Цитата(AlexMad @ Apr 29 2010, 04:15) *
И вот вопрос: если в камушке установлен бит NMI, это лечится только житагом? или bsl с опцией -e (full-erase) должен его стирать?
Учитывая, что в MSP430F149 нет ни BOR, ни SVS, использовать вход RST как NMI довольно странно. Я бы предположил, что это маловероятно.
Цитата(AlexMad @ Apr 29 2010, 04:15) *
Я подключил сигналы согласно схеме из slau256.pdf, но он молчит, зараза.
JTAG используете или BSL? Если fuse пережжен, то JTAG работать не будет.
Цитата(AlexMad @ Apr 29 2010, 04:15) *
И в догонку вопрос: правильно я понимаю, что ни mt-link, ни arm-usb-ocd с ним не справятся?
JTAG это всего лишь стандартный интерфейс, но не одним интерфейсом определяется функционирование, а еще и протоколом, который у разных устройств различается.
AlexMad
Цитата(rezident @ Apr 29 2010, 20:55) *
Учитывая, что в MSP430F149 нет ни BOR, ни SVS, использовать вход RST как NMI довольно странно. Я бы предположил, что это маловероятно.
JTAG используете или BSL? Если fuse пережжен, то JTAG работать не будет.
JTAG это всего лишь стандартный интерфейс, но не одним интерфейсом определяется функционирование, а еще и протоколом, который у разных устройств различается.


1. насчет странности использования RST - ничего не скажу, устройство не моё.


2. Пробовал использовать BSL - msp молчал, как рыба. Только после того, как собрал JTAG, нашел комп с LPT и живой виндой (как назло детский комп сейчас накрылся медным тазом, а у меня на мамке ЛПТ еще поискать надо), удалось прошить в устройство родную прошивку. Потом уже, для проверки, через меню устройства вошел в меню обновления через BSL и прошил новую прошивку.

3. Ну и вопрос в догонку: а если бы в устройстве был бы пережжен fuse и RST был бы включен, как NMI, это был бы трупик? В смысле, никакими средствами это уже нельзя было бы оживить, только заменой камня?
rezident
Цитата(AlexMad @ May 1 2010, 02:58) *
если бы в устройстве был бы пережжен fuse и RST был бы включен, как NMI, это был бы трупик? В смысле, никакими средствами это уже нельзя было бы оживить, только заменой камня?
Стандартными средствами - нет, никак. Специальными - можно попробовать. Для этого нужно собрать устройство, которое управляло бы не только сигналами RST и TEST/TCK, но и питанием MSP430. После подачи питания и срабатывания внутреннего POR на выполнение команды, меняющей функцию пина RST/NMI, требуется некоторое время (старт DCO, выполнение некоторого количества команд типа инициализации указателя стека). В течение этого времени можно успеть перевести кристалл в режим Bootstrip Loader, а после этого стереть и записать прошивку с помощью его штатных команд.
Точнее даже не так. Все еще проще! Нужно на время подачи и установления питания "зажать" RESET, чтобы не стартанула пользовательская программа. Ведь непосредственно после POR функция RST/NMI определена однозначно как RST. См. выдержку из User's Guide.
-=Space=-
Я так понял все используют ft232 с питанием от устройства.
А как быть если FT232 питается от шины?
USB по умолчанию не подключено и питания на FT232 не приходит, соотв DTR и RTS в 0.
Сразу как USB подключается DTR и RTS становятся в 1.

Здесь инвертируй не инвертируй, а устройство в одном из состояний будет в ресете. Как тогда быть?

второе
Вот что происходит при энумерации FT232 (см рисунок)
Сверху RTS, средний Sleep, нижний DTR
Я хотел во время sleep = 0, отключать инверторы, но теперь и это не получится: устройство не санкционировано сбросится много раз.


rezident
Цитата(-=Space=- @ Oct 11 2011, 15:00) *
Я так понял все используют ft232 с питанием от устройства.
За всех не скажу, но лично я использую BSL из slaa096b sm.gif
Для вашего случая могу порекомендовать поставить внешний буфер, запитав его от MSP430, с выходами, принимающими Z-состояние. Управление буфером от сигнала FTDI. Пока нет питания на FTDI или пока она не прошла энумерацию, то выходы буфера отключены и не мешают работе MSP430. Как-то так laughing.gif
-=Space=-
Цитата(rezident @ Oct 11 2011, 19:21) *
Управление буфером от сигнала FTDI. Пока нет питания на FTDI или пока она не прошла энумерацию, то выходы буфера отключены и не мешают работе MSP430.

От какого сигнала?
Если использовать Sleep, то он становится активный до энумерации. Эти дерганья на DTR(reset) сбросят программу, а это не желательно.
Еще есть сигналы
RstOut - формируется еще раньше,
PWRen - активный 0, как и в выключенной FT232,
TXDEN - не знаю, мб и можно что то придумать с ним.

Пока останавливаюсь на варианте с джамперами. DTR и RTS в работе будут отключены.
Правда появляется недостаток: для прошивки (нового/убитого) девайса надо его будет разбирать. Возможно это не так плохо, т.к. основной режим программирования будет "по воздуху" через gprs и собственным бутлодер
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.