Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прошивка LPC через USB-RS232 конверторы
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
singlskv
Собственно вопрос к тем кто пробовал,
работает ? глюки ? хинты ?
zltigo
Цитата(singlskv @ Feb 5 2009, 23:52) *
работает ? глюки ? хинты ?
С самим ISP нималейших проблем быть просто не может. Конкретно "Magic" не пробовал - не интересен он мне.
singlskv
Цитата(zltigo @ Feb 6 2009, 00:23) *
С самим ISP нималейших проблем быть просто не может.
Сам ISP понятное дело работает...
Интересует именно вопрос работы через конвертеры, а у меня их нету sad.gif
Настораживают несколько вещей:
1. Команды смены скорости
2. Flow Control
3. Эхо всех посылок

У меня задачка немного другая на самом деле, мне нужно шить несколько LPC через другой контроллер,
а писать ПЦ софт как-то не хочется...
zltigo
Цитата(singlskv @ Feb 6 2009, 00:38) *
1. Команды смены скорости


А какие проблемы? Обычная команда, как и собственно команда прошивки.

Цитата
2. Flow Control


Где-же Вы там его узрели-то? Нету его.

Цитата
3. Эхо всех посылок



Ну и что??? Хоть конвертор, хоть что, оно по жизни дуплексное, хотя можете и не принимать эхо, если не хотите.
singlskv
Цитата(zltigo @ Feb 6 2009, 00:45) *
А какие проблемы? Обычная команда, как и собственно команда прошивки.
Тока "абстрактный" переходник или мой софт должен ловить эту команду и менять скорость UART ?
Ну или не менять а отвечать что поменял...
Цитата
Где-же Вы там его узрели-то? Нету его.
Это Вы так шутите ?
Из даташита на LPC2103:
4.7 ISP flow control
A software XON/XOFF flow control scheme is used to prevent data loss due to buffer
overrun. When the data arrives rapidly, the ASCII control character DC3 (stop) is sent to
stop the flow of data. Data flow is resumed by sending the ASCII control character DC1
(start). The host should also support the same flow control scheme.

Цитата
Ну и что??? Хоть конвертор, хоть что, оно по жизни дуплексное, хотя можете и не принимать эхо, если не хотите.
USB полнодуплексный ? Это как ?
то есть мне гарантированно что при отправке строки "Privet" эхо первых символов я получу еще до отправки всей строки ?
KRS
Цитата(singlskv @ Feb 5 2009, 23:52) *
Собственно вопрос к тем кто пробовал,
работает ? глюки ? хинты ?

через FTDI работает без проблем плюс еще подключены DTR/RTS на reset и вход в бутлоадер.
правда я тоже обычно мажиком не пользуюсь.
FTDI как раз используется что бы не ставить на плате преобразователь уровней, а прямо от FTDI TTL идет на LPC.
Плюс еще большой выбор баудрейтов (не стандартных) т.е. можно шить на гораздо большей скорости, но тут гглавную задержку вносит протокол загрузчика - он полудуплексный и надо ждать ответ по USB. А если загрузиь в RAM простой код, который сразу по странице данные принимает (я делал по 8 кб), то тут скорость увеличивается кардинально.
singlskv
Цитата(KRS @ Feb 6 2009, 01:21) *
через FTDI работает без проблем плюс еще подключены DTR/RTS на reset и вход в бутлоадер.
правда я тоже обычно мажиком не пользуюсь
Спасибо за инфу,
значит подозрения насчет "эха" вычеркиваем,
я с FTDI не имел дела,
что там со сменой скорости и flow control ?
zltigo
Цитата(singlskv @ Feb 6 2009, 01:00) *
Тока "абстрактный" переходник или мой софт должен ловить эту команду и менять скорость UART ?



Это Ваша команда. Не подавайте, если не хотите.

Цитата
Это Вы так шутите ?


Какое отношение софтовый flowсontrol имеет к гипотетическим проблемам конвертора. А железного нет как класс. А с софтовым или сами разбирайтесь, либо операционке скажите, дабы разбиралась. Железу оно без разницы - байт и байт.

Цитата
то есть мне гарантированно что при отправке строки "Privet" эхо первых символов я получу еще до отправки всей строки ?


Ну и нафига Вам такие гарантии? Отправили всю строку и ждете пока эхо закончится, или просто подтверждение придет. Кроме того, чего-то Вас таже буферизация операционной системы не волнует почему-то smile.gif.
KRS
Цитата(singlskv @ Feb 6 2009, 01:29) *
Спасибо за инфу,
значит подозрения насчет "эха" вычеркиваем,
я с FTDI не имел дела,
что там со сменой скорости и flow control ?

насколько я знаю бутлоадер (я даже дизассемблировал некоторые версии и здесь писал о дыре, которую уже заделали) не использует бутлоадер flow control. Вообще бутлоадер в смысле обмена по UART довольно простой ( IMHO для бутлоадера так и должно быть). Ему и скорость UART по барабану!!! главное чтобы засинхронизировался!
А команда смены баудрейта в нем реализовано криво! там стоит проверка на стандартные значения!
Луче сразу коннектится на нужной скорости! Ее определить легко (зависит от возможностей чипа, есть ли там встроенный резонатор...)
FTDI позволяет установить любой баудрейт (который может получится из возможностей ее прескалера) об этом лучше читать в их даташите!
Могу сказать что я шил LPC2129 на скорости 250000, 125000
singlskv
Цитата(zltigo @ Feb 6 2009, 01:30) *
Это Ваша команда. Не подавайте, если не хотите.
Это моя команда только если я сам пишу "прошивальщик",
а если она уже есть в софте(например в Flash Magic) ?
Писать парсер в контроллере - плохо
Писать свой софт для прошивки на ПЦ - пока считаем что то же плохо...
Цитата
Какое отношение софтовый flowсontrol имеет к гипотетическим проблемам конвертора. А железного нет как класс. А с софтовым или сами разбирайтесь, либо операционке скажите, дабы разбиралась. Железу оно без разницы - байт и байт.
Ну не все так просто, в реальности меня интересует прошивка не только через USB-UART но и через RS485-UART,
я же уже вроде как объяснил что "конвертор" будет моим, поэтому и пытаюсь выяснить все возможные подводные камни.
Цитата
Кроме того, чего-то Вас таже буферизация операционной системы не волнует почему-то smile.gif.
Волнует, поэтому и вопросы...
KRS
Цитата(singlskv @ Feb 6 2009, 01:54) *
Ну не все так просто, в реальности меня интересует прошивка не только через USB-UART но и через RS485-UART,
я же уже вроде как объяснил что "конвертор" будет моим, поэтому и пытаюсь выяснить все возможные подводные камни.
Волнует, поэтому и вопросы...

Вообще софтовый и железный flow control под виндами обеспечивает драйвер а не программа! COM порт (в том числе и виртуальный) можно открыть указав софтовый flow control (XON/XOFF) и это уже проблема драйвера и железа! USB переходник если поддерживает XON XOFF должен это делать уже в железе, а не через USB.

НО еще раз про LPC бутлоадер. ну не помню я (я кстати и у LPC 2103 дизаасмблировал бутлоадер) что бы там было flow control. но даже если он и есть это формальность! он никогда не будет задействован потому что LPC без проблем успевает складывать принятые байты в RAM!!!
singlskv
Цитата(KRS @ Feb 6 2009, 01:38) *
насколько я знаю бутлоадер (я даже дизассемблировал некоторые версии и здесь писал о дыре, которую уже заделали) не использует бутлоадер flow control.
То есть реализация софтовой flow control вероятно не потребуется ?
Учитывая что "конвертер" USB-UART пишу я сам.
Цитата
Вообще бутлоадер в смысле обмена по UART довольно простой ( IMHO для бутлоадера так и должно быть). Ему и скорость UART по барабану!!! главное чтобы засинхронизировался!
А команда смены баудрейта в нем реализовано криво! там стоит проверка на стандартные значения!
Луче сразу коннектится на нужной скорости! Ее определить легко (зависит от возможностей чипа, есть ли там встроенный резонатор...)
Я только двумя руками за,
за то чтоб скорость ни разу не менялась, только как определить нужную ?
115200 было бы разумно...
и никаких команд о смене скорости...



Цитата(KRS @ Feb 6 2009, 02:07) *
USB переходник если поддерживает XON XOFF должен это делать уже в железе, а не через USB.
Подождите, что значит в "железе" ?
XON/XOFF для USB не преусмотрен, все это на уровне фирмвари, которую и нужно мне написать... smile.gif
zltigo
Цитата(singlskv @ Feb 6 2009, 01:54) *
а если она уже есть в софте(например в Flash Magic) ?


Да нет ее там. Просто не нужна совсем.

Цитата
Писать свой софт для прошивки на ПЦ - пока считаем что то же плохо...


Плохо пользоватся  фигней общего назначения с картинками.

Цитата
Ну не все так просто, в реальности меня интересует прошивка не только через USB-UART но и через RS485-UART,


Тем более надо наплевать на "Magic" - Вы уже потратили время на бесплодные размышления, которого достаточно было для написания в первом приближении желаемого.



Цитата(singlskv @ Feb 6 2009, 02:15) *
за то чтоб скорость ни разу не менялась, только как определить нужную ?

Задать в пределах оговоренных в документации.
singlskv
Цитата(zltigo @ Feb 6 2009, 02:18) *
Тем более надо наплевать на "Magic" - Вы уже потратили время на бесплодные размышления, которого достаточно было для написания в первом приближении желаемого.
Не будем тратить время на обсуждение остальных вопросов,
раскажите как просто прошить LPC через 485 интерфейс.

Конкретнее связки такие:
PC-USB-SAM7A3-LPC
PC-RS232-RS485-SAM7A3-LPC

и нужно шить LPC в любом варианте...
zltigo
Цитата(singlskv @ Feb 6 2009, 02:23) *
раскажите как просто прошить LPC через 485 интерфейс.



Просто и шить. Проблемы-то какие? В том, что эхо будете тупо свое получать или вообще не получать?

Цитата
Конкретнее связки такие:


PC-USB-SAM7A3-LPC
PC-RS232-RS485-SAM7A3-LPC
и нужно шить LPC в любом варианте...
В первом варианте вообще никаких проблем - хоть как-то обеспечте прозрачную трансляцию байтов и все. У меня так бутовый загрузчик шьется своим AT200 через центральный контроллер блока, ну только разве центральный тоже  LPC smile.gif

Второй вариант уже зависит от Вашей реализации шелезяк и софта в SAM (к чему, кстати, жтот зверинец из ARM7), но при построчной буферизации будет жить.

 
singlskv
Цитата(zltigo @ Feb 6 2009, 03:03) *
Второй вариант уже зависит от Вашей реализации шелезяк и софта в SAM, но при построчной буферизации будет жить.
построчный парсинг это первое о чем я подумал для этого случая, но пока этот вариант мне совсем не нравится,
там очень много о чем нужно подумать... имея в виду еще и штатную работу.
Цитата
(к чему, кстати, этот зверинец из ARM7),
Дык эта,
"Одна еду готовит, одна стирает, одна детей в школу водит.... И что все одна ?" ©почти Белое солнце в пустыне

Промконтроллеры это все, много-много каналов всего надо...
uriy
А вот что у меня случилось http://electronix.ru/forum/index.php?showt...mp;#entry541930
cornflyer
использую USB-COM конвертер MOXA
процессор lpc2148

1. замыкаю кнопкой ногу BSL P0.14 на землю
2. делаю сброс (на ноге 57 у меня стоит TPS3823 - супервизор запуска процессора с кнопкой для сброса)
3. размыкаю ногу BSL P0.14 (она подтянута через 2k к питанию)
4. прошиваю через UART0 из программы Philips Flash Utility (см. приложение)
5. делаю сброс

и все работает smile.gif
zltigo
Цитата(singlskv @ Feb 6 2009, 03:18) *
Промконтроллеры это все, много-много каналов всего надо...

Имелось ввиду не количество - у самого десятки в пределах блока, а смесь из контроллеров одного класса разных производителей.
vesago
По 485 без автоопределения направления передачи точно не прокатит и с автоопределением сомнения гложут. Мы так через штатный заливаем свой загрузчик, а тот уже как хочешь заливает.
zltigo
Цитата(vesago @ Feb 6 2009, 12:03) *
По 485 без автоопределения направления передачи точно не прокатит



Для НЕ "Magic" проблем нет сделать, насколько помнится, в даже проекте lpc21isp реализовано было.
KRS
Цитата(singlskv @ Feb 6 2009, 02:15) *
Я только двумя руками за,
за то чтоб скорость ни разу не менялась, только как определить нужную ?
115200 было бы разумно...

очень просто! если LPC старых серий (без встроеного генератора),
то он в бутлоадере работает на частоте внешнего квраца, но есть прескалер на перефферию 4, в UART дробного прескалера нет т.е. максимальная скрость F/4/16, например если кварц 16 Mhz то скорость максимальная 250000 таку. скростоь FTDI позволяет установить. А из стандартных баудрейтов надо считать ошибку (должна быть в пределах 2 %) на 19200 хорошо получатеся.

А в новых сериях где есть генератор бутлоадер работает, насколько я помню от 4 Mhz, плюс в UART есть дробный прескалер и железное определение баудрейта. Надо просто посчитать какие могут быть баудрейты...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.