Перейти к содержанию
    

На моей материнке встроенные COM порты наотрез отказываются работать с FlashMagic. А вот через USB-COM - без проблем. На скорости 230 кбит/сек...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

встроенные COM порты наотрез отказываются работать с FlashMagic.

А можно поподробней - с какими симптомами?

 

Просто мы рекомендуем пользователям обновляться (хоть и нечасто) именно FlashMagic'ом... Используются rxd/txd, вход в загрузчик и перезагрузка - ручками (джампер + выключатель питания).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На моей материнке встроенные COM порты наотрез отказываются работать с FlashMagic. А вот через USB-COM - без проблем. На скорости 230 кбит/сек...

Хм, я списывал это на некоторую "горелость" порта.

Один то точно горелый, а вторым записать 500 кБ было практически невозможна. Птица и до середины Днепра не долетала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так читайте его С НАЧАЛА, а не с середины.

Почитал. В основном разобрался. Но есть кое-какие уточняющие вопросы:

 

1)Исходное состояние - память очищенна -> контроллер ждёт "?"

 

Посылаю "?" -> отвечает "Synchronized"

Посылаю "Synchronized" -> отвечает "ОК"

Посылаю "ОК" -> отвечает "ОК"

 

Дальше согласно документации нужно отправить тактовую частоту то ли платы... вообщем посылаю 12000 он мне в ответ какие-то иероглифы.

Пробую сразу команды - выполняются. Получается никакое значение частоты посылать не нужно. Непонятно. Почему так?

...In response to this host

should send the same string ("Synchronized<CR><LF>"). The auto-baud routine looks at

the received characters to verify synchronization. If synchronization is verified then

"OK<CR><LF>" string is sent to the host. Host should respond by sending the crystal

frequency (in kHz) at which the part is running. For example, if the part is running at 10

MHz , the response from the host should be "10000<CR><LF>". "OK<CR><LF>" string is

sent to the host after receiving the crystal frequency. If synchronization is not verified then

the auto-baud routine waits again for a synchronization character. For auto-baud to work

correctly in case of user invoked ISP, the CCLK frequency should be greater than or equal

to 10 MHz

 

И ещё - если я ошибся при вводе слова Synchronized или ещё где-то - он мне в ответ какие-то иероглифы посылает и дальше никак не реагирует. Помогает только перезапуск терминала и всё сначала. Что это вообще за иероглифы? И нужно всё сначала или можно что-то ввести и он продолжит?

 

2)<CR><LF> - символ возврата каретки и сивмол новой строки. В документации написано, что каждая команда должна ими завершаться. Возврат каретки это при нажатии Enter, а навую строку как? У меня работает просто с одним нажатием Enter.

 

3)А встроеным в ОС Win XP терминалом можно тоже самое проделать? Он правда вроде не может сигналы RTS и DTS генерировать. Но если память будет очищена - контроллер будет сам ждать команд и ему не нужно будет делать ресет и P2.10 в 0 устанавливать. А будет программа - то не получиться (так как не может генерировать сигналы RTS, DTS) Я пробовал - у меня не получилось. Пишу знак вопроса - никак не реагирует. Нажимаю "правка-передать главному компьютеру" - появляется слово "Synchronized". Пишу в ответ "Synchronized" и нажимаю "правка-передать главному компьютеру" - ничего не происходит. Энтер тоже не помагает. На этом и застопорился.

 

4)В Flash Magic есть такие выражения - Assert RTS, Deassert DTS. Как это переводиться? В словаре смотрел (утверждать; заявлять, объявлять, декларировать, провозглашать, обеспечивать, отстаивать, защищать (свои права и т. п.); доказывать) - есть перевод, но сути выражений не понял. Больше всего подходит обеспечивать, но что имеется ввиду?

post-29297-1253389505_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пробую сразу команды - выполняются. Получается никакое значение частоты посылать не нужно. Непонятно. Почему так?

Именно этому контроллеру не нужно - у него есть собственный генератор, которым и пользуется загрузчик.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2)<CR><LF> - символ возврата каретки и сивмол новой строки. В документации написано, что каждая команда должна ими завершаться. Возврат каретки это при нажатии Enter, а навую строку как? У меня работает просто с одним нажатием Enter.
В настройках программы-терминала обычно есть опция дополнять <CR> кодом <LF> или не дополнять.

3)А встроеным в ОС Win XP терминалом можно тоже самое проделать?
Можно, но установить перемычку, запускающую BootLoader, и сбросить контроллер, вам придется вручную.

4)В Flash Magic есть такие выражения - Assert RTS, Deassert DTS. Как это переводиться?
Разработчики программы в Германии обитают, им простительно :) Смысл Assert и Deassert - активировать сигнал и деактивировать сигнал. Причем, следует учесть, что "активировать" совсем не означает однозначно "установить в лог.1". Зависит от схемотехники преобразователя уровней. По умолчанию (после инициализации COM-порта) сигналы RTS и DTR установлены, что соответствует их неактивному состоянию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Именно этому контроллеру не нужно - у него есть собственный генератор, которым и пользуется загрузчик.

Это была вырезка из datasheet`а "LPC24xx User manual". Тогда получается для LPC2468 частоту задавать нужно, а для LPC2478 нет.

 

В настройках программы-терминала обычно есть опция дополнять <CR> кодом <LF> или не дополнять.

Вот она:

post-29297-1253449605_thumb.jpg

Когда наводиш на выбор пишет - "Select the characters to be send or received for a new line". Перевожу - "выбирите символы отправляемые или получаемые для новой линии". Насколько я понимаю - какие символы будут посылаться при нажатии Enter - "<CR>" или "<CR><LF>" Странно, но работает при обоих вариантах.

 

Возвра́т каре́тки (англ. Carriage Return, CR) — управляющий символ ASCII 0x0D, при выводе которого курсор перемещается к левому краю поля, не меняя высоту. Этот управляющий символ вводится клавишей «Enter».

Нажимая клавишу Enter в терминале/текстовом редакторе у меня (как и большинства пользоватетей MS Word`а) происходит не просто возврат каретки, а возврат каретки + подача новой строки. Непонятно.

 

 

Можно, но установить перемычку, запускающую BootLoader, и сбросить контроллер, вам придется вручную.

Кнопка сброса есть. А вот перемычки такой на плате нет. Схема.

 

Разработчики программы в Германии обитают, им простительно Смысл Assert и Deassert - активировать сигнал и деактивировать сигнал. Причем, следует учесть, что "активировать" совсем не означает однозначно "установить в лог.1". Зависит от схемотехники преобразователя уровней. По умолчанию (после инициализации COM-порта) сигналы RTS и DTR установлены, что соответствует их неактивному состоянию.

Насколько я понял - если поставить Assert - на ножке COM-порта будет лог. 0, если - Deassert - лог. 1 Если дальше схемотехника другая - сигналы могут быть инверсными. Зачем тогда использовать понятия активный/неактивный...

 

Провёл эксперимент:

 

записал тестовую программу в МК, запустил терминал, послал "?" - > ответа не последовало. Непонятно почему так. Ведь сигналы RTS и DTR должны быть установлены по умолчанию.

 

Только когда я поставил галочку изменить поведение порта и выставил Deassert DTR, Assert RTS - мне в ответ выдало Synchronized (при других комбинациях Assert/Deassert - также не отвечает.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это была вырезка из datasheet`а "LPC24xx User manual". Тогда получается для LPC2468 частоту задавать нужно, а для LPC2478 нет.

Никому из 24xx и 23xx не нужно. Учите язык, читайте не слова и обрывки фраз из середины а разделы целиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Учите язык, читайте не слова и обрывки фраз из середины а разделы целиком.

Как раз читал раздел с самого начала. Datasheet посвящён LPC24хх. Странно было бы писать в нём не о LPC24xx. Раз написано - значит так и должно быть.

Вот datasheet на LPC21xx/22xx. Там тоже самое написано.

Было бы логичней для LPC21xx/22xx указать, что нужно указывать частоту, а для LPC23xx/24xx упустить это.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как раз читал раздел с самого начала.

Смотрел в книгу видел ф.....

When ISP mode is entered after a power on reset, the IRC and PLL are used to generate

CCLK of 14.748 MHz. This may not be the case when ISP is invoked by the user

application.

Посему либо указывайте эту частоту, либо не указывайте вообще. Если изменили источник тактирования, или он неизвестен, как у LPC21xxx тогда, естественно надо задавать, если он не 10 (кажется) Mhz, как прописано в загрузчике по умолчанию. Эту цифирь в загрузчике можно поменять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где можно почитать как переделать файлы проэкта написанные под LPC2100 (из книги Тревора Мартина) на LPC2478?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где можно почитать как переделать файлы проэкта написанные под LPC2100 (из книги Тревора Мартина) на LPC2478?

Купить книгу Мартина про LPC2400 :) :)

Ну или найти одно отличие....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К примеру, в опциях проэкта в качестве TARGET можно изменить с LPC2129 на LPC2478... это всё или ещё что-то нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...