Программатор (та штуковина, которая зальет программу в мозг микроконтроллера)




Скачать 1.17 Mb.
Название Программатор (та штуковина, которая зальет программу в мозг микроконтроллера)
страница 1/11
Тип Программа
rykovodstvo.ru > Руководство эксплуатация > Программа
  1   2   3   4   5   6   7   8   9   10   11
Сайт по BASCOM_AVR

http://decada.org.ru/project/lessons/bascom_avr/01/

Смотреть внимательно.
Что же нужно, чтобы начать?
Вот что потребуется, чтобы написать первую программу - светодиодную моргалку:
- Компьютер с параллельным портом под управлением Win9x или круче
- Установленный на него BASCOM AVR
- Даташит на МК AT90S2313
- Программатор (та штуковина, которая зальет программу в мозг микроконтроллера)
- Тестовая установка с пресловутым МК

Все это будет подробно описано ниже. Настоятельно рекомендую использовать AT90S2313!

Компьютер
На компе должна стоять ОС Windows 95 (или понавороченнее). Если вы хотите использовать простой самодельный программатор, то непременно потребуется параллельный порт. К тому же, если ваша ОС из породы NT, то для нормальной работы потребуется маленькая утилитка. Но о ней позже.

Установка BASCOM
Выкачайте бесплатную версию BASCOM. Эта версия не позволяет компилировать код, выходной размер которого более 2КБ (на самом деле для нас это не проблема, этого за глаза хватит). Распакуйте архив во временную папку, запустите setup.exe и следуйте указаниям установки. Банально просто, не правда ли?
К сожалению, в сети сейчас сложно найти русификатор, поэтому я выложил одну из немногих уцелевших русских версий Bascom AVR. Скачать можно по этой ссылке. Для установки русификатора просто скопируйтей файл в папку с вашим Bascom и запустите. Работает только с версией 1.11.8.1.

Сборка (или покупка) программатора
Программатор - это устройство, загружающее скомпилированный код в программную память МК. Что может быть проще, чем купить программатор? Если вы купили STK500, то помимо программатора вы получите кучу вкусностей, например светодиоды. Купили? Значит, валите отсюда, вам тут точно делать нечего. Гораздо проще и приятнее (да и намного дешевле) собрать собственный программатор. Схем в Сети очень много. Рекомендую использовать совместимый с STK200/300 программатор. Так же для аппарата потребуется управляющая программа. Здесь и в дальнейшем будет использоваться TWinAVR. Она проста в обращении и даже не требует установки.
Самый удобный способ программирования - внутрисхемный. Как это? Да очень просто. Вы ставите на плату с готовым устройством разъём и подцепляете к нему специализированные лапки МК. Использовать эти лапки для чего-то еще не рекомендуется. Например, если программа МК начнет выполняться при подключенном программаторе, что-нибудь да погорит. Конечно, это не проблема при использовании большого МК с достаточным числом портов. Но при использовании слабеньких МК в условиях жесткой экономии ног нужно некоторое решение. Одно из них - применение программатора с шинным формирователем. Его выводы могут находиться в трех состояних: логические 1, 0 и еще Z-состояние с высоким сопротивлением выхода. Вот тогда при программировании ничего не погорит.
В целом процесс прошивки выглядит следующим образом:
1. Подадим землю на вывод Reset. Это переведет МК в режим программирования.
2. Установим на ножке MOSI (ножка приема данных) необходимый логический уровень, согласно программе.
3. Подадим на тактовую ножку импульс логической 1. МК считает значение с ножки MOSI и положит в память.
4. Повторим шаги 2 и 3, пока в память не запишется слово.
5. Считаем это слово через ножку MISO (выход данных с МК).
6. Сравним полученное слово с отправленным.
7. Повторяем все, пока вся программа не будет загружена и проверена.
Программатор должен быть запитан от внешнего источника +5 вольт, так как мы используем шинный формирователь только для переключения уровней. Остерегайтесь того, что некоторые современные ПК и ноутбуки не выдают не полные +5 вольт, а только +3. Печально...

ПО для программатора
Раздобудьте TWinAVR, например, трением. Эта программа заставляет ПК взаимодействовать с МК через программатор. Программа не требует установки, просто распакуйте в любое удобное место и запускайте. Теперь надо научить программу использовать напряжение с пинов порта для управления шинным формирователем. Откройте окно настроек, уберите галочку Vcc. Теперь напряжение на порте появляется только при запущенной программе. Если теперь использовать это напряжения для программирования, то в тот момент, когда программа неактивна, напряжение на порту исчезает, и выводы формирователя оказываются как раз в Z-состоянии. Кстати, проверьте заодно настройки LPT порта. Его адрес по умолчанию &378 (проверьте в BIOS). Если нет, то срочно меняйте настройки.

Программа UserPort
Если вы используете OC Windows семейства NT, TWinAVR не сможет получить прямого доступа к LPT порту. Эта проблема решается использованием специальной утилиты, дающей прямой доступ к порту. Одна из них - UserPort. Её нужно установить и настроить перед использованием TWinAVR. Сначала скачайте архив с программой. Распакуйте его и скопируйте файл userport.sys в C:\Windows\System32\drivers. Запустите userport.exe. В левом списке выберите 3BC-3BF и 3E8-3FF и нажмите "Remove". Повторите эти же действия для всех записей в правом окне. В конце в левом окне должно остаться 200-37F. Нажмите "Start". Теперь к указанным адресам всегда будет прямой доступ. Если вам нужен LPT порт для других целей, например принтера, то запустите userport.exe и нажмите "Stop". Работа драйвера будет остановлена.

Настройка BASCOM по умолчанию
Свежеустановленный BASCOM уже и так имеет кучу разнообразных настроек. Но все таки не помешает посмотреть, что же там творится такое. Нажимаем Options->Compiler->Chip:



Вкладка "Chip" позволяет вам выбрать любой из поддерживаемых типов контроллеров. Выберем для первых экспериментов AT90S2313 (а бесплатная версия ничего серьезнее вам и не предложит). Теперь, если мы сохраним наш проект .bas, рядом с ним будет еще и конфигурационный файл, например такой. Это текстовый файл, который можно открыть любым редактором. Он содержит все настройки, которые вы задали для своего проекта. Это очень простой способ управлять настройками. Однако, если вы захотите передать кому-нибудь свой проект, то, помимо исходного файла, не забудьте передать и .cfg файл с настройками компилятора.
Второй очень удобный способ (возможно, более простой для опытных пользователей) - помещение всех настроек прямо в исходный код программы. При этом код выглядит примерно так:



Первая строка кода указывает на то, что мы будем использовать контроллер AT90S2313, и компилятору нужно загрузить соответствующий файл описаний. Вторая строка указывает, что мы будем использовать кварцевый резонатор на 4МГц. Все служебные слова можно просмотреть в справке BASCOM (Help->Index):
 

$ASM $BAUD $BAUD1 $BGF

$BOOT $CRYSTAL $DATA $DBG

$DEFAULT $EEPROM $EEPROMHEX $EXTERNAL

$INCLUDE $LCD $LCDRS $INC

$LCDPUTCTRL $LCDPUTDATA $LCDVFO $LIB

$MAP $NOINIT $NORAMCLEAR $REGFILE

$ROMSTART $SERIALINPUT $SERIALINPUT1 $SERIALINPUT2LCD

$SERIALOUTPUT $SERIALOUTPUT1 $SIM $TINY

$WAITSTATE $XRAMSIZE $XRAMSTART

Читайте справку, чтобы выяснить, зачем нужны все эти служебные выражения. С некоторыми из них мы познакомимся позже.
Теперь, если в исходном файле прописаны все необходимые для компиляции настройки, вы можете отсылать файл проекта уже без дополнительного файла конфигурации.
Моргало светодиодное
Светодиодная моргалка - это, пожалуй, примерно тоже, что и "Hello world!", только с хардкорным электрическим уклоном. Это тот самый этап, когда вы будете готовы к запуску целой системы и проверки её работоспособности.

Для начала соберите небольшую тестовую схему.



К микроконтроллеру в стандартной обвязке (под стандартной обвязкой имеется ввиду источник питания и кварцевый резонатор с подтягивающими конденсаторами) необходимо подключить светодиод. Анодом подключите его к любому выводу порта D (читайте даташит, смотрите распиновку!), а катодом - к земле через резистор 220-560 ом.
Теперь приступим. Запустите BASCOM, создайте новый проект (File->New).



В появившемся окне редактора наберите следующую программу:



Заметьте: редактор осуществляет подсветку синтаксиса при вводе. Это очень удобно, сразу заметно, если вы где-то допустили ошибку.

В этой простейшей программе порт D настраивается на вывод. Потом на него подается значение 255. Таким образом все биты порта примут значение 1. Обратите внимание, что аппаратно доступны только младшие 7 бит (PD0-PD6).
По истечении 50 миллисекунд на порту D устанавливается значение 0, и все его биты также принимают значение 0. Через 50 миллисекунд цикл повторяется. В результате светодиод очень часто моргает.

После того, как вы ввели текст, нажмите File->Save и сохраните файл проекта в подходящее место. Назовите его ledflasher.bas. Так как BASCOM создает множество файлов после компиляции, неплохо было бы сохранять каждый проект в отдельную папку.

Зададим теперь настройки контроллера. Жмем Options->Compiler->Chip:



Чип по умолчанию установлен как AT90S2313:



Выберите вкладку Communication:



По умолчанию значение тактовой частоты установлено 10 МГц, но так как мы используем кварц на 4 МГц, выберите значение 4000000 из списка Frequency. Необходимо задавать тактовоую частоту кварца, который будет использоваться в схеме, так как все временные величины в программе рассчитываются из этого значения:



После того, как вы сохранили проект, нажмите Program->Compile (F7). BASCOM проверит синтаксис, и, если не найдет ни одной досадной ошибки, скомпилирует программу и скажет, сколько памяти она займет в МК указанного типа:



Теперь убедитесь, что питание на вашу схему подано, программатор подключен к устройству и ПК:



В BASCOM нажмите Program->Send to chip (F4). Если вы настроили BASCOM на использование внешнего компилятора, описаного ранее,появится окно TWinAVR. Дальше эта программа сделает следующее:
- Остановит работу МК (подаст 0 на линию сброса)
- Подключит шинный формирователь (74HCT244) к лапкам МК
- Поместит содержимое ledflasher.bin в программную память МК
- Сравнит загруженную программу с оригиналом
- Отключит шинный формирователь от МК
- Освободит линию сброса (подаст 1), МК начнет выполнять программу.
При программировании информация о текущих процессах отображается в отдельном окне:



После завершения программирования вам придется вручную закрыть TWinAVR, этого BASCOM за вас не сделает.

В награду за наши старания мы получим шустро моргающий светодиод.
Теперь поиграемся с кодом программы. Измените значения после команды Waitms, чтобы изменить время вспышек и пауз между ними. Нажмите F7, чтобы перекомпилировать программу, перепрограммируйте чип клавишей F4 и следите за изменениями в работе!

Теперь, когда все подключено, вы заметите, что при следующей загрузке компьютера контроллер не включится, пока вы не запустите TWinAVR. Это происходит оттого, что компьютер удерживает линию сброса на низком уровне, а TWinAVR сбрасывает её после записи программы или чтения конфигурации.

Бейсик в BASCOM
Разработчики BASCOM утверждают, что он не является "диалектом" бейсика. Однако его код невероятно похож на Microsoft QBasic. Если вы рождены на заре компутерной цивилизации, то, наверное, вспомните голый DOS, веселый Norton и, конечно же, Quick Basic. Я вот эту эру еще застал, хотя был совсем маленький...
Если вам необходимо руководство по QBasic, гляньте тут:
Официальный сайт Шустрого Барсика
Новости QBasic (жутко любопытно узнать, что же там)
Обучалки по бейсику
Руководства по программированию

Погуглите вокруг и вы найдете огромные кучи бесполезной или интересной информации, а также дофига пособий по бейсику (они вам непременно пригодятся!).

Основные отличия BASCOM от QBasic
Одно действие на строке
BASCOM не позволяет производить более одной математической операции на одной строке.
Так писать нельзя:

Numsquares = ( Length * Width ) / Surfsquare

А нужно так:

Numsquares = Length * Width
Numsquares = Numsquares / Surfsquare

Эта особенность объясняется тем, что МК под любыми угрозами не выполнит за один такт два действия. А разбивать сложную строку на составляющие BASCOM за вас не будет.

Операторы ввода/вывода
Оператор INPUT в QBasic возвращает введеные пользователем с клавиатуры данные. В BASCOM он считывает данные по RS-232 с UART микроконтроллера.
Аналогично, в QBasic оператор PRINT выводит данные на экран, а в BASCOM он выводит их по RS-232 на UART.


Предполагается, что вы уже умеете писать на бейсике для ПК. Дальше будет несколько статей про особенности использования переменных, массивов и прочих неотъемлемых атрибутов языка программирования.

На страницах часто встречается такое слово, "переменная". А кто-нибудь вообще объяснил, что это такое? А это всего лишь мнемоническое представление ячейки памяти с некоторыми данными, которе используется в процедурах для быстрого осуществления доступа к памяти. Ничего сложного, правда? Мы используем слово переменная, подразумевая, что данные в этой злосчастной ячейке могут изменяться. (а если данные не меняются, то такие ущербные переменные мы называем константы)
Давайте для примера как-нибудь обозначим количество букв в слове. Объявим переменную BUKVO. В слове хренлогрыз десять букв. Поэтому положим в переменную BUKVO значение 10. В реальности мы положим число 10 в область памяти, зарезервированную переменной BUKVO. Когда в программе мы обратимся к этой переменной, BASCOM на самом деле обратится к участку памяти, закрепленному за этой переменной. Компилятор сам придумывает и запоминает, где какую переменную хранить. Нам об этом можно даже не думать.

Имена переменных
Имя переменной может быть до 32 символов длиной. В названии можно использовать цифры и латинские буковки. Убедитесь, что выбранное имя не совпадает со служебными словами. Например, нельзя создавать переменную с названием "Config". Имена переменных НЕ чувствительны к регистру.

В BASCOM есть следующие типы переменных:

Bit
Хранит значение 0 или 1. Используйте этот тип для хранения состояния кнопки, переключателя, ножки порта ввода/вывода - всего, что может быть включено или выключено.


Byte
Хранит в памяти один байт (8 бит). Испотльзуйте этот тип для хранения числа от 0 до 255 или для символа. Особенно полезно использовать этот тип в маленьких МК, когда память очень ограничена. Храните в этой переменной любое число, которое сюда влезет. Но помните: если к переменной типа byte со значением 255 прибавить 1, то она сбросится до 0.


Integer
Эта переменная занимает в памяти два байта и хранит числа от -32768 до +32767. Так как один бит зарезервирован под знак числа, оставшиеся 15 делятся пополам на положительные и отрицательные значения. Храните в этом типе все числа, которым нужен знак, а также все числа, которые вписываются в указанный диапазон. Кстати, при переполнении переменной данного типа, её значение изменится с +32767 на -32768.


Word
Это двухбайтный тип, не имеющий знака. Для хранения числа доступны все 16 бит, поэтому диапазон допустимых чисел от 0 до 65535. Эту переменную можно использовать для сравнительно больших величин, не имеющих знака. При переполнении значение 65535 изменяется до 0.


Long
Переменная такого типа занимает в памяти 4 байта. Из 32 бит один отводится под знак, а все остальные хранят модуль числа. Таким образом, хранимый диапазон составляет от -2147483648 до +2147483647. В переменной типа Long можно хранить все значения, которые не влезли в Integer. При переполнении, как и все переменные, сбросится до минимального значения диапазона.


Single
Четырехбайтный тип для хранения чисел с плавающей точкой. Запоминает числа от 1.5х10^45 до 3.4х10^38 со знаком. Используйте только его для хранения дробных чисел. Например, если вы положите число 3.1415926 в переменную типа Integer, то обратно получите только 3, так как дробная часть пропадет. Переменная типа Single может хранить большой диапазон дробных положительных и отрицательных чисел. Но будьте внимательны: вы можете потерять некоторую точность при преобразованиях. Например:

Dim A as Single 'Объявим переменную A типа Single
A = 0.987654321 'Положим в нее некоторое число

После этих операций в переменной A окажется значение 0.9876543. Это потому, что переменная помнит 9 символов (включая целую часть и точку).


String
Переменная этого типа помнит строку из нескольких символов. Каждый символ занимает в памяти один байт. Последовательность символов заканчивается так называемым "нулевым байтом", поэтому он также занимает место в памяти.

Главное в выборе типа переменной - определиться, какие типы данных в ней будут храниться. Выбирайте тип наименьшего размера, в который еще вписывается необходимое число, чтобы не тратить память попусту. Также помните, что при использовании типа Integer программа будет гораздо компактнее и быстрее, чем при использовании типа Single. Операции с плавающими точками во все времена были довольно медленным занятием.
  1   2   3   4   5   6   7   8   9   10   11

Похожие:

Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon П рограмматор BeeProg+
Программатор BeeProg+ сверхбыстрый программатор с интерфейсами us 0 hs и lpt и функцией внутрисхемного программирования
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Курсовая работа
Написать программу, которая формирует базу «Телефонный справочник», содержащую следующие сведения: фио, адрес, телефон. Просмотр...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon «Информационная система обменного пункта»
Написать программу – информационную систему обменного пункта, которая должна предоставлять доступ к следующей информации
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon В. П. Захаров Корпусная лингвистика
Оно включает также программу учебной дисциплины «Корпусная лингвистика», которая изучается студентами отделения структурной и прикладной...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Лабораторная работа №4 по дисциплине «Системы ввода/вывода и периферийные устройства»
Разработать и написать драйвер клавиатуры для учебно-лабораторного стенда sdk написать тестовую программу для разработанного драйвера,...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Примерная программа разработана в соответствии с требованиями Федеральных...
Настоящая программа разработано на основе Примерной программы, которая представляет собой усовершенствованную примерную программу...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Учебное пособие к выполнению лабораторных работ по дисциплине «Микропроцессорная техника»
Разработка прикладного программного обеспечения для микропроцессорных систем на основе микроконтроллера
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Программатор пс-24 Паспорт 6577-008-01477812-2000 пс
Настоящее описание предназначено для изучения работы радиосистемы передачи извещений (рспи) «Купол»
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Пилотной программе авиаперевозок в пфо срочно требуются летчики....
Еще три – в апреле, остальные – до конца года. Эксплуатация самолетов заточена под программу перевозок в Приволжском округе, которая...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Решение проблемы с антивирусом avast
Обязательно удалить антивирусную программу avast (Пуск – Панель управления – Установка и удаление программ – Найти программу Avast...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Дэниел Амен Измени мозг изменится и тело
Дается подробная информация о продуктах питания, витаминах и пищевых добавках, улучшающих работу мозга
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Инструкция по программированию в данной инструкции описывается порядок...
Устройство сопряжения персонального компьютера с радиостанцией (программатор) для данного типа радиостанции
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Инструкция по установке программ цветоподбора r-m
Установка программы. Для того чтобы установить программу со скаченных образов, необходимо либо записать их на привычные диски, либо...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Модели блока часов реального времени для микроконтроллера
Предложена регистровая модель часов реального времени, с описанием на языке программирования. Проведено моделирование на основе программного...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon Программатор тахографов cd400 паспорт руководство по эксплуатации cd concept S. P. R. L. Бельгия
Прибор позволяет определять характеристический коэффициент транспортного средства (W), коэффициент тахографа (К), может использоваться...
Программатор (та штуковина, которая зальет программу в мозг микроконтроллера) icon «23» июня 2015 г г. Кемерово в прокопьевске будут судить мошенницу-«целительницу»,...
Следователем отдела полиции «Тырган» отдела мвд россии по г. Прокопьевску в суд направлено уголовное дело в отношении цыганки, которая...

Руководство, инструкция по применению






При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск