|
|
  |
AvrUsb500 by Petka, вариант программатора AVR, доступный для простого изготовления |
|
|
|
Sep 24 2009, 11:50
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Цитата(Petka @ Sep 24 2009, 17:40)  avrdude + gui. а ещё лучше для "заказчиков" avrdude + *.bat файл. тогда ничего настраивать не надо, только иконку "жамкнуть" Спасибо. Так и подозревал, что ответ будет таким. Неужели ничего другого нет?
|
|
|
|
|
Sep 24 2009, 12:24
|
Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 544

|
Цитата(Petka @ Sep 24 2009, 08:39)  Прошивка программатора НЕ расчитана на кварц 16МГц. Так что изменений в схеме у вас больше. Вчера так и подумал. Но нужных кварцев нет нигде. И бестолку собирать прошивку под кварц 16МГц??? (makefile подправить). Просто в этой же ветке где-то писали, что можно любой разрешенный, просто если он не кратен 115200, то скорость прошивки будет меньше. Поэтому и взял тот, что есть.
Сообщение отредактировал ShuraX - Sep 24 2009, 12:29
|
|
|
|
|
Sep 24 2009, 12:50
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-03-09
Пользователь №: 45 759

|
Цитата(ShuraX @ Sep 24 2009, 15:24)  Вчера так и подумал. Но нужных кварцев нет нигде. И бестолку собирать прошивку под кварц 16МГц??? (makefile подправить). Просто в этой же ветке где-то писали, что можно любой разрешенный, просто если он не кратен 115200, то скорость прошивки будет меньше. Поэтому и взял тот, что есть. Ктото не так давно делал на 14,318. Их полно на материнках. Поспрошайте...
|
|
|
|
|
Sep 24 2009, 13:37
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(ShuraX @ Sep 24 2009, 16:24)  И бестолку собирать прошивку под кварц 16МГц??? (makefile подправить). Просто в этой же ветке где-то писали, что можно любой разрешенный, просто если он не кратен 115200, то скорость прошивки будет меньше. Всё правильно. Можно пересобрать прошивку под другой кварц с соответствующим снижением скорости по КОМпорту (в вашем случае до 38400). (если та программа, через какую вы программируете поддерживает изменение baudrate). Цитата(Budek @ Sep 24 2009, 15:50)  Спасибо. Так и подозревал, что ответ будет таким. Неужели ничего другого нет? Скорее всего есть. Я рассказал чем пользуюсь сам. После некоторого исследования я пришёл к выводу что avrdude единственный программатор, который поддерживает практически все программаторы (что есть у меня) и работает как под win так и под linux. Avreal ещё хорош, но он не поддерживает стандартный stk500 =(.
|
|
|
|
|
Sep 24 2009, 14:08
|
Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 544

|
Цитата(Petka @ Sep 24 2009, 16:37)  Всё правильно. Можно пересобрать прошивку под другой кварц с соответствующим снижением скорости по КОМпорту (в вашем случае до 38400). (если та программа, через какую вы программируете поддерживает изменение baudrate). Да я пока только пытаюсь через терминал получить ответ. На скорости 38400 тоже молчит. Смотрю может где не пропай, хотя вроде как сам то он прошился. Пока не завел...
|
|
|
|
|
Sep 24 2009, 15:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(ShuraX @ Sep 24 2009, 18:08)  Да я пока только пытаюсь через терминал получить ответ. На скорости 38400 тоже молчит. Смотрю может где не пропай, хотя вроде как сам то он прошился. Пока не завел... Опять двадцать пять: 1) Надо поменять в makefile частоту кварца и выбрать свой контроллер. 2) Поменять в файле cfg500.h константу "BAUDRATE". 3) Пересобрать прошивку.
|
|
|
|
|
Sep 24 2009, 15:51
|
Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 544

|
Цитата(Petka @ Sep 24 2009, 18:27)  Опять двадцать пять: 1) Надо поменять в makefile частоту кварца и выбрать свой контроллер. 2) Поменять в файле cfg500.h константу "BAUDRATE". 3) Пересобрать прошивку. Спасибо за оперативные ответы. Уж извините за "тупые" вопросы и проблемы.  Я только начал заниматься МК (хотя по роду деятельности постоянно программирую контроллеры...только промышленные). Но быстро учусь и много читаю. Нашел уже решение своей проблемы. Банальный прокол - фьюзы не прошил. И спасибо за программатор. Все заработало. Это мой первый девайс на МК и с применением SMD (замучался паять, под рукой нет необходимого инструмента). Но блин интереееесно стало! Сейчас будем тестить все. пункт 1. так и сделал. пункт 2. не трогал пункт 3. пересобрал и залил сразу же под нужную частоту и МК По поводу BAUDRATE вопросик. Я так понял для моего кварца необхоимо поставить 38400? Хотя сейчас он у меня стоит 115200 и прекрасно связывается и отвечает.
|
|
|
|
|
Sep 24 2009, 16:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(ShuraX @ Sep 24 2009, 19:51)  По поводу BAUDRATE вопросик. Я так понял для моего кварца необхоимо поставить 38400? Хотя сейчас он у меня стоит 115200 и прекрасно связывается и отвечает. Считаем вместе: 1) 16МГц = 16000000 2) UART AVR для себя делит частоту ядра на 16, итого UART работает на частоте 16000000/16 = 1000000 (1МГц) 3) Нам надо получить 115200, для этого делитель должен быть 1000000/115200 ~ 8,68 в делитель можно записать только целое число. 8,68 округляем до 9. 4) Считаем обратно: внутреннюю частоту UART делим на наш округлённый делитель: 1000000/9 = 111111,111(1) 5) Считаем насколько полученная частота отличается от требуемой: (111111,111 - 115200) ~ 4089 6) Теперь переводим ошибку в проценты (4089/115200)*100% = 3,54% 7) Уарт передаёт символ за 10бит (8 - байт + 1 стоповый бит + 1 стартовый). Для успешного принятия символа требуется, что бы за 10 бит погрешность накопилась не больше чем на пол бита. Пол бита составляет 5% от 10 бит. 8) Итого понимаем, что для успешного приёма нужно что-бы погрешность частоты была не больше 5%. С одной стороны полученное значение в пункте (6) меньше 5%, значит Приём будет работать без ошибок. Но с другой стороны "на том конце" тоже могли заложиться на некоторое отклонение по частоте. Значит 5% допустимой погрешности надо делить на 2 (на обе стороны). Итого на уарт допустимо отклоняться не боллее 2,5%, а эта цифра уже меньше, полученной в пункте (6). Так что если делать на совесть, то надо уменьшить частоту, до такой, при которой полученная ошибка будет меньше 2,5%. А если для себя, тяп-ляп, и если есть уверенность что в компе uart держит частоту точнее 1,45% (5%-3,54%), то можно оставить скорость такой. Уф. ничего не забыл?
|
|
|
|
|
Sep 24 2009, 16:42
|
Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 544

|
Petka спасибо за подробный ликбез! Делаю для себя, но на совесть, поэтому снижаем скорость пока не найду подходящий кварц.
|
|
|
|
|
Sep 26 2009, 05:44
|
Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 544

|
Может вопрос не по теме, но не могу найти... как в AVR Studio в диалоге "Select AVR Programmer" при выборе STK500 изменить скорость com порта на 38400, у меня выпадающий список не активен. И если прграмматор прошит для скорости 38400 - студия его не видет, если для скорости 115200 - все нормально, опеределяется как надо. (или в платной версии программы она активируется?)
|
|
|
|
|
Sep 26 2009, 12:34
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 3-02-08
Пользователь №: 34 700

|
Собрал программатор на связке ft232bl+atmega48.
Мега прошилась удачно но после рестарта светодиод не мигнул ни разу. При подключении программируемого девайса также не загорается. на запросы avrdude не отвечает.
не могу сообразить в чем грабля.
прошивку брал с первого поста. кварц на 18.432 МГц.
Кстати а почему в рекомендуемой установке фузов в картинке к первому посту BOD выключен?
Сообщение отредактировал cvv - Sep 26 2009, 12:33
|
|
|
|
|
Sep 26 2009, 13:21
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 3-02-08
Пользователь №: 34 700

|
Цитата(Petka @ Sep 26 2009, 16:17)  1) Перемычку перекинули? 2) Никакого идеологического смысла в отключении BODа нет. На той картинке показано минимальное изменение заводских фузов, необходимое для запуска контроллера от внешнего кварца. BOD желательно включить, (BODEN programmed, BODLEVEL programmed). 1) да 2) ок. спасибо
|
|
|
|
|
  |
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0
|
|
|