Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Скорость заливки в LPC2148 через COM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
zuy
Собственно у меня выше 38400 не прет. Пишет, что немогу соедениться с устройством.
На скоростях 38400 и ниже все работает. Так должно быть?

Кабель использовал заводской, от Nokia. Прозвонил его, он спаян просто как удлинитель т.е. 1 с 1, 2 с 2, 3 с 3, и т.д. все 9 проводков+экран.
Во Flash programmer указывал прос LPC2138 и кварц как на плате впаян 12000 КГц.
zltigo
Цитата(zuy @ Apr 11 2006, 21:44) *
Собственно у меня выше 38400 не прет. Пишет, что немогу соедениться с устройством.
На скоростях 38400 и ниже все работает. Так должно быть?

Кабель использовал заводской, от Nokia. Прозвонил его, он спаян просто как удлинитель т.е. 1 с 1, 2 с 2, 3 с 3, и т.д. все 9 проводков+экран.
Во Flash programmer указывал прос LPC2138 и кварц как на плате впаян 12000 КГц.

Вообще-то до 115200 , если естественно обеспечивается необходимая точность частоты от кварца.
Самый "правильный" 147456kHz обеспечивающий точные 115200. Ну а c 12MHz на высокие скорости
по точноcти не выйти.
defunct
Цитата(zltigo @ Apr 11 2006, 22:09) *
Вообще-то до 115200 , если естественно обеспечивается необходимая точность частоты от кварца.
Самый "правильный" 147456kHz обеспечивающий точные 115200. Ну а c 12MHz на высокие скорости
по точноcти не выйти.


Дополню, с кварцем 11.0592Mhz (вроде бы обеспечивается точные 115200), но на практике выше 57600 не соединяется.
rezident
Цитата(defunct @ Apr 12 2006, 01:47) *
Дополню, с кварцем 11.0592Mhz (вроде бы обеспечивается точные 115200), но на практике выше 57600 не соединяется.

14745,6кГц это тоже кратная частота для стандартных скоростей UARTа. 115200*128=14745600

Цитата
Кабель использовал заводской, от Nokia. Прозвонил его, он спаян просто как удлинитель т.е. 1 с 1, 2 с 2, 3 с 3, и т.д. все 9 проводков+экран.

Я с LPC2138 работал чуть-чуть. Пользовался для программирования Flash имеющимся у меня интерфейсом BSL MSP430. Тоже 38400 получал. 57600 не очень устойчиво. Но дело в том, что в BSL MSP430 стоит операционник TL062D на передачу RS-232. И такая схема просто не позволяет работать с сигналом частотой выше 50кГц. А у вас в качестве схемы сдвига уровней какая элементная база используется?
zltigo
Цитата(defunct @ Apr 11 2006, 22:47) *
Дополню, с кварцем 11.0592Mhz (вроде бы обеспечивается точные 115200), но на практике выше 57600 не соединяется.

Нет не годится для 115200 там еще усугубляется алгоритмом автодетекта бодов при произвольном
кварце. 57600 в полном согласии с документацией на ISP. В принципе можно в bootloader
прописать реальную частоту кварца, вместо указанной там среднепотолочной 10MHz.
Есть шанс "зацепить".

При "штатном" кварце безукоризнено работает на 115200. Заливалка самодельная, но это значения
не имеет.
zuy
Цитата(zltigo @ Apr 11 2006, 23:17) *
Нет не годится для 115200 там еще усугубляется алгоритмом автодетекта бодов при произвольном
кварце. 57600 в полном согласии с документацией на ISP. В принципе можно в bootloader
прописать реальную частоту кварца, вместо указанной там среднепотолочной 10MHz.
Есть шанс "зацепить".

При "штатном" кварце безукоризнено работает на 115200. Заливалка самодельная, но это значения
не имеет.


А где она эта документация по ISP? В даташите LPC2148 написано что: The auto-baud routine measures the bit time of the received synchronization character in
terms of its own frequency and programs the baud rate generator of the serial port.

Это все что касается частоты, ну разве что ниже еще написано, что AutoBaud нормально работает при кварцах от 10 и выше. PLL отключен в boot mode.
Я догнал, что не все скорости работают т.к. при определенных кварцах невозможно точно попасть в необходимый baudrate. Отсюда и отсутствие конекта. Правильно ли я понял, что autobaud меряет время между битами и корректирует значение регистров U0DLM и U0DLL чтобы попасть в ближайшую скорость?
MULVAL и DIVADDVAL В этом процессе не участвуют? Тогда получается надо выбирать такой кварц, чтобы его частота нацело делилась на нужную скорость, потом делим на 16(ответ будет тем значением которое autobaud в U0DLM и U0DLL запишет)?
zltigo
Цитата(zuy @ Apr 12 2006, 11:18) *
Тогда получается надо выбирать такой кварц, чтобы его частота нацело делилась

При этом обеспечится работа Ваших программ которые будут знать КАКОЙ кварц стоит.
ISP хуже - он НЕ знает какой кварц стоит и сначала должен хоть как-то поймать обмен по
первому байту, а потом уже получить по RS232 частоту кварца на которой он работает. Вот такая бодяга :-(
Цитата
А где она эта документация по ISP? В даташите LPC2148 написано что

Ну а User Manual тоже надо читать - там раздел прямо так и называется. Дальнейшие интимные
подробности а AN.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.