|
И снова BSL, использование одного разъема для USART и BSL |
|
|
|
Feb 17 2007, 23:42
|

тут может быть ваша реклама
    
Группа: Свой
Сообщений: 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 можно? А в ИАРЕ?
|
|
|
|
|
Feb 18 2007, 00:12
|
Гуру
     
Группа: Участник
Сообщений: 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, ничего...
|
|
|
|
|
Feb 18 2007, 00:41
|
Гуру
     
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Feb 18 2007, 16:15
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(jorikdima @ Feb 18 2007, 10:44)  Спасибо, я получил ответ на вопрос. По поводу использования BSL. У меня не предполагается в конечном варианте наличия JTAG разъема, для него просто места нет. Поэтому будет upgrade firmware через загрузчик. Но мне кажется надо предусмотреть еще гарантированный вариант загрузки, я имею ввиду, что загрузчик тоже слететь может (было такое) и что тогда?? Поэтому BSL будет просто на всякий случай и разъем для него ставить не хочу (тогда уж лучше JTAG оставить). Спасибо, поставлю 2 джампера. Кстати, когда есть место, именно _ставить_ разъем вообще не обязательно (если есть противопоказания в виде стоимости и/или технологичности). Мы уже давно практикуем использование ножевых печатных разъемов, с простым лужением. Если их при производстве не зальют лаком - очень удобно...
|
|
|
|
|
Feb 19 2007, 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. ОК Я все понял. Всем большое спасибо.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|