|
Глючит FT232BL |
|
|
|
May 17 2009, 00:19
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 23-04-09
Пользователь №: 48 156

|
Цитата(DpInRock @ May 17 2009, 03:21)  Уберите галочку у CLKDIV8, если понипрог используете. И думайте, что МК работает на 8МГц. Типо, предположите... Да знаю я про эту галочку CLKDIV8! Мне интересно было сначала установить, какой возможен максимальный битрейт при текущих настройках тактового генератора, отладить хоть какую-то связь с FT245. А уже потом лезть в fuse bits, увеличивать частоту и т.п. Цитата(aaarrr) Чтобы обеспечить стабильную работу UART, отклонение частоты не должно превышать 1.5%. Внутренний RC без калибровки тут не подходит. Получается, внутренний генератор имеет погрешность больше 1,5%? А у внешнего кварцевого резонатора какая погрешность?
|
|
|
|
|
May 17 2009, 00:35
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(uuu2 @ May 17 2009, 04:19)  Мне интересно было сначала установить, какой возможен максимальный битрейт при текущих настройках тактового генератора, отладить хоть какую-то связь с FT245. В DS есть табличка, больше 9600 на 1MHz не получить. Цитата(uuu2 @ May 17 2009, 04:19)  Получается, внутренний генератор имеет погрешность больше 1,5%? А у внешнего кварцевого резонатора какая погрешность? Частота RC в значительной степени зависит от напряжения питания и температуры - посмотрите в DS соответствующие графики. У кварцевого резонатора погрешность составляет тысячные доли процента. Цитата(DpInRock @ May 17 2009, 03:45)  Просто совсем малопотребляющие делать с внешним кварцем не сильно кошерно. Ну, еще можно калибровать RC по часовому кварцу.
|
|
|
|
Guest_@Ark_*
|
May 17 2009, 08:59
|
Guests

|
Цитата(aaarrr @ May 17 2009, 03:28)  Чтобы обеспечить стабильную работу UART, отклонение частоты не должно превышать 1.5%. Внутренний RC без калибровки тут не подходит. Когда внешнего кварца нет, а внутренний генератор не обеспечивает достаточную точность, имеет смысл отказаться от встроенного аппаратного UART-а и реализовать его функции программно. Калибровать сам внутренний генератор в этом случае нет необходимости. Процедура калибровки будет заключаться в программном определении длительности передачи одного бита (в тиках) на данной тактовой частоте. Самый простой способ - определение путем приема заранее известного значения байта. Измеряете интервал от начала стартового до начала стопового бита в тиках и делите на 9 (при 8-битном формате данных). Полученную длительность бита используете для приема и передачи. Можно сохранить полученное значение, но правильнее производить такую калибровку в начале каждого сеанса связи. Это решение имеет смысл использовать даже в том случае, если тактовый генератор обеспечивает нужную точность, так как фактически - это процедура автоопределения скорости обмена.
|
|
|
|
|
May 17 2009, 23:03
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 23-04-09
Пользователь №: 48 156

|
Ну, решил я установить "более точный" внешний резонатор. В итоге доигрался - МК отрубился. Код не выполняется, программатор МК не видит. Фузы поставлены по документации. Выдержки приведены на картинке, а внизу скриншот фузов. Резонатор на 8 Мгц, конденсаторы на 27 пФ. К МК всё подключено нормально.
|
|
|
|
|
May 18 2009, 00:20
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 23-04-09
Пользователь №: 48 156

|
Цитата(aaarrr @ May 18 2009, 03:49)  Ну, бывает. Заводите внешнюю частоту и проверяйте фьюзы. При чем тут внешняя частота, если установлен "Full Swing Crystall Oscillator" (CKSEL3..1=0111)? "External Clock" имеет другие биты - 0000. Правда, тут кое-что не понятно. В битах SUT1..0 установлено, что "BOD enabled", а "Start-up time" равен 16K. С другой стороны, в битах BODLEVEL установлено, что "BOD Disabled". Что это значит? Биты SUT и BODLEVEL я не трогал - они не менялись.
|
|
|
|
|
May 18 2009, 00:26
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(uuu2 @ May 18 2009, 04:20)  При чем тут внешняя частота, если установлен "Full Swing Crystall Oscillator" (CKSEL3..1=0111)? "External Clock" имеет другие биты - 0000. При том, что вам процессор оживить надо, а для этого желательно убедиться, что в FUSE-битах стоит то, что вы думаете, а не что-то другое. Цитата(uuu2 @ May 18 2009, 04:20)  Правда, тут кое-что не понятно. В битах SUT1..0 установлено, что "BOD enabled", а "Start-up time" равен 16K. С другой стороны, в битах BODLEVEL установлено, что "BOD Disabled". Что это значит? Биты SUT и BODLEVEL я не трогал - они не менялись. В битах SUT установлено "Crystal Oscillator, fast rising power" SUT1..0=10, CKSEL0=1. Попробуйте для начала конденсаторы от кварца отодрать.
|
|
|
|
|
May 18 2009, 00:42
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 23-04-09
Пользователь №: 48 156

|
Отодрал. Заработал. Что это значит: конденсаторы не нужны? Или следует поставить конденсаторы меньшего номинала? А чем отличаются режимы fast rising power и low rising power с точки зрения надежности/точности и т.п.?
|
|
|
|
|
May 18 2009, 00:55
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(uuu2 @ May 18 2009, 04:42)  Отодрал. Заработал. Что это значит: конденсаторы не нужны? Или следует поставить конденсаторы меньшего номинала? Номиналы не те, грязь на плате и т.п. Цитата(uuu2 @ May 18 2009, 04:42)  А чем отличаются режимы fast rising power и low rising power с точки зрения надежности/точности и т.п.? Задержка перед стартом процессора во втором случае больше. Если поставить "fast rising power" при медленно нарастающем питании, то программа может некоторое время работать не с той частотой.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|