Просмотр полной версии : Микроконтроллеры AVR для начинающих
Пользуясь свободным временем на работе решил сделать небольшой FAQ для народа, впервые применяющего МК AVR.
Поскольку МК этой серии применяется в большинстве новых Спектрум-девайсов, надеюсь, что эта инфомация будет полезной :)
Итак, программы для прошивания МК.
Классика жанра - AVReal. Старенькая, консольная, но вполне работающая. Хелп встроен прямо в программу. Для работы под ХР потребует установки дров, коие есть в комплекте поставки. Для работы требует программаторы ByteBlasterMV или STK200. И тот, и другой очень похожи друг на друга и неплохо собираются "на коленке". Схему байтбластера можно покурить здесь - http://www.altera.ru/cgi-bin/go?35 , схема STK200 - http://hardlock.org.ua/mc/other/stk200/index.html
Самой простой будет судя по всему Uniprof. Эта прога хороша еще и тем, что в достаточно подробном и понятном хелпе есть также описание и самих программаторов, работающих с этой программой.
Это и пресловутый "пять проводков" на порт LPT, и чуть более сложный из десятка резисторов/диодов адаптер для COM-порта. Именно такие адаптеры у меня работают и дома и на работе. Он хорош еще и тем, что подходит для среды разработки Algorithm Builder (визуальный ассемблер). Я начинал писать программы для МК именно в этой среде, чего могу порекомендовать и прочим "чайникам" :)
Классическим инструментом написания программ является конечно же атмелевский ассемблер/отладчик/симулятор AVR Studio, который бесплатно доступен на альма-матер www.atmel.ru
Если же от ассемблера вас "не торкает", а родным является язык C, то тут можно порекомендовать WinAVR, CodeVision, что-то там еще... :)
Для полноты картины можно упомянуть и о языке BASIC. Есть такое чудо на МК. Вполне себе неплохо работает. http://www.mcselec.com/index.php?option=com_content&task=view&id=14&Itemid=41
Для тех, у кого на напряженка с портами LPT и COM, остается вариант USB-программатора. Покупать оригинальный атмелевский - вариант для маньяков/олигархов. Самодельный проггер сделать несложно и самому. Я сделал себе на днях и теперь доволен как слон :)
самодельный проггер называется USBAsp, программа его поддержки - AVRDude (АВРчувак :) ). Минус программатора в том, что для его изготовления понадобится и ATMega8 (ATMega48), причем прошитая...
Сайтик с подробной инструкцией по изготовлению и работе с проггером - http://easyelectronics.ru/usb-programmator-avr-usbasp.html
На этом же сайте найдете просто море полезной информации о МК и об электронике вообще. Также порекомендую "пушистый" сайт маньяков-электронщиков www.radiokot.ru На этом сайте есть раздел "Статьи", где можно порыться в свое удовольствие, а также "жирный" форум.
В аттаче я прилагаю файлы Uniprof'a и AVReal'a с драйверами.
З.Ы. У кого если есть что добавить - добавляйте! :)
Для прошивания чипов через программаторы на LPT очень удобна оболочка ChipBlasterAVR http://www.hpinfotech.ro/html/cbavr.htm (по сути CodeVisionAVR без Си редактора/компилятора). Если все-же склоняетесь к AVReal, то для него есть GUI (впрочем автор AVReal его не признает, но это удобнее/привычнее консоли), качать к примеру отсюда: http://www.miek.narod.ru/avrealshell.zip.
Для отладки прог помимо "правильного" AVR Studio удобно пользоваться AVR Simulator IDE http://www.oshonsoft.com/downloads.html и VMLAB http://www.amctools.com/. Удобны тем, что в функционале имеют виртуальные осциллографы, в студии этой фичи нет.
Немножко о такой злободневной теме, как фузы (фьюзы, fuses). Эти "зверьки" нужны для конфигурирования "железа" микроконтроллера. Они определяют например, будет ли подключен кварц, или обойдемся встроенным генератором. Т.е., они как соеобразный BIOS на ПэЦэ :)
Геморрой состоит в том, что в разных программах-программаторах они могут быть и "по человечески" инверсными, и неинверсными.
При ошибочном выставлении фьюзов мы рискуем остаться с "глухим" микроконтроллером, не слышащим программатора.
Выход из этой проблемки несложен. Дело в том, что по умолчанию бит опции SPIEN включен. Этот бит как раз отвечает за то, что МК будет откликаться на команды программатора. Поэтому, используя новый для вас программатор, полезно перед записью фьюзов сделать банальное чтение их же из МК. Если после чтения вы увидите, что "птичка" (галочка, единичка) в этом бите сброшена, значит данная программа работает с инверсными значениями фьюзов. И наоборот соответственно.
Посмотрев табличку фьюзов от аффтара прошивки, которую вы собираетесь заливать в МК, также обратите внимание на значение этого бита. В 99,9% прошивок значение этого бита не меняется! Если в табличке его значение не соответствует считанному из МК, то вводить эти ВСЕ биты в программатор нужно "наоборот".
Alex_kapfa
03.02.2010, 12:14
Полезные ссылки по микроконтроллерам AVR для начинающих:
Учебный курс по микроконтроллерам:
http://easyelectronics.ru/category/avr-uchebnyj-kurs
Конфигурация Fuse бит:
http://easyelectronics.ru/index.php?s=fuse+bit
Также по микроконтроллерам AVR для начинающих интересно рассказано на:
http://myrobot.ru/
Вот здесь можно прочитать, как запрограммировать микроконтроллер AVR при помощи Altera Byte Blaster:
http://radiokot.ru/start/mcu_fpga/avr/03/
Мне лично очень удобно «заливать» прошивку в микроконтроллер и выставлять Fuses в программе PonyProg2000:
http://www.lancos.com/ppwin95.html
У нее на мой взгляд очень удобный графический интерфейс. В Pony Prog установленный бит (отмеченный птичкой) считается активным (bit=0). Кстати, последняя версия этой программы не позволяет сбросить SPIEN бит (бит, который разрешает или запрещает программирование по SPI; эта «птичка» установлена и выделена по сравнению с другими).
molodcov_alex
03.02.2010, 13:10
AVReal. Старенькая
Почему ж эта "старенькая" программа постоянно обновляется и последняя версия вышла 31 января 2010 года? :D
Оффициальный сайт: http://real.kiev.ua/avreal
Ссылки на скачивание: http://real.kiev.ua/avreal/download/
Описание: http://real.kiev.ua/old/avreal/ru/description
Адаптеры: http://real.kiev.ua/old/avreal/ru/adapters.html
Почему ж эта "старенькая" программа постоянно обновляется и последняя версия вышла 31 января 2010 года?
Старенькая в хорошем смысле.
Потому, что ей скоро триста лет в обед.
Дата рождения на обновляемость не влияет. :)
Сейчас опробовал связку AVReal + AVRealShell + ByteBlasterMV. Шелл (спасибо spensor'у) реально упрощает работу.
Очень рекомендую тем, кто еще не определился с инструментарием. Огроменный бонус состоит в том, что тем же ByteBlaster'ом прошиваются и другие чипы - ПЛИСы (CPLD, FPGA). А это очень полезно для сборки Спекки-2007 и прочих Пентагонов 2.2 и всякоразных SMUCов :) Фактически, получаете два программатора в одном.
Alex_NEMO
03.02.2010, 15:15
Полезные ссылки по микроконтроллерам AVR для начинающих:
Дабавлю свои "5 копеек":
http://eugenemcu.ru/
http://chipenable.ru/
http://arv.radioliga.com/ - тут уже больше для "продвинутых", хотя и новичкам есть что почерпнуть...
Пользуясь свободным временем на работе решил сделать небольшой FAQ для народа, впервые применяющего МК AVR..................:)
Хорошее дела начали, Товарищ! :wink: :v2_thumb:
Внесу свою лепту.
http://123avr.com/
действительно для чайников. доступно и доходчиво.
Из железа - таки рекомендую проггер на USB. Собирается легко, схемка примитивная... Сам контроллер для него в качестве исключения можно прошить "проводками"...
Alex_NEMO
03.02.2010, 17:25
http://123avr.com/
действительно для чайников. доступно и доходчиво.
А... преснопамятный курс от товарища avr123! Известная гадость, особенно "старые" версии типа http://avr123.nm.ru/. Куча перескоков между монтроллерами(AVR<>PIC), компиляторами/средами разработки, полно рекламы и т.д. На мой взгляд - больше запутывает, нежели помогает!
Alex_kapfa
04.02.2010, 12:25
Нашел еще схему USB-го программатора AVR. Говорится, что она совместима по командам с оригинальным программатором AVR910 от ATMEL:
http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm
Может кто-нибудь делал эту схему и может рассказать о ее недостатках, по-возможности, сравнить ее с USBAsp, который, как я понял из описания, поддерживается только программой AVRDude. Обе схемы достаточно просты и похожи.
Помогите, пожалуйста, определиться, какую схему выбрать. Теоретически совместимый с "атмеловским" AVR910 программатор лучше поддержан программно.
Alex_NEMO
04.02.2010, 12:50
Нашел еще схему USB-го программатора AVR. Говорится, что она совместима по командам с оригинальным программатором AVR910 от ATMEL:
http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm
Может кто-нибудь делал эту схему и может рассказать о ее недостатках, по-возможности, сравнить ее с USBAsp, который, как я понял из описания, поддерживается только программой AVRDude. Обе схемы достаточно просты и похожи.
Помогите, пожалуйста, определиться, какую схему выбрать. Теоретически совместимый с "атмеловским" AVR910 программатор лучше поддержан программно.
Проштудируй вот эту ветку на Электрониксе - USB programmer AVR910 (http://electronix.ru/forum/index.php?showtopic=18676) (можешь даже с конца начать!). Ой, не хвалят его! Слишком не стабилен, и часто отваливается от USB! Там же на Электрониксе есть статейка AvrUsb500 by Petka (http://electronix.ru/forum/index.php?showtopic=42679&hl=Petka) и AvrUsb500 by Petka. продолжение, Вариант программатора AVR, доступный для простого изготовления. ч2. (http://electronix.ru/forum/index.php?showtopic=68372&hl=Petka). По нему много больше положительных отзывов!
Может кто-нибудь делал эту схему и может рассказать о ее недостатках
мы делали, может скоро еще поделаем:) мне он обошелся в 200р (детали+плата), пока активно не юзал, но проверяли, работает! субьективно, шьет медленнее, чем лптшный stk200. но на электрониксе в ветке про этот программатор есть упоминание о том, что кто-то сделал из него stk500-совместимый. в ближайшее время хочу попробовать это повторить.
наверное, это самый дешевый усб-программатор. а от дешевого, сами понимаете, требовать много не нужно;) да и начинающим, я думаю, в самый раз.
п.с. не уверен точно, но кажется, что stk500 шире поддержан в программах.
п.п.с. программатор проверяли в C0deV!si0nAVR.
---------- Post added at 15:42 ---------- Previous post was at 15:35 ----------
Слишком не стабилен, и часто отваливается от USB!
как бы так сказать...:) усб - это не лпт:) если сломался, выткнуть и воткнуть - дело 2х секунд:)
как бы так сказать... усб - это не лпт если сломался, выткнуть и воткнуть - дело 2х секунд
А если фьюзы прошьет как ненадо;)
..............п.с. не уверен точно, но кажется, что stk500 шире поддержан в программах.
п.п.с. программатор проверяли в C0deV!si0nAVR.[COLOR="Silver"]
...........
вы хотели переделок в СТК500?
их есть (http://star3x.com/electronics/avr/prevrashhaem-usbasp-v-stk500/) у меня :v2_smoke:
Alex_kapfa
11.02.2010, 13:24
Коллеги, кто-нибудь пробовал подключать STK-200/300, Byteblaster или какой-либо другой программатор, который подключается к параллельному порту LPT компьютера, через переходник expresscard to LPT, например, ST-LAB С-370? Решат ли такие переходники проблему с отсутствием портов LPT и COM на современных ноутбуках?
Я читал, что на PCMCI были реализованы аппаратные параллельные и последовательные порты, с которыми нормально работает всякое технологическое оборудование, а вот по поводу expresscard to LPT пока информации по этому поводу мало и часто она противоречива.
Коллеги, кто-нибудь пробовал подключать STK-200/300, Byteblaster или какой-либо другой программатор, который подключается к параллельному порту LPT компьютера, через переходник expresscard to LPT
KOE кажется отписывался что пробывал, как и следовало ожидать результат нулевой. Микросхемные конвертеры расчитаны на преобразования командных посылок свойственных принтерам, и не способны повторить произвольную комбинацию ногами.
Но есть фришный проект USB Byteblaster, для Altera подходит. Но в любом случае там ПЛИС сначала надо чем-то прошить. Такая же ситуация и с AVR-программаторами - с USB проблем нет, но надо либо купить готовый программатор, либо прошить микросхемы на компе с LPT-портом. Лично для себя решил покупкой маленького компьютера D945GCLF, который как ни странно снабжен LPT, хотя комп из "свежих".
Alex_kapfa
11.02.2010, 15:36
KOE кажется отписывался что пробывал, как и следовало ожидать результат нулевой. Микросхемные конвертеры расчитаны на преобразования командных посылок свойственных принтерам, и не способны повторить произвольную комбинацию ногами.
Из того, что я нашел в Интернете можно определить, что только для подключения принтера служат переходники USB to LPT, а здесь подключение к шине expresscard, которая является аналогом PCI Express «настольных» компьютеров, т.е. в данном случае теоретически можно реализовать полноценный («железный») LPT.
Вот здесь
http://forum.ixbt.com/post.cgi?id=print:48:6431
говорится, что полноценные PCMCI to LPT бывают, а ведь Expresscard пришла на смену шине PCMCI (ноутбучный PCMCI – аналог «десктопового» PCI).
Здесь говорится о разъемах ноутбука:
http://www.rusdoc.ru/articles/razjemy_noutbukov_i_ix_naznachenie/19003/print/
sergey2b
11.02.2010, 17:00
если у кого нибудь есть лекарство для CodeVisionAVR, поделитесь пожалуйста, можно в личку
sergey2b, зачем так грубо обращаться с программой? Возьми сразу здоровую свежую :)
http://narod.ru/disk/17813953000/Codevision_AVR_V2.03.4.rar.html
sergey2b
13.02.2010, 14:42
собрал jtag
http://easyelectronics.ru/vnutrisxemnaya-otladka-avr-cherez-jtag-ice.html
работает с atmega16 отлично
хочу собрать программатор который подключаеться через COM и его понимает студия
через COM потому что активно использую VirtualPC а она не может делать виртуальные USB
так что надо искать другую виртуальную машину либо программатор должен быть через COM порт
...активно использую VirtualPC а она не может делать виртуальные USB
так что надо искать другую виртуальную машину либо программатор должен быть через COM порт
небольшой офтоп - VirtualBox под линукс отлично работает с USB, только не тот, который в репозиториях (он как раз не поддерживает USB), а скачанный с официального сайта. Проверял с несколькими мобильными телефонами и принтерами
sergey2b
13.02.2010, 15:00
небольшой офтоп - VirtualBox под линукс отлично работает с USB, только не тот, который в репозиториях (он как раз не поддерживает USB), а скачанный с официального сайта. Проверял с несколькими мобильными телефонами и принтерами
bolini вы имеете ввиду virtulabox.org, могли бы вы пожалуйста дать ссылку на версию которая работает с USB (у меня есть avr dragon он на USB, тогда не чего собирать не придеться)
я качал бинарники отсюда http://www.virtualbox.org/wiki/Downloads. В Alt-linux 4 установить не удалось, в Ubuntu 9.04 встало все без проблем. Как установить из бинарного файла описано http://ru.opensuse.org/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D 0%B0_VirtualBox
Alex_NEMO
28.02.2010, 19:52
Довольно приятная IDE для WinAVR под Windows - AVRProjectIDE (http://code.google.com/p/avr-project-ide/)
Размер ~2Mb, требует наличия NET Framework 3.5. Лично мне - понравилась!
Ещё одна "полезняшка" для WinAVR(GCC) - AVR Wizard. Наподобие мастера начальной конфигурации в CodeVision AVR.
Смотреть тут: http://kazus.ru/forums/showthread.php?t=15601&page=6 и на след. странице, сообщения от юзера andries5.
Alex_NEMO
01.03.2010, 11:08
а не подскажете, где можно взять диаграммы обработки внешних прерываний ядром авр? интересует, сколько тактов от "запроса" до начала выполнения программы.
Качни вот эти книги, можно сказать обобщенный "вольный перевод" даташитов от Atmel:
1. Евстифеев А.В. Микроконтроллеры AVR семейства Classic фирмы Atmel (http://depositfiles.com/ru/files/awjt7f0r4) ~2Мб. PDF.
2. Микроконтроллеры AVR семейства Tiny: руководство пользователя (http://depositfiles.com/files/nq1j4r1iv), Зеркало (http://turbobit.net/3gddhou1i8tk.html) ~11Мб. DJVU.
3. Микроконтроллеры AVR семейства Mega. Руководство пользователя (http://depositfiles.com/files/5955809), Зеркало (http://rapidshare.com/files/49204241/Mikrokontrollery_AVR_semeystva_MEGA._2007_.rar) ~11Мб. DJVU.
4. А.В.Белов. Микроконтроллеры AVR в радиолюбительской практике. (http://depositfiles.com/files/5840313). (Данная книга представляет собой справочник, в котором представлено полное и подробное описание одной конкретной микросхемы - микроконтроллера ATiny2313 семейства AVR фирмы Atmel. Описание построено на основе оригинальной технической документации на микросхему и содержит описание всех регистров, всех видов памяти и всех внутренних систем микроконтроллера.Имеется и практический раздел для радиолюбителей.). ~6Мб. DJVU.
5. Белов А.В. Самоучитель разработчика устройств на микроконтроллерах AVR. ~11Мб. DJVU.
Депозит (http://depositfiles.com/ru/files/6ppu5z4sh), АплоадБокс (http://uploadbox.com/files/43100cebdd), ЛетитБит (http://letitbit.net/download/c63e24934877/below.rar.html).
Alex_NEMO
01.03.2010, 12:24
Где бы мануал толковый надыбать?
Сам же отвечаю на свой вопрос:
Русский FAQ/Мануал по Proteus'у - Народ.Диск.РУ (http://narod.ru/disk/10499793000/Proteus_Help.chm.html), iFolder (http://el-lance.ifolder.ru/12998231) ~13,2 Mb.
Мне здорово помогла (и помогает) книга "Микроконтроллеры АВР. Самоучитель разработчика" не помню автора. В книге разгрызается АТТини2313 вдоль и поперёк, учат языкам С и ассемблеру на основе КодеВижн и АВРСтудио, полный русский перевод даташита на Таньку2313. Я по этой книге изучал С.
Женя, по идее, это книга А.Белова, подобная этой:
4. А.В.Белов. Микроконтроллеры AVR в радиолюбительской практике.. (Данная книга представляет собой справочник, в котором представлено полное и подробное описание одной конкретной микросхемы - микроконтроллера ATiny2313 семейства AVR фирмы Atmel...
У этого автора, в самом деле хорошие книги. У меня они есть и в "бумажном" виде!
Женя, эта книга?
http://mirknig.com/uploads/posts/2009-03/1236680043_2009-03-10_115241.jpg
Если что, вот ссылки на неё: Депозит (http://depositfiles.com/ru/files/6ppu5z4sh), АплоадБокс (http://uploadbox.com/files/43100cebdd), ЛетитБит (http://letitbit.net/download/c63e24934877/below.rar.html).
Пользуясь случаем, хотелось бы поинтересоваться, а можно, и если да, то как это организовывается, писать модульные/структурные программы на ASMе? Если я правильно выразился как это привильно называется. В общем примерно предполагается такое:
MAIN.ASM
RS232.ASM
RTC.ASM
....
а можно, и если да, то как это организовывается
а в чем проблема? самый простой вариант - заинклудить все в майне. вариант посложнее - компилить все отдельно, а потом линковать в общую кучу. все зависит от того, в чем пишешь.
а в чем проблема? самый простой вариант - заинклудить все в майне. вариант посложнее - компилить все отдельно, а потом линковать в общую кучу. все зависит от того, в чем пишешь.
Тогда вопрос, какой ASM-компилятор инклуды понимает? Возможно есть в природе примеры модульного проекта, кинте ссылкой. Си не владею, а модульных проектов на асме не встречал.
инклуды понимает любой компилятор. а иначе это не компилятор а ппц... интересует под авр или подо что?
Alex_kapfa
20.04.2010, 00:40
ucGoZilla - USB программатор микроконтроллеров AVR
http://prottoss.com/projects/ucGoZilla/ucGoZilla.htm
Это новая разработка от автора программатора AVR910USB.
Преимущества, о которых пишет автор:
* Возможность программирования всех МК AVR, поддерживающих ISP-программирование;
* Поддержка протокола STK500v2;
* Поддержка всех тактовых частот ISP от 1.21 кГц до 1.845 МГц; Наличие генератора меандра с изменяющейся частотой от 0 до 3.68 МГц;
* Full Speed USB-устройство (12 Мб/с). Эмуляция Virtual Communication Port с использованием штатного драйвера usbser.sys;
* Работа во всех современных 32/64-битных операционных системах - Windows XP/Vista/Seven;
* Преобразователь уровней, позволяющий программировать МК с напряжением питания от 2 до 5 вольт;
* Относительно дешевая и доступная элементная база;
* Нет необходимости использования дополнительных устройств для "оживления" программатора. Загрузка прошивки осуществляется специальной утилитой.
Форум, на котором обсуждается данный программатор:
http://kazus.ru/forums/showthread.php?t=17739
Может уже было...
Есть USBTinyISP. Собрал себе по причине того, что на MacBook нету ни ком, ни lpt, а только USB.
http://znoxx.wordpress.com/2010/01/24/usbtinyisp/
Плата сразу под ЛУТ.
Работает с AVRDude последних версий сразу, в том числе и под не-Win32 версии.
Единственное, что потребуется - зашить изначальную микруху ATTiny. Потом вы свободны от com-портов, проводочков в lpt и головной боли.
ChipManyak
06.06.2010, 15:44
Вот вариант отличного программатора для AVR,
который я собрал около года назад, вся инфа ЗДЕСЬ (http://radiokot.ru/lab/controller/41/)
Поддерживает высоковольтное параллельное и
последовательное программирование, как раз
для любителей программировать bit RSTDISBL и SPIEN
1.
http://photofile.ru/photo/strelax/150259411/large/158289397.jpg (http://photofile.ru/users/strelax/150259411/158289397/)
2.
http://photofile.ru/photo/strelax/150259411/large/158289388.jpg (http://photofile.ru/users/strelax/150259411/158289388/)
Да, интересненько... :), классная программа AVR STUDIO.
А не подскажет ли кто где взять мануал на описание системы команд ASSEMBER-а AVR?
---------- Post added 12.06.2010 at 00:05 ---------- Previous post was 11.06.2010 at 23:51 ----------
Уже вроде что-то нашел, но не русском, хотя там вроде все ясно показано стрелками :).
---------- Post added at 00:22 ---------- Previous post was at 00:05 ----------
Не пойму чего-то с названиями регистров... :( Они что, все r?
balu_dark
12.06.2010, 02:02
ну сделай для себя таблицу макросов AF',DE,HL ;) там их реально много но это из-за ограниченности других ресурсоы проца. и в части аврок - всего трех уровней стека. всякие там меги конечно уже имеют нормальный стэк но тот же Z80 асм при всей его тормознутости ( у AVR все команды как правило условно однотактные, а у Z80 4-23 такта) всеже гибче немнго.
---------- Post added at 01:02 ---------- Previous post was at 00:51 ----------
http://bizbooks.com.ua/catalog/det.php3?id=27358
http://bizbooks.com.ua/catalog/det.php3?id=24204
поищи это в сети в виде pdf- я себе бумажное брал. у них еще была книжка по асму АВР чуть ли не уровня - на этой руке 8 пальцев на второй тоже - так складываем а так вычитаем и т.д. автор какойто иномарочный но приятно удивил уровень подачи материала :) и довольно толково написаны различные примеры. одно помню на обложке было зелененькое с низу :)
А не подскажет ли кто где взять мануал на описание системы команд ASSEMBER-а AVR?
Перевод оригинального мануала (такой встроен в AVR Studio, только на английском): http://www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/start.htm
Не пойму чего-то с названиями регистров... Они что, все r?
Да, 32 регистра: R0, R1, ..., R31
R16—R31 могут участвовать в командах с литеральной адресацией (когда второй операнд — 8-битная константа).
Также есть синонимы:
R31 = ZH, R30 = ZL, пара ZH:ZL (R31:R30) иногда обозначается как Z
пара Y: R29 = YH, R28 = YL
пара X: R27 = XH, R26 = XL
Пары X, Y используются в командах с косвенной адресацией RAM.
Пара Z используется в командах с косвенной адресацией Flash.
Хорошим тоном считается замена имен регистров Rx на смысловые с помощью директивы .def, например .def tmp = R16. Поскольку регистров много, то в небольших программах, как правило, все переменные удается уместить в регистры и через .def фактически задаются имена переменных.
---------- Post added at 17:33 ---------- Previous post was at 17:30 ----------
и в части аврок - всего трех уровней стека
В моделях, у которых есть SRAM (а это большинство AVR), стек располагается в ней, и его размер ограничен только размером доступной оперативной памяти.
Перевод оригинального мануала
Ага, у меня этот перевод даже распечатан. Получился нехилый талмудик :)
В моделях, у которых есть SRAM (а это большинство AVR),
Про аппаратный трехуровневый стек можно вообще забыть. Не будете же вы использовать для своих разработок древнегумномамонтовую AT90S1200? ;)
Не совсем понятно как работать с портами ввода вывода, как послать сигнал на определенную ногу, или как принять? Подскажите пожалуйста.
на си:
DDRA = 0x01; A0 - выход
PORTA = 0x01; A0=1
PORTA = 0x00; A0=0
DDRA = 0x00; A0 - вход
tmp = PINA & 0x01; tmp=A0
п.с. мог напутать.
на си:
DDRA = 0x01; A0 - выход
PORTA = 0x01; A0=1
PORTA = 0x00; A0=0
DDRA = 0x00; A0 - вход
tmp = PINA & 0x01; tmp=A0
Можно немножко понятней сказать:
DDRx - определяет, будет ли нога порта Х входом или выходом. "0" в разряде порта означает "вход", "1" - выход.
PORTx - определяет что будет на ноге, если она "выход". Записывая в PORTx нули или единицы в нужные разряды, соответственно это же получим и на ноге-выходе.
Если для ноги в DDRx установлен "0" (т.е. нога-вход), то записав в PORTx для данного разряда "1", получится нога-вход с "пуллапом" (подтяжкой через внутренний резистор к Uпит.).
PINx - содержит информацию о сигнале на ноге-входе. Предназначен для чтения.
Можно немножко понятней сказать:
так жеж... так "понятней" написано в даташите:) а тут конкретный пример. просто я торопился.
Также можно читать информацию и с PORTx, но там сигнал появится с некоторой задержкой после его фактического прихода. Зато "шумов" ("дребезга") сигнала будет меньше
эээээ.... а я че-то думал это там защелка просто;) и прочитаешь ровно то, что записал.
эээээ.... а я че-то думал это там защелка просто и прочитаешь ровно то, что записал.
Не угадал :) Там читается пин входа, но с задержкой в четыре такта.
так жеж... так "понятней" написано в даташите
Согласен. Только не все с аглицким дружат.
---------- Post added at 15:57 ---------- Previous post was at 15:22 ----------
Там читается пин входа, но с задержкой в четыре такта.
Самое интересное, что я не могу сейчас найти источника информации.
В переводе даташита применительно к Тини2313 этого нет, но я этот способ чтения применял когда-то, когда только начинал знакомиться с МК. Инфа откуда-то из "учебников в интернете"... Аж самому интересно стало :)
такое было в пиках. а в мегах кажись не так, но я не уверен, дш не смотрел еще.
Млин, полазил по "источникам"... Не найти...
Ладно, дабы не смущать людей, уберу лишнюю информацию. Абыдно, что под рукой нет платки какой-нить с МК, чтобы сейчас проверить.
ATtiny2313 DS:
Independent of the setting of Data Direction bit DDxn, the port pin can be read through the PINxn Register bit. As shown in Figure 22, the PINxn Register bit and the preceding latch constitute a synchronizer. This is needed to avoid metastability if the physical pin changes value near the edge of the internal clock, but it also introduces a delay. Figure 23 shows a timing diagram of the synchronization when reading an externally applied pin value. The maximum and minimum propagation delays are denoted tpd,max and tpd,min respectively.
Поделюсь опытом первой работы. Меня пока больше всего интересовал вывод информации из регистров на ноги микроконтроллера. Так вот первый блин получился с тем, что при записи команды out я задавал название порта "DDRA" и "PORTA", а надо было соответственно $1a и $1b, тоесть так: out $1a, R16. (В 16 предварительно записывается код 11111111 то есть код 255 (ldi R16, 0b11111111)). Это означает, что вы открываете все 8 битов порта А на вывод ("DDRA"). А дальше выведем в порт А на все восемь ног сигналы логической единицы (11111111). Записываем тоже самое с командой out но уже указываем номер порта другой - $1b, то есть: out $1b, R16 (Это соответствует записи в порт "PortA", по идее после этого должны загореться все 8 светодиодиков, которые подключены на выходе канала А микроконтроллера AVR)
(номер порта можно увидеть справа внизу если щелкнуть справа сверху в окошке I/O Viev на вкладочке PortA. Если щелкнуть на него то внизу справа в другом окошке отобразится состояние портов канала А.) Если теперь откомпилировать программу и потом пошагово запускать код (клавиша F11) то можно увидеть как исполняется код. :);)
Viktor2312
18.06.2010, 16:00
Уважаемые форумчане разбирающиеся в МК AVR, подскажите полному "чайнику", начинающему изучать МК AVR с нуля:
1. Среду разработки для себя, я выбрал AVR Studio, язык программирования ассемблер - так вот скачал я AVR Studio 4.18 build 684, нормальная это версия или есть версия которая считается стандартом и лучше с неё начинать (хотя хочется начинать с чего-то современного, что бы потом не переучиваться)?
2. Скачал книгу В. Трамперт "AVR_RISC_микроконтроллеры" в ней упоминается устройство STK-200, так же вопрос слышал что есть STK-500, поэтому подскажите, если я буду применять AVR Studio 4.18 какой STK для неё лучше и так чтобы его можно было самому собрать (наличие схемы, описания и т. д.)
3. Так же интерисует вопрос конкретного микроконтроллера, какой микроконтроллер из 8-и разрядных, на настоящий момент является стандартным, чтобы уже непосредственно с ним проводить практические эксперименты и создавать свои проекты. Важно, что бы по данному МК было как можно больше информации на русском языке (с английским не дружу).
Версия AVR Studio значения не имеет. Более новые содержат поддержку более новых контроллеров, коих море, и все тебе не понадобятся.
СТК-200 - наиболее простое, делается на одной микросхеме 74HC244 и десятке резисторов. На нашем форуме оно будет делаться серийно в теме"ZX-KIT набор программаторов для Спекки" в "барахолке". СТК-500 сложнее, для его изготовления нужен сам микроконтроллер и программатор, хотя бы СТК-200 :) Но в работе он удобней, позволяет прошивать МК просто тыкнув кнопочку в АВР Студио.
Из микроконтроллеров (массово-ходовых) лучше выбрать ATTiny2313 (есть документация полностью на русском языке), ATMega8515, ATMega32...
Это одно из частных мнений :)
Viktor2312
18.06.2010, 16:33
Ну хорошо, тогда со средой разработки определился точно:
1. AVR Studio 4.18 build 684 (В свободное время можно глянуть на Algorithm Builder)
С программатором тоже определился, попробую собрать:
2. Программатор AVR -аналог AVRISP (Есть как вроде описание в Радио, №5, 2006г.) По сути тотже STK500.
http://www.qrz.ru/schemes/contribute/constr/ra4nal/avrisp.shtml
Хорошо :)
Как обычно, порекомендую также глянуть на Algorithm Builder (http://www.algrom.net/russian.html)- тоже ассемблер, но визуальный. Прога небольная, и рекомендую хотя бы просто глянуть на нее. В комплекте мануал и проекты примеров. Тут одно из двух - или очень понравится (как мне) или наоборот.
я бы еще присоветовал атмегу8 :) жалко что щас ппц с атмелами, временный.
из всех стк-500 совместимых, я бы посоветовал программатор AVR910 by PROTTOSS, для него есть аж три прошивки: сам avr910, USBasp, AVR Doper (это как раз он стк-500). из плюсов также - дешевый, УСБ, работает более-менее стабильно:) сам много не юзал, но глюков не замечал.
Какой fuse нужно включить в атмеге32 для того чтобы включить внутренний генератор? и сразу возник по ходу другой вопрос. Как задать частоту этого встроенного генератора если есть такая возможность?
Какой fuse нужно включить в атмеге32 для того чтобы включить внутренний генератор?
Картинко внизу.
Биты CKSEL.
Если "птичку" выставлять на CKSEL 2 (как на картинке), будет 8Мгц.
CKSEL 1 - 2Мгц
CKSEL 0 - 1Мгц
CKSEL 0 и CKSEL 1 - 4Мгц.
ДЛЯ ПОНИПРОГА ВСЕ ФУЗЫ - НАОБОРОТ!
sergey2b
19.06.2010, 00:30
rnd.gen прочтите большая часть вопросов отпадет и изложенно системно
http://easyelectronics.ru/category/knigi
Автор: Юрий Ревич
Название: Практическое программирование
Микроконтроллеров AVR на
языке ассемблера
Издательство: BhvОтличная книга. Из серии настольных. Автор очень доступно, подробно, без занудства и заумностей рассказывает как использовать все то богатство, что разработчики из Atmel напихали в свой контроллер, причем книжка свежая, а значит контроллеры там уже из современных. Разобраны все периферийные устройства, а также на конкретных практических примерах наглядно показано, как воспроизводить звуки через ШИМ, как писать и читать на MMC флешки, как пользоваться компараторами, АЦП, SPI, TWI. Есть целый раздел посвященный математике на микроконтроллерах. Сложение, деление, умножение целых и дробных чисел. Как со знаком, так и без. В сочетании с даташитом или книгой Евстифеева дает практически полную информацию для работы с AVR. Также есть глава посвященная связи МК с компом. Есть пример проги на Delphi для работы с COM портом. В общем, настоятельно рекомендую скачать, а можно и в бумаге заиметь, не помешает.
CodeMaster
30.07.2010, 17:31
Не знаю в тему или нет, но вопрос такой: что означают последние буквы в маркировке ATmega8515-16AU (PU/PI/MU и тд.)?
(PU/PI/MU и тд.)?
A - TQFP
P - DIP
J - PLCC
M - QFN
C - Commercial
I - Industrial
U - Industrial Pb-Free
CodeMaster
30.08.2010, 12:30
Из микроконтроллеров (массово-ходовых) лучше выбрать ATTiny2313 (есть документация полностью на русском языке), ATMega8515, ATMega32...
Вот у меня тоже возник такой вопрос: с чего начать? Но ATTiny2313 и тем более ATMega достаточно сложные контроллеры и что главное габаритные, ставить их в схемы где требуется 1-2 входа/выхода нет смысла, поэтому вопрос в том, какие сейчас есть AVR на 1-2 входа/выхода?
Александр Бухаров
30.08.2010, 12:43
тиньки есть, серия 13/12/11, восьми лапые, самое то, где много не надо лап, но минус - цена, стоят, столько же, как и тиньки 261 - с кучей ацп и 20 ног.
CodeMaster
30.08.2010, 12:52
тиньки есть, серия 13/12/11, восьми лапые, самое то, где много не надо лап, но минус - цена, стоят, столько же, как и тиньки 261 - с кучей ацп и 20 ног.
26 наверное? Но всё же ATTINY13-20PU подешевле, но это не главное, смысл ставить большого таракана если половина ног не используется, а иногда и просто миниатюрная схема нужна.
Александр Бухаров
30.08.2010, 16:07
26 наверное? Но всё же ATTINY13-20PU подешевле, но это не главное, смысл ставить большого таракана если половина ног не используется, а иногда и просто миниатюрная схема нужна.
Именно attiny261(26 предыдущая редакция)
а миниатюрная тогда пред. пост смотри.
По ценам, это - местозависимо (зависит от магаза) - посмотри promelec.ru, я там беру, ну argussoft.ru.
С атмелами проблема непонятная, последний счет, который выставляли мне(75 шт тинек 261) - мелкосхемки прийдут 11 марта 2011 !!
да проблема понятная и где только не обсосана: атмел всех временно кинул, склады пусты или цены взвинчены по самое небалуйся. обещают с глубокой осени поставки, но как оно будет - хз. скоро уже год этому кризису атмела.
CodeMaster
30.08.2010, 17:16
Именно attiny261(26 предыдущая редакция)
В прайсах не видел, но не суть.
По ценам, это - местозависимо (зависит от магаза) - посмотри promelec.ru, я там беру, ну argussoft.ru.
Я по ближайшей рознице ориентируюсь
С атмелами проблема непонятная, последний счет, который выставляли мне(75 шт тинек 261) - мелкосхемки прийдут 11 марта 2011 !!
скоро уже год этому кризису атмела.
Да? Надо побыстрому затариться Atmel'ами пока они у нас в рознице есть и по старым ценам. :-)
Александр Бухаров
31.08.2010, 10:51
В прайсах не видел, но не суть.
Я по ближайшей рознице ориентируюсь
Да? Надо побыстрому затариться Atmel'ами пока они у нас в рознице есть и по старым ценам. :-)
Именно ) затарился 26 и 2313 ) мне хватитЪ ))
А почему у атмелов такой косяк с поставками, знает кто?
Разное говорят, но банкует тот, кто запасся Atmel-ами до нынешней весны. Сейчас даже и у китайцев цены в разы взлетели. Переходите на MICROCHIP, с ним по ценам и срокам поставки все просто замечательно. Ну или на ARM-овские мелкоконтроллеры, их кто только не производит.
в топку микрочипы!
а вот в сторону lpc1343 посмотреть очень даже стоит. при цене 80 с копейками рублей - это просто сказка. осталось только найти, где свободно можно по такой цене купить.
Это же ARM Cortex M3! Его в Азии за $1.5 не купишь(это нужно, чтобы в России его предлагать за 80 руб.) У Arrow он практически в одну цену с LM3S300-IQN25-C2T Texas Instruments, который по $2.91 и тоже ARM Cortex M3, а LPC1343FHN33,551 по $2.97 По характеристикам можно сравнить, но лучше в другом треде. Я вот роюсь по архивам, но ничего по ARM- мелкоконтроллерам под руку не попадается. Ну, а так их можно привезти рублей за 140, но это пока на складе Arrow они не кончились. Другие "глобальники" предлагают его по таким ценам только в количествах от 500 или даже от 1000 штук! Вот, можно здесь в принципе продолжить
http://zx.pk.ru/showthread.php?t=3816&highlight=ARM&page=30
Его в Азии за $1.5 не купишь
я все понимаю, но... меня, как потенциального покупателя, эти проблемы не волнуют. мне этот чип привезут хоть завтра, но по 170р. такая цена за такой чип меня чуть более чем полностью не устраивает. в то же время, на trt.ru и в гамме эти чипы предлагают дешево.
средства разработки - бесплатный gcc и бесплатный "программатор" - телефонный шнурок или даже просто тупо usb (этот чип видится как ДИСК! втыкаешь и скидываешь на диск файл с прошивкой!). есть и опенсорсный jtag, но его надо собирать (или купить в той же гамме отладчик+демо-плату за ВСЕГО 800р).
для меня этот контроллер - отличная замена атмеги8 для домашних поделок (т.е. в среднем. для специфичной задачи, естественно, он может и не подойти).
По 140 р. я тоже могу его привезти через 3 недели из Америки, есть ли он дешевле в Азии, попробую узнать, но мне больше понравился LPC1112FHN33/101,5. Функционала в нем конечно меньше, но зато стоит дешевле $1 в Америке. А для более простых поделок я уже присмотрел себе MC9RS08KA1CPC- MC9RS08KA4CPC. Основное их преимущество кроме низкой цены 18-32 руб. в России это наличие версий в корпусах SOIC, DIP, PDIP, относительно дешевая отладочная плата для версий DIP KA1, KA2 USBSPYDER08. Хотя информацию про LPC1343FHN33,551 я тоже приму к сведению.
Народ, давайте уже завязывать с неАВР чипами в этой теме.
Народ, давайте уже завязывать с неАВР чипами в этой теме.
а что делать если авр загибается?
а что делать если авр загибается?
1. Напиться.
2. Забыться.
3. Закрыть тему.
4. Тему оставить (ибо АВР еще очень много) а с АРМами и прочими ПИКами валить в другое место.
Мне больше нравится вариант 4. Можно в союзе с 1 :)
Есть еще один вариант. Покупать их по тем новым ценам, которые есть в реальности :) Мне лично нравится этот вариант.
ибо АВР еще очень много
а можно узнать список мест, где их много? по адекватным ценам? для темы было бы полезно.
sergey2b
12.09.2010, 21:05
как я читал amtel начал выпускать новые модификации с A в названии
те перебои с доставкой временные
правда не факт что цены вернуться на прежний уровень
еще раз повторяю: эти ВРЕМЕННЫЕ перебои идут уже больше полугода! и про букву А много говорят, да толку нет: на складах ПУСТО! либо более, чем в 2 раза все стало дороже, а когда нормализуется - не знает НИКТО. так что для любительства, видимо, надо искать альтернативу.
а можно узнать список мест, где их много?
Везде их много. У меня дома их мне хватает. Ты побурчать сюда пришел? Или в магазинах уже ни одной АВРки нету? А в запасах у людей? А в старых платах?
Что за детский сад...
Это тема про АВР, и таковой и останется.
правда не факт что цены вернуться на прежний уровеньесли китайцы задрали цены, то можно быть уверенным, в ближайшем будущем не вернутся. А по поводу применения Atmel, конечно будут применять. У нас уже были случаи, когда заказчики, отказывавшиеся покупать по высоким ценам в начале лета, снова возвращаются и покупают, потому что склады со старыми деталями не бездонные, а то что весь народ тупо сидел на Atmel-ах теперь вот и откликнулся этой историей.
Везде их много. У меня дома их мне хватает. Ты побурчать сюда пришел? Или в магазинах уже ни одной АВРки нету? А в запасах у людей? А в старых платах?
Что за детский сад...
да, я пришел побурчать. у тебя дома - это не везде. и в запасах у людей - это тоже не везде. в наших магазинах - нет нужных мне авр! я с начала года хочу купить атмеги8 в планаре, одна местная контора, которая возит детали из РАЗНЫХ других крупных контор, разводит руками: нет на складах. либо появлялись, но уже по не приемлемым ценам (до этого покупали ее за 55р с доставкой к нам, потому и радовала). остальные авр не сильно интересуют, потому что за ту цену лучше взять не авр. и вот я с января месяца мониторю периодически склады, атмел пропал! и везде! и только ленивый еще об этом не говорил. те, кто оказался в заложниках (заложил авр в проект), им деваться некуда, заказывают, только вот, говорят, обещают привезти аж к ноябрю только...
так что делать ли проекты для повторения на авр - это уже вопрос. просто так для себя - у меня есть нелюбимые мной пики, заюзаю, когда будет надо, но остальным точно не предложу делать так же.
psb, я тоже не из лесу вышел :)
Мне в самом деле грустно что творится с Атмелью. Для себя я решил переходить на АРМы, ибо от ПИКов тошнота подползает. Это мое ИМХО, а не повод для холивара.
А пока читаю посты от andrews'a дабы просветиться по поводу армов.
Тема про АВР сидит в "unsorted" по простой причине - они активно применяются на Спектрумах, как контроллеры клавы-мыши-SDкарты. Пока они на Спеках, эта тема будет актуальной.
Давайте уже закончим флеймить, чтоле.
sergey2b
19.09.2010, 12:49
у меня есть собранный на макетке jtag
отличная штука рекомендую всем, отлаживаться очень удобно
хотел сделать печатку методом ЛУТ но нет pcad
если у кого нибудь есть возможность переведите пожалуйста печатку http://pol-sem.narod.ru/AVRminiICE/jtag.htm
Печатная плата в формате P-CAD 2002
в какой нибудь формат типа pdf или png
solegstar
19.09.2010, 13:02
хотел сделать печатку методом ЛУТ но нет pcad
если у кого нибудь есть возможность переведите пожалуйста печатку http://pol-sem.narod.ru/AVRminiICE/jtag.htm
Печатная плата в формате P-CAD 2002
в какой нибудь формат типа pdf или png
пожалуйста - во-вложении в формате pdf, печатка и монтажка.
sergey2b
19.09.2010, 13:24
solegstar большое спасибо
Недавно начал изучать язык С для AVR. Накачал книжек, читаю, пробую. Что то получается, что то нет.. Что то понял, что то так и остаётся не понятным.. Я вот что подумал. Помню, кто то из форумчан организовал уроки по программированию на асме для ZX. Вот бы было замечательно, если бы AVR гуру организовали такие же уроки и по AVR. По моему, был бы идеален такой "алгоритм" уроков. Учитель задаёт задание ученику. По началу простые проекты (там, светиком поморгать, кнопку опросить и т.д.) Чем дальше,тем сложнее проект. Ученик пишет код, учитель его проверяет. Говорит свое мнение, указывает ошибки, говорит, как можно бы было сделать оптимальней. Ученик, если что то не понятно, спрашивает у учителя совет, просит разъяснения принципа работы.. Ни у кого нет желания организовать такое? Я бы с удовольствием поучаствовал.
Mifody, тут едва ли кто будет это делать. Лучше на тематические форумы обращаться. Можешь, например, на forum.GetChip.net зайти, я там Си CodeVision в народные массы проталкиваю :)
Привет Всем! у меня такой вопрос, может не туда пишу но по avr вопрос.
Есть схема с применением Tiny15 но в магазинах и интернет магазинах в наличии не нашел, чем ее можно заменить без изменения схемы и прошивки под нее?
Есть в продаже tiny13 можно ли ее поставить?
Заранее Всем Спсибо !!!
Есть схема с применением Tiny15 но в магазинах и интернет магазинах в наличии не нашел
Вот здесь (http://www.elitan.ru/price/index.php?seenform=y&find=Tiny15) есть только одна.
а в чем различие ATTINY15L-1SU AVR от ATTINY15L-1SU ???
Есть схема с применением Tiny15 но в магазинах и интернет магазинах в наличии не нашел,Довольно много предложений: http://www.efind.ru/icsearch/?search=ATTiny15
чем ее можно заменить без изменения схемы и прошивки под нее?
Есть в продаже tiny13 можно ли ее поставить?Поставить можно, но прошивку надо будет корректировать.
---------- Post added at 22:36 ---------- Previous post was at 22:34 ----------
а в чем различие ATTINY15L-1SU AVR от ATTINY15L-1SU ???Никакого
balu_dark
17.08.2011, 20:37
а в чем различие ATTINY15L-1SU AVR от ATTINY15L-1SU ???
Уверен что не ошибся в копировании? Я вижу что это одно и тоже.
почему разница в цене такая http://www.elitan.ru/price/index.php?seenform=y&find=Tiny15
Я в начале недели, пару дней сидел в инете искал tiny15 по интернет магазинам, небыло в наличии, мне в переписке говорили что их выпуск закончился и что позже сообщат его полный функциональный аналог. я и решил спросить у вас, спецов чем можно заменить.
Огромное Вам Всем СПАСИБО !!! буду заказывать пока есть...
(нашел схемку вольтметра с применением внешнего экрана от motorola V220,V180 вот его и хоца собрать)
---------- Post added at 22:46 ---------- Previous post was at 22:45 ----------
balu_dark, извеняюсь ссылку забыл вставить
balu_dark
17.08.2011, 20:51
Разница в цене может зависить от тучи параметров. начиная от обьема партии и цены за штуку при покупке чипов продавцом. То-есть если они купили 20 чипов по 10$ а потом 1000 по 1$ то будут в каталоге оба варианта висеть - пока дорогие чипы не раскупят.
Так - глянул ссылку.Ага - собственно так и есть . исходя из количества у них осталось что-то из старой - более дорогой партии ну и есть много из более дешевой закупки.
заказал в элитане. завтра проплачу.
Еше вопрос, в схеме не указаны фьюзы, как их выставлять, прикрепил архив со схемой.
пытался связатся с автором схемы, но не на форуме не по маилу не отвечает.
после ремонта сотовых осталось несколько шлейфов с этими экранами, пару хочу поставить в БП.
... в схеме не указаны фьюзы, как их выставлять, прикрепил архив со схемой.Есть же исходник в архиве, а в нем указаны состояния FUSES:
BOD=0;BODLEVEL=1;CKSEL0=0;CKSEL1=0
caro, ну это для вас все есть, а я в них дуб, у меня только в планах их изучать.
Спасибо за фьюзы...
Mifody
сайт http://123avr.com/ в помощъ
---------- Post added at 20:38 ---------- Previous post was at 20:25 ----------
hardy
в общем и целом tini13 новее и понаороченее 15
но в 15ой - 2 таймера
так что несовместимость возможна но не обязательно
---------- Post added at 20:39 ---------- Previous post was at 20:38 ----------
хороший форум по AVR и не только
http://electronix.ru/
там RST7 тусуеться :v2_dizzy_coder:
Помогите моему другу пожалуйста:
"помогите новичку. я спаял свою первую схему и залил первую программу с помощью CVAVR. в процессе исправления недочетов проги, забыл убрать прошивать фьюзы (по крайней мере я думаю что это изза этого)- теперь возникает ошибка во флэше. прошить не получается. Выручайте. не пойму что случилось и как исправить... фьюзы востановил заводские, но это не решило проблему. http://imageshost.ru/photo/146366/id826597.html"
Лок-фузы пускай посмотрит. Возможно он залочил "FLASH Lock bits" на главном окошке CVAVR-программера.
CodeMaster
07.09.2011, 01:37
Помогите товарищи, купил я некую китайскую поделку, которая после установки дров видится в системе как Altera USB Blaster. Вопрос в том, что можно её подружить с AVReal или пользоваться только фирменным софтом Altera (больно он жиром заплыл)?
CodeMaster
07.09.2011, 10:19
Altera USB Blaster
Вот его ТТХ, для уточнения
Features:
Compatible with altera usb blaster
Supported target voltage : 1.0V-5.5V
Support all series of altera device.
CPLD: MAX3000, MAX7000, MAX9000, MAXII...
FPGA: Stratix, StratixII, StratixIII, StratixIV, Cyclone, CycloneII, CycloneIII, CycloneIV, ACES1K, APEX20k, FLEX10K..
Active serial configuration device: EPCS1, EPCS4, EPCS16, EPCS64...
Enhanced configuration device: EPC1, EPC4...
Support AS, PS and JTAG mode
Support SignalTap II embeded logic analyzer
Support NIOS II debug* USB interface
Support Quartus II 4.0 and above version
Support Windows XP, windows Vista, Windows 7 and linux.
Вопрос в том, что можно её подружить с AVReal или пользоваться только фирменным софтом Altera
АВреал с юсббластером не дружит.
Ты собрался прошивать микроконтроллеры? Тогда ты вообще не то приобрел. Да и альтеровский софт шить атмелевские МК по любому не будет. Аминь.
CodeMaster
09.09.2011, 10:19
Ты собрался прошивать микроконтроллеры? Тогда ты вообще не то приобрел.
Ну не только, у меня вообще есть ByteBlasterMV (а чем кстати ByteBlaster II от него отличается?), просто в теме про ПЛИС нет такой шикарной фразы:
Покупать оригинальный атмелевский - вариант для маньяков/олигархов.
А хочется почувствовать себя миллионером из трущоб ;-) STK500 пока в два раза дороже Altera USB Blaster, но думается скоро сравняются. Хотя и не обязательно ждать
самодельный проггер называется USBAsp, программа его поддержки - AVRDude (АВРчувак ). Минус программатора в том, что для его изготовления понадобится и ATMega8 (ATMega48), причем прошитая...
Thomas Fischl's USBasp от дяди Лао сейчас стоит 5 баксов, за такие деньги пожалуй куплю его просто посмотреть.
Хотя странно что в AVReal прогресс остановился и она не работает с USB. Если б подружили, там один фиг USB Blaster или нет, можно было бы и Atmel прошивать.
Ну не только, у меня вообще есть ByteBlasterMV (а чем кстати ByteBlaster II от него отличается?
Ну, байтбластер - наше всё :) Годится и для плисин, и для МК. ВВ2 может прошивать ПЛИСы с мелковольтным питанием. Но он детектится не как ВВ1 (разница в перемычках), поэтому не знаю, будет ли он работать с АВреалом.
STK500 пока в два раза дороже Altera USB Blaster, но думается скоро сравняются
У меня самодельный недоSTK500 на Меге8, себестоимость рублей 100. Поддерживается целой кучей софта. Но, для ПЛИС не годится, разумеется.
Хотя странно что в AVReal прогресс остановился и она не работает с USB
поэтому лучше переползать на USB-проггеры. AVRdude пришла на замену AVreal'у.
Если есть желающие тестировать и ещё один программатор, то
забирать тут tematik1.narod2.ru
Вроде потестил, всё что было (мега8,16,128), но можно добавить свои в xml
С фузами надо дописывать будет ... Это пишите
CodeMaster
11.09.2011, 15:01
ВВ2 может прошивать ПЛИСы с мелковольтным питанием.
Кстати про питание. ByteBlasterMV питается от платы МК (ну или как вариант от ЛПТ, но плату МК всё равно запитывать надо) А как с USB прогерами? Сами они понятно от USB питаются, а МК всё равно отдельно надо запитывать даже если МК или ПЛИС на 5 вольт?
У меня самодельный недоSTK500 на Меге8, себестоимость рублей 100. Поддерживается целой кучей софта. Но, для ПЛИС не годится, разумеется.
поэтому лучше переползать на USB-проггеры. AVRdude пришла на замену AVreal'у.
Вот и переползаю, просто хотелось бы иметь один прогер и один софт для всего как с ByteBlasterMV.
Сами они понятно от USB питаются, а МК всё равно отдельно надо запитывать даже если МК или ПЛИС на 5 вольт?
Тут - хозяин-барин. Я запитываю МК от проггера, но этот вариант хорош, если МК также кушает 5 вольт, а его окружение не жрет слишком много. Обычно ставят джампер/выключатель на подачу питания с проггера на плату с МК. Один USB-разъем может дать до 500мА на нагрузку, ЕМНИП.
Вот и переползаю, просто хотелось бы иметь один прогер и один софт для всего как с ByteBlasterMV.
Увы. всё хорошее проходит. Раньше и колбаса была с мясом...
Скажите пожалуйста, если я у Меги8 включу бит RSTDSBL, то вместо аппаратного сброса появится PORTC.6. Я правильно понимаю? А как тогда прошивать? Ведь RESET используется для прошивки... Или я что то недопонимаю?
Только восстановкой фьюзов специальным девайсом - например "ATmega FuseBit Doctor".
Есть вопрос, не по AVR, но тоже по ATMEL. Есть пара микросхем ATMEL AT89C51 24PI.
Какие среды разработки есть для этих таракоанов? Желательно не ASM, а С или какой нить басик.. А то в лом в асме разбираться, а нужно по быстрому набросать простенькую программку...
Кто знает?
balu_dark
23.10.2011, 16:57
Первые что приходят в голову это IAR Workmench и Keil ну и плюс было пару сред под С51 платформу онли. Они старенькие но рабочие. Правда не помню названия посмотри на сайте Атмел в разделе этого процессора твоего в подразделе софт сторонних произфодителей(3рд пати).
Хотя странно что в AVReal прогресс остановился и она не работает с USB
Таки работает и довольно давно, только с ft2232.
CodeMaster
02.11.2011, 19:21
Только восстановкой фьюзов специальным девайсом - например "ATmega FuseBit Doctor".
А SPIEN он тоже может восстановить?
А SPIEN он тоже может восстановить?
Да, он в основном для этого и используется.
---------- Post added at 19:24 ---------- Previous post was at 19:23 ----------
Вот один из примеров:
http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/
CodeMaster
02.11.2011, 19:29
Вот один из примеров:
http://www.getchip.net/posts/059-isp...usebit-doctor/
Странно что китаёзы такую хрень не делают, придется самому делать :-(
CodeMaster
03.11.2011, 10:38
А в AVR может самостоятельно грузить внешнюю прошивку, например с какой-нибудь SPI-ПЗУ типа 25X80?
А в AVR может самостоятельно грузить внешнюю прошивку, например с какой-нибудь SPI-ПЗУ типа 25X80?В принципе такой вариант возможен.
Для этого надо написать специальный загрузчик, который прописать в зону BOOT.
Такой вариант наверное целесообразно делать только если требуется при старте,
по какому-либо признаку загружать специфическую версию прошивки.
CodeMaster
03.11.2011, 11:57
В принципе такой вариант возможен.
Для этого надо написать специальный загрузчик, который прописать в зону BOOT.
Такой вариант наверное целесообразно делать только если требуется при старте,
по какому-либо признаку загружать специфическую версию прошивки.
Ну да, я пытаюсь сподвигнуть Женю сделать Автономный Тестовый МЕГА-девайс (АТМ) на 8515 ;-) А то памяти МК на всё не хватает, а шить МК каждый раз на ПЦ или иметь 5 штук на каждый случай некошерно. Кстати, а сколько перепрошивок выдерживает 8515?
Кстати, а сколько перепрошивок выдерживает 8515?По Datasheet не менее 10 тысяч циклов стирания/записи.
А то памяти МК на всё не хватает, а шить МК каждый раз на ПЦ или иметь 5 штук на каждый случай некошерно.
Мегу162 воткнуть и не париться объемом памяти.
SoftFelix
24.11.2011, 22:34
Коллеги, подскажите по фьюзам для ATMega8. Сделал (повторил) на этом МК датчик давления масла с цифровой индикацией в машину. Вот тут все подробности: http://www.priorovod.ru/showpost.php?p=1595797&postcount=5. Мегу шил в ПониПроге. Биты выставлял согласно статье автора (http://bascom.at.ua/publ/universalnyj_2kh_kanalnyj_indikator/1-1-0-61):
http://bascom.at.ua/2011/2chan_indik/fise8mgc.jpg
Всё вроде работало нормально, но сегодня проявился глюк с порчей информации в EEPROM Меги. Возможность появления этого глюка описана в статье по ссылке выше:
"...Однако на моделях МК Atmega8A (с индексом А) были замечены сбои работы с памятью EEPROM, что выражалось в нарушении значений данных EEPROM при коммутации напряжения питания устройства. Были приняты меры по повышению помехоустойчивости схемы: установка дросселя в цепи питания и конденсатора повышенной емкости. На крайний случай помогала установка Fuse на тактовую частоту 4 МГц...."
Автор с этой проблемой борется аппаратно. Но мне на другом форуме (http://radiokot.ru/forum/viewtopic.php?p=1038408&sid=d35d43b9de6f8c2206c117f68c44e222#p1038408) подсказали, что надо +ещё надо выставить бит BODEN:
http://c2.at.ua/3m/S_V_A/fise8mgc.jpg
В других местах его тоже очень рекомендовали выставлять, т.к. этот бит включает контроль за напряжением питания:
BODLEVEL и BODEN - это режим контроля за напряжением. Дело в том, что при определенном пороге напряжения, ниже критического уровня, контроллер может начать сильно глючить. Самопроизвольно может запортачить, например, EEPROM или еще что откосить. Ну, а ты как думал, не покорми тебя с пару недель — тоже глючить начнешь :)
Так вот, для решения этой проблемы есть у AVR встроенный супервизор питания. Он следит, чтобы напруга была не ниже адекватного уровня. И если напруги не хватает, то просто прижимает RESET и не дает контроллеру стартовать. Вот эти два фуза и рулят этой фичей. BODEN включает, а BODLEVEL позволяет выбрать критический уровень, один из двух. Какие? Не буду раскрывать, посмотри в даташите (раздел System Control and Reset).
Завтра сниму девайс с машины и перепрограммирую Мегу с этим битом. Помехоустойчивость повыситься? А BODLEVEL оставить пустым (2.7В) или туда тоже галку поставить (4.0В)? Как я понял, это пороги питающего напряжения при которых МК сам блокирует свою работу?
Подниму старую темку.. Я тут немного затупил...((( Мне нужно передавать и принимать данные от двух далласов, подключенных к разным портам тиньки. А процедуры w1_read и w1_write работают с одним портом, прописанным при инициализации.. Как в таком случае можно поступить?
SpecialistMK87
22.10.2012, 13:45
перепрограммирую Мегу с этим битом. Помехоустойчивость повыситься? А BODLEVEL оставить пустым (2.7В) или туда тоже галку поставить (4.0В)? Как я понял, это пороги питающего напряжения при которых МК сам блокирует свою работу?
при провале питания до этих значений формируется сброс микроконтроллера. Я бы галку на 4В поставил. Если есть сильные броски по питанию то помехоустойчивость увеличится
Очень рекомендую поставить по входу конденсатор побольше в параллель, хотя бы 1000мкф, затем последовательно дроссель тоже побольше и опять конденсатор в параллель. И к каждому такому еще 0.1 мкФ - высокочастотные шумы гасить
SoftFelix
22.10.2012, 15:55
SpecialistMK87, эх, давно это было... :) Галку поставил на 4В и выставил BODEN. За год девайс сглючил только один раз и то не фатально - динамическая индикация слетела. Передёрнул зажигание и опять всё заработало. С железом ничего не делал, хотя электролиты надо бы туда побольше поставить.
а по моему вопросу нет никаких идей? Что скажут гуру?
SpecialistMK87
22.10.2012, 18:26
процедуры w1_read и w1_write работают с одним портом, прописанным при инициализации..
наверно проще всего написать еще две функции которые работают с другим портом :)
а вообще вопрос не очень понятен без исходника
---------- Post added at 18:26 ---------- Previous post was at 18:22 ----------
SpecialistMK87, эх, давно это было... :) Галку поставил на 4В и выставил BODEN. За год девайс сглючил только один раз и то не фатально - динамическая индикация слетела. Передёрнул зажигание и опять всё заработало. С железом ничего не делал, хотя электролиты надо бы туда побольше поставить.
критерий истины - эксперимент ;)
Так, с 1wire разобрался.. Помогите пожалуйста другим советом.. Что то сам никак не могу разобраться...
В общем у меня есть 8 битовых переменных bit0, bit1,.......bit7. И есть unsigned char data. Мне нужно, чтоб bit0 была нулевым битом data, bit1 первым битом data и т.д. Пробовал присвоить data.0=bit0. Ругается Error: the first argument of the '.' operator must be of 'struct' or 'union' type. Но что то я никак не могу разобраться со структурами и объединениями... Надеюсь, внятно задал вопрос...
Vladimir_S
26.10.2012, 16:18
Не знаю на чем пишешь, на С - #define bit0 data.0
---------- Post added at 16:18 ---------- Previous post was at 16:04 ----------
Да, bit0...bit7 объявлять не надо.
Да, на С. CVAVR
#define bit0 data.0
Это получится то же самое. Я как понял, на С нельзя объявить биты как составные части байтовой переменной. Так же нельзя отдельно изменять биты переменной (как я пытался сделать data.0=чего то там..) Преременная должна быть структурой или объединением. Я сегодня пол дня читал про эти структуры, так нифига и не понял..((
Vladimir_S
26.10.2012, 16:44
Это получится то же самое. Я как понял, на С нельзя объявить биты как составные части байтовой переменной. Так же нельзя отдельно изменять биты переменной (как я пытался сделать data.0=чего то там..) Преременная должна быть структурой или объединением. Я сегодня пол дня читал про эти структуры, так нифига и не понял..((
На С можно все, только надо знать как. На МicroC например data.0 не прокатит, надо data.F0. Также и синтаксис #define у разных С немного отличаются.
---------- Post added at 16:44 ---------- Previous post was at 16:31 ----------
Кстати объявляются не только отдельные биты переменной, но и отдельные биты порта микроконтроллера.
SpecialistMK87
26.10.2012, 19:32
struct test_struc {
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
};
static struct test_struc data;
...
// а теперь когда надо обратиться к битам data
// пишешь
data.bit0 = 0;
Во, откопал эту старую тему. У меня проблема: не хочет прошиваться мега32 через avreal+avrealshell+byteblaster, ругается на то, что байтбластера не видит. Сам бластер собран по схеме http://www.zxkit.ru/katalog-1/zxkit-003-1, такой с двумя разъемами - для альтер и для атмег. Альтеры через него (и MAX Plus) прекрасно шьются, а вот МК не видится. Для прошивания используется ноутбук IBM ThinkPad 600 (PII-233 под Win98).
Что я делаю не так? (без использования оболочки, из командной строки, тоже выдается "Altera ByteBlaster not found")
CodeMaster
20.07.2017, 06:01
Вот возник вдруг вопрос: а каковы вообще корни появления этого хождения по граблям длящегося годами? Почему базовые установки фьюзов не включить в прошивку? Не помню для какого МК, но я видел прошивку состоящую из двух частей.
Вот возник вдруг вопрос: а каковы вообще корни появления этого хождения по граблям длящегося годами? Почему базовые установки фьюзов не включить в прошивку? Не помню для какого МК, но я видел прошивку состоящую из двух частей.
Ну щаз вроде Microchip купил avr, может поправят со временем. В PICах фьюзы задаются прям в прошивке и сохраняются в HEX. Хотя при программировании можно и менять, конечно. Но стандарт для _всех_ PIC программаторов один - галка стоит - включено, не стоит - выключено (что на мой взгляд совершенно логично).
галка стоит - включено, не стоит - выключено
А "включается" оно сбросом в "0" соответствующего бита, да? ;)
А "включается" оно сбросом в "0" соответствующего бита, да? ;)
Нет, включается оно установкой в "1" соответствующего бита, как у нормальных людей.
включается оно установкой в "1" соответствующего бита, как у нормальных людей
Configuration Bits
The configuration bits can be programmed (read as '0'), or left unprogrammed (read as '1'), to select various device configurations.
PIC16F84A CONFIGURATION WORD
bit 13-4 CP: Code Protection bit
1 = Code protection disabled
0 = All program memory is code protected
bit 3 /PWRTE: Power-up Timer Enable bit
1 = Power-up Timer is disabled
0 = Power-up Timer is enabled
bit 2 WDTE: Watchdog Timer Enable bit
1 = WDT enabled — вот он, единственный "НОРМАЛЬНЫЙ" бит!
0 = WDT disabled
bit 1-0 FOSC1:FOSC0: Oscillator Selection bits
11 = RC oscillator
10 = HS oscillator
01 = XT oscillator
00 = LP oscillator
Engbedded Atmel AVR® Fuse Calculator (http://www.engbedded.com/fusecalc):
http://i94.fastpic.ru/big/2017/0720/64/bdfde4b7f41a3347e6c816654c0f3864.jpg
Рассуждая далее: неподключенный вход логического элемента ненормален (1), чистые ПЗУ ненормальны (FF), Z80 ненормален (только регистр F нормальный), ZXBus ненормальна, выборка портов в Speccy ненормальна, дальше продолжать?
HardWareMan
20.07.2017, 14:46
creator, букварь на атмел говорит так: если бит запрограммирован, то он = 0, иначе он стёрт и = 1. Как это трактуют конкретно программаторы - это личное дело самих программаторов. Профессиональные используют наличие галочки как запрограммирован, т.е. = 0. Ну а ненормальные кустарные поделки обозначают наличием галочки = 1. Вот и весь сказ. Другое дело, что и нормальные и ненормальные выдают для контроля фьюзы в HEX виде.
CodeMaster
20.07.2017, 20:00
букварь на атмел говорит так: если бит запрограммирован, то он = 0, иначе он стёрт и = 1.
Ну, опять началось ;-) Я ведь именно про это и спрашивал: нахрена этот гиморр, почему фьюзы сразу не включили в файл прошивки как в PIC'ах? Просто, что бы боло о чём поспрашивать и поговорить или ещё какой смысл был?
HardWareMan
21.07.2017, 06:55
CodeMaster, не может опять начаться то, что нкогда не прекращалось. :) Весь смысл в том, что для некоторых МК фьюз это ячейка памяти с адресом за пределами сегмента ПЗУ (как правило за пределами вообще любой внутренней памяти). И для этих МК возможно вносить фьюз в хвосте S-Record HEX файла. И программатор его поймет (и простит). А вот есть МК, у которых фьюзы требуют отдельного телодвижения, отличающегося от программирования памяти. И тут уже никак, только отдельно. Нужно просто выяснить, как обстоят дела для конкретно нужного вам МК. Обратитесь к его букварю. :)
CodeMaster
23.07.2017, 20:54
И программатор его поймет (и простит). А вот есть МК, у которых фьюзы требуют отдельного телодвижения, отличающегося от программирования памяти. И тут уже никак, только отдельно.
Но прошивает их тот же программатор? Просто не вижу проблемы использовать формат файла с адресами для основной прошивки и например с именами для фьюзов, если они программируются не в память.
Нужно просто выяснить, как обстоят дела для конкретно нужного вам МК.
Это был риторический a.k.a. философский вопрос ;-)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot