реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> И снова BSL, использование одного разъема для USART и BSL
jorikdima
сообщение Feb 17 2007, 23:42
Сообщение #1


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Добрый день.

Возник вопрос по BSL в MSP430F1612. Точнее по схемотехнике подключения.
Есть контроллер, разъем JTAG и FT232RL. Хочется иметь возможность прошивать как по JTAG так и по BSL, причем так, чтоб не использовать отдельный разъем для BSL (да и место не очень позволяет). Поэтому хочется для BSL использовать тот же разъем, что и для обычного USART, то есть USB разъем+FT232RL. Выглядеть это будет примерно так: контакты JTAG подсоединяются к MSP как обычно; сигналы RXD и TXD от FT232RL идут на UART и на ноги 13 и 22; программно ноги 13 и 22 никак не используются; сигналы DTR RTS от FT232RL идут на соответствующие выводы JTAG MSP.
Волнует следующий момент. Я не совсем понимаю что происходит с сигналами DTR и RTS при использовании обычного UART, то есть при нормальной работе контроллера (не программировании). Не получится ли так, что при передаче данных через UART эти сигналы как то будут меняться и введут MSP в режим BSL, или вообще reset произойдет, ведь DTR на reset идет?? Достаточно ли поставить джампера на линии DTR<->RSR/NMI и RTS<->TCK и перемыкать их во время программирования. А можно только один какой то джампер или 2 обязательно? Какие еще варианты решения проблеммы?

Спасибо.

ЗЫ Я вот тут еще в один момент не врубаюсь: отлаживаться то через BSL можно? А в ИАРЕ?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 18 2007, 00:12
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(jorikdima @ Feb 17 2007, 23:42) *
Добрый день.

Возник вопрос по BSL в MSP430F1612. Точнее по схемотехнике подключения.
Есть контроллер, разъем JTAG и FT232RL. Хочется иметь возможность прошивать как по JTAG так и по BSL, причем так, чтоб не использовать отдельный разъем для BSL (да и место не очень позволяет). Поэтому хочется для BSL использовать тот же разъем, что и для обычного USART, то есть USB разъем+FT232RL. Выглядеть это будет примерно так: контакты JTAG подсоединяются к MSP как обычно; сигналы RXD и TXD от FT232RL идут на UART и на ноги 13 и 22; программно ноги 13 и 22 никак не используются; сигналы DTR RTS от FT232RL идут на соответствующие выводы JTAG MSP.
Волнует следующий момент. Я не совсем понимаю что происходит с сигналами DTR и RTS при использовании обычного UART, то есть при нормальной работе контроллера (не программировании). Не получится ли так, что при передаче данных через UART эти сигналы как то будут меняться и введут MSP в режим BSL, или вообще reset произойдет, ведь DTR на reset идет?? Достаточно ли поставить джампера на линии DTR<->RSR/NMI и RTS<->TCK и перемыкать их во время программирования. А можно только один какой то джампер или 2 обязательно? Какие еще варианты решения проблеммы?
Спасибо.
ЗЫ Я вот тут еще в один момент не врубаюсь: отлаживаться то через BSL можно? А в ИАРЕ?


Так "обычный UART" или USB-UART ? Это все ж разные вещи. Если "обычный", то DTR типично активен, и его логично заводить на "сброс". При закрытии порта он будет деактивироваться, и устройство будет жестко сброшено. RTS - как закажешь. Не будет аппаратного хендшейка - будет активным. Иначе будет дергать, но это не страшно, поскольку сброс не дергается. В случае же FT232R - вообще как установишь конфигурацию через mprog, так и будет. Можно даже не назначать линии как DTR и RTS. А отлаживаться - как ? BSL это всего лишь программа. Ну да, сбросив, можно поглядеть, где там что в памяти осталось. Больше, IMHO, ничего...
Go to the top of the page
 
+Quote Post
rezident
сообщение Feb 18 2007, 00:41
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



BSL это программа, находящаяся в ROM микроконтроллера. Она вызывается вместо перехода по вектору сброса при определенной комбинации сигналов RST и TCK. См. Figure 3, документа slaa089. При вызове этой программы выводы P1.1 и P2.2 используются как сигналы программного UARTа. Отлаживаться через BSL не получится. Использовать BSL в готовом устройстве имеет смысл лишь в том случае, если предполагается делать upgrade firmware в серийном устройстве у которого будет пережжен fuse JTAG, а в программе не предусмотрено своего собственного загрузчика firmware. В других случаях (особенно при наличии в системе UART) использовать BSL по-моему нецелесообразно. Тем более не стоит совмещать выводы, используемые BSL, со штатным UART. Никогда заранее не известно как будет использоваться этот UART пользователем и будет включена или выключена аппаратная поддержка контроля потока. Так что, если вам очень хочется совместить UART и BSL, то обязательно поставьте джампера, которыми сигналы RST и TCK будут отключаться от UART.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Feb 18 2007, 10:44
Сообщение #4


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Спасибо, я получил ответ на вопрос. По поводу использования BSL. У меня не предполагается в конечном варианте наличия JTAG разъема, для него просто места нет. Поэтому будет upgrade firmware через загрузчик. Но мне кажется надо предусмотреть еще гарантированный вариант загрузки, я имею ввиду, что загрузчик тоже слететь может (было такое) и что тогда?? Поэтому BSL будет просто на всякий случай и разъем для него ставить не хочу (тогда уж лучше JTAG оставить). Спасибо, поставлю 2 джампера.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Feb 18 2007, 13:53
Сообщение #5


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Если не ставить JTAG, то как пережигать fuse?
А если есть место под JTAG, можно использовать совмещенный JTAG+BSL. Например такой, как на рисунке.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Feb 18 2007, 14:41
Сообщение #6


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



А мне и не надо fuse пережигать, я не борюсь за секретность ))

Меня больше интересовало совмещение BSL и UART, а не BSL + JTAG.

Спасибо.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 18 2007, 16:15
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(jorikdima @ Feb 18 2007, 10:44) *
Спасибо, я получил ответ на вопрос. По поводу использования BSL. У меня не предполагается в конечном варианте наличия JTAG разъема, для него просто места нет. Поэтому будет upgrade firmware через загрузчик. Но мне кажется надо предусмотреть еще гарантированный вариант загрузки, я имею ввиду, что загрузчик тоже слететь может (было такое) и что тогда?? Поэтому BSL будет просто на всякий случай и разъем для него ставить не хочу (тогда уж лучше JTAG оставить). Спасибо, поставлю 2 джампера.

Кстати, когда есть место, именно _ставить_ разъем вообще не обязательно (если есть противопоказания в виде стоимости и/или технологичности). Мы уже давно практикуем использование ножевых печатных разъемов, с простым лужением. Если их при производстве не зальют лаком - очень удобно...
Go to the top of the page
 
+Quote Post
vmp
сообщение Feb 19 2007, 11:09
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Уже много раз писал, что для достаточно сложного устройства BSL удобнее JTAG.
В своих устройствах на MSP430 (млм SAM7) я развожу и JTAG и BSL (SAM-BA). Реально JTAG используется на первом этапе работы, когда отлаживается библиотека работы с периферией. Когда дело доходит до алгоритма, в дело вступает UART на пинах BSL (DBGU). Использовать printf для отладки СЛОЖНОГО алгоритма более удобно, чем JTAG. Может быть и существуют продвинутые отладчики, которые имеют нужную функциональность для отладки сложных алгоритмов, но мне они не попадались.
Вдобавок мне в устройстве нужно шить не только сам микроконтроллер, но и внешнюю флеш. При использовании BSL это можно делать через него. А как прошить внешнюю флеш через JTAG?
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Feb 19 2007, 11:18
Сообщение #9


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(vmp @ Feb 19 2007, 11:09) *
Когда дело доходит до алгоритма, в дело вступает UART на пинах BSL (DBGU).

То есть вы совмешаете UART и BSL на одном разъеме???
Go to the top of the page
 
+Quote Post
rezident
сообщение Feb 19 2007, 12:06
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(vmp @ Feb 19 2007, 13:09) *
Вдобавок мне в устройстве нужно шить не только сам микроконтроллер, но и внешнюю флеш. При использовании BSL это можно делать через него. А как прошить внешнюю флеш через JTAG?

Точно также как и через любой другой коммуникационный интерфейс. Загружаете в RAM программу-прошивальщик и запускаете ее на выполнение. Там же в ОЗУ выделяете буфер и переменную с семафорами. "Прошивальщик" крутится в непрерывном цикле, опрашивая семафоры готовности буфера. Подгружаете в буфер новые данные и модифицируете семафоры через тот же JTAG.
Примерно так же как я описал организована загрузка Flash через JTAG в Филипсовых ARM серии LPC2000.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Feb 19 2007, 12:22
Сообщение #11


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(jorikdima @ Feb 19 2007, 10:18) *
То есть вы совмешаете UART и BSL на одном разъеме???

Для MSP430 - да; имхо для LPC2xxx используется UART0+JTAG; имхо для ARM от Atmel используется JTAG+USB (есть загрузчик прямо с USB).
К тем, кто использует для ARM7 совмещенный разъем BSL+JTAG, хочу обратиться с просьбой предложить свой вариант пинаута.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Feb 19 2007, 12:52
Сообщение #12


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(HARMHARM @ Feb 19 2007, 12:22) *
Цитата(jorikdima @ Feb 19 2007, 10:18) *

То есть вы совмешаете UART и BSL на одном разъеме???

Для MSP430 - да;

так а вы ставите джампера на линии DTR<->RSR/NMI и RTS<->TCK??? Или как решаете потенциальную проблемму описанную мной в первом посте?
Go to the top of the page
 
+Quote Post
vmp
сообщение Feb 19 2007, 13:07
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(rezident @ Feb 19 2007, 12:06) *
Точно также как и через любой другой коммуникационный интерфейс. Загружаете в RAM программу-прошивальщик и запускаете ее на выполнение. Там же в ОЗУ выделяете буфер и переменную с семафорами. "Прошивальщик" крутится в непрерывном цикле, опрашивая семафоры готовности буфера. Подгружаете в буфер новые данные и модифицируете семафоры через тот же JTAG.

Ну наверное так тоже можно. Как и перректальное удаление гланд. И оклейка комнаты обоями через замочную скважину. Однако если есть более простые и эффективные методы, то лучше использовать их.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Feb 19 2007, 14:31
Сообщение #14


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(jorikdima @ Feb 19 2007, 11:52) *
так а вы ставите джампера на линии DTR<->RSR/NMI и RTS<->TCK??? Или как решаете потенциальную проблемму описанную мной в первом посте?

Извините, тут я напутал. UART+BSL не совмещаю.

Я ставлю разъем JTAG+BSL, я его приводил в одном из постов. Уарт с ним не объединяю, ибо раз есть совмещенный - удобно программировать через него; все равно нужно последовательность RST/TCK давать, и тут много ног общих у JTAG и BSL (В отличие от тех же LPC2xxx). В таком случае и джампера ни к чему.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Feb 19 2007, 15:15
Сообщение #15


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(HARMHARM @ Feb 19 2007, 14:31) *
Цитата(jorikdima @ Feb 19 2007, 11:52) *

так а вы ставите джампера на линии DTR<->RSR/NMI и RTS<->TCK??? Или как решаете потенциальную проблемму описанную мной в первом посте?

Извините, тут я напутал. UART+BSL не совмещаю.

Я ставлю разъем JTAG+BSL, я его приводил в одном из постов. Уарт с ним не объединяю, ибо раз есть совмещенный - удобно программировать через него; все равно нужно последовательность RST/TCK давать, и тут много ног общих у JTAG и BSL (В отличие от тех же LPC2xxx). В таком случае и джампера ни к чему.

Но ведь тогда надо свой кабель делать ComPort<->(JTAG+BSL)??? ТО есть на одном конце разъем для RS232 а на другом под разъем который вы привели выше (ну то есть обычный JTAG разъем). Или я подтормаживаю?
На самом деле мне такой вариант не подходит. Ведь у меня цель была - избавиться от разъема JTAG, а для программирования пользоваться разъемом UART (ну + микросхемой USB<->UART). используя механизм BSL.

ОК Я все понял. Всем большое спасибо.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 20:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016