Программирование ATmega8A-PU через FT232RL из BASCOM-AVR
|
|
T1nK | Дата: Воскресенье, 19.01.2014, 19:17 | Сообщение # 1 |
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Здравствуйте!
Перед Новым Годом случайно увидел тему про Arduino на Хабре, которая меня заинтересовала. Начал копать. Концепция разработки устройств на МК дома, почти из подручных средств, меня очень заинтересовала. Тем более что перед сборкой "в железе" устройства вполне успешно можно проэмулировать в ISIS, по заявлениям авторов статей и видео.
Начал вникать, искать материал, софт. В процессе натыкался на этот сайт не один раз - много интересных статей, хорошие примеры. Купил макетную плату ATmega8A-PU в местном магазине, на eBay заказал программатор FT232RL и мелочевку не доступную по месту.
На прошлой неделе попытался воплотить в железе первые схемы. Подумав что достаточно уже знаю начал со своего мини-проекта - электронного термометра. Схему собрать я собрал, а вот с прошивкой возник затык - неожиданного оказалось, что я не знаю как залить её из BASCOM через FT232RL. Спалив кучку 3х вольтовых светодиодом в ходе попыток прошивки, а возможно и не только их (пока не обзавелся вольтметром и осциллографом). Тогда я разобрал схему и собрал самую простую которая мне встречалась (в ISIS сделал максимально похожую на реальную схему чипа, так проще разбираться в контактах при сборке схемы): Программу использовал следующею (надеюсь написал верно): Код $regfile = "m8adef.dat" $crystal = 16000000
Config Portb.0 = Input Config Portb.1 = Output
Do If Pinb.0 = 0 Then Portb.1 = 0 Else Portb.1 = 1 End If Loop
End И её вариантом (в котором при нажатии на кнопку не включается, а наоборот - выключается светодиод). Оказалось, что FT232RL, как мне подсказал exersizze, не является программатором, но может играть его роль (комментарий #45 к статье http://avrproject.ru/publ....-0-89).
Статьи http://easyelectronics.ru/skorost....ra.html и http://avrproject.ru/publ....1-0-109 мне как-то не особо помогли. Видимо моего уровня для их понимания как-то маловато - на мой взгляд там вообще некоторые моменты опущены, да и в последовательности действий есть пробелы.
FT232RL я подключил к ATmega8A-PU двумя проводами (в конечном итоге схему запитал от CR2032, иначе светодиоды перегорают): Вроде бы нужно ещё как-то соединить DRT -> RESET, но я не понял как, поэтому оставил без соединения - надеюсь что двух проводов будет достаточно.
Из софта у меня установлено: - MProg 3.5
- Khazama AVR Programmer 1.6.2
- PonyProg 1.17h
- BASCOM-AVR 2.0.7.5
- Proteus 7
Нужно из bascom залить прошивку в чип atmega (или hex через другую софтину - не принципиально) через FT232RL. Прошу помощи у тех кто уже сталкивался с подобной ситуацией и разрешил её.
|
|
| |
kip96 | Дата: Воскресенье, 19.01.2014, 21:45 | Сообщение # 2 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Хотелось написать много! Короче. Начьните с 0. Хотябы с азов. Физика. Закон Ома.Что-бы светодиоды не горели. Не кидайтесь с сайта на сайт. К примеру здесь всё ест необходимое что-бы начать с 0. По существу. В принципе через FT232RL можно, но это ещё то извращение, достойное только любопытства. Конечно можно через бутлоадер, но его как-то нужно зашить в контроллер. А чистый контроллер можно прошить только ПЯТЬЮ проводами. к примеру таким програматором. Но его сЦука тоже надо прошивать. Или купить такой. А FT232RL ещё пригодится для работы с UART. Удачи.
|
|
| |
T1nK | Дата: Воскресенье, 19.01.2014, 22:30 | Сообщение # 3 |
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Азы то понятное дело есть - школа, универ. Другое дело дело что не особо оно нужно было реально - подзабылось изрядно. Да и одно дело знать закон Ома, а другое - случайно провод не в ту дырку ткнуть, или забыть что светодиоды 3V-ые, а переключатель на FT232RL установлен в 5V. Кошелек у меня не резиновый, потому и спрашиваю совета, что бы не спалить уже материнскую плату или, в лучшем случае usb порты на ней. А покупать приведенный программатор пока не хочется - он не на много то и дешевле китайской Arduino (как приведенный, так и тот же китайский).
Желательно обойтись тем что уже есть. И потому - как прошить ATmega FT232RL пятью провода? Дайте пожалуйста схему подключения к контролеру и настройки софта - в приведенных статьях все слишком расплывчато...
Кстати наткнулся в интернета на PL2303HX - это программатор или конвертер, аналогичный более универсального FT232RL?
PS: Верно ли что для программирования МК нужно использовать (помимо питания, кстати оно может быть любым поддерживаемым МК?) не порты RX / TX, как подключил я, а MOSI / MISO / SCK / RESET (кстати, какай пятый то) ?
PS2: FT232RL выглядит так (желтый блок - ISP, дальние черные: GDN, CTL, 5V, TXD, RDX, DTR):
Сообщение отредактировал T1nK - Воскресенье, 19.01.2014, 23:57 |
|
| |
T1nK | Дата: Вторник, 21.01.2014, 21:54 | Сообщение # 4 |
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Подключил FT232RL я как показано в статье http://avrproject.ru/publ....-1-0-66 к своему МК ATmega8A-PU, исходя из схемы пинов (надеюсь то у FT232RL она такая же): И схемы пинов у ATmega8A-PU: Подключил SCK -> SCK (PB5) MISO -> MISO (PB4) MOSI -> MOSI (PB3) RESET -> RESET (PC6) GND -> GND (pin 8)
Запитал от CR2032 - к 7 (VCC плюс) и к 8 (GND минус)/
Но дальше ничего не получается... В MProg нужно что-то делать с FT232RL ? Как настроить BASCOM-AVR для программирования через ISP мой МК ATmega8A-PU ? Или лучше использовать другой софт (заливать готовые hex) ?
PS Кстати, ATmega8 как относится к неправильному подключению питания или подачи питания вообще на другие пины ? Может я просто уже МК спалить умудрился ?
Сообщение отредактировал T1nK - Вторник, 21.01.2014, 22:05 |
|
| |
top | Дата: Среда, 22.01.2014, 01:19 | Сообщение # 5 |
Группа: Друзья
Сообщений: 146
Статус: Offline
| Поразительное рвение! Но kip96 абсолютно прав. Стоит со всеми "деталями паутины" разобраться как следует!
Во первых - прочитать даташит на микросхему FT232RL и понять что это лишь преобразователь USB-UART. Затем поинтересоваться как все же использовать его для прошивки (такой режим называется BitBang) Во вторых - прочитать, можно и в даташите на mega8, что такое внутрисхемное программирование (через тот самый интерфейс SPI) В третьих - постараться систематизировать то, что Вы знаете и узнали. По полочкам расставить что есть что В четвертых - BASCOM лишь среда разработки. Скомпилировав проект вы получаете HEX файл, который в свою очередь может быть прошит в микроконтроллер 3мя способами: 1) С помощью внутрисхемного программатора по SPI (я использую программатор UASAsp, а на ПК для этого программатора использую программу Khazama AVR) 2) C помощью преобразователя FT232RL в режиме BitBang (это по сути эмуляция того же SPI програмными средствами ПК. никогда не пользовался этим вариантом. нужен определенный софт) 3) C помощью предварительно прошитого (по 1му или 2му способу) в микроконтроллер бутлоадера. Бутлоадер это специальная прошивка устанавливаемая в микроконтроллере в специальном участке памяти. Тут уже прошивать можно чисто через интерфейс UART (линии TXD RXD и GND).
Bascom конечно умеет работать с разными программаторами и даже поддерживает свой бутлоадер. Но я вот никогда не пользовался этими опциями. Всегда компилирую HEX и заливаю его через Khazama и USBAsp. Кстати, в свое время, когда собирал USBAsp тоже столкнулся с проблемой чем прошить контроллер программатора - сделал это с помощью программатора Громова, и больше к нему не возвращался. C недавних пор стал использовать бутлоадер так как это удобно) А FT232RL использую просто как преобразователь только для связи МК с ПК.
И, пожалуйста, изучите (поймите) вот эту статейку, которую Вы уже встречали (ссылка ниже). Отбросив все насоветованное, это - именно то что Вы ищите: прошивка через FT232RL в режиме BitBang через прогу AVRDude: http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html И не накуралесть с фьюз-битами и лок-битами
Все что я перечислил - мой опыт. Уверен что более половины мной сказанного Вам известно.
Заметил на платке с FT232RL есть переключатель 5-3,3 В. Этим Вы выбираете напряжение линий UART. Если питаете mega8 от 5 В, значит и переключатель надо ставить в положение 5.
Сообщение отредактировал top - Среда, 22.01.2014, 01:35 |
|
| |
Петр | Дата: Среда, 22.01.2014, 17:57 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 47
Статус: Offline
| Ставьте протеус и учитесь программировать МК. К железу перейдете когда появятся требуемые знания.
|
|
| |
T1nK | Дата: Среда, 22.01.2014, 23:12 | Сообщение # 7 |
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Proteus стоит уже месяц и в нем активно работаю, так же как с BASCOM - пробую разные примеры, что-то свою пробую и отлаживаю.
Но у него есть один минус - работающие в нем схемы не всегда работают в реале. Например светодиоды на 3В не перегорают при 5В, а частота МК намного ниже реальной (сужу по статьям и своим экскрементам - частота на порядок ниже расчетной) и т.д.
Потому и хочу уже начинать проверять схемы в железе - что бы не построить работающий в Proteus проект, в результате спалить половину компонентов после сборки...
Статью пытаюсь понять, но пока как-то туго идет. Почитать даташиты и рад бы, да англоязычную литературу только через переводчик читаю - сложно понимать о чем там речь, а со словарем ну очень медленно получается.
|
|
| |