Инструменты пользователя

Инструменты сайта


mk8:project1

Проект HelloWorld для в IDE1886 (СС7A)

Введение

8-ми разрядные микроконтроллеры являются менее производительными и содержат намного меньше периферийных блоков по сравнению с 32-разрядными собратьями. Однако их применение актуально еще и по сей день. В данной статье рассмотрим методику работы с данными МК на примере 1886ВЕ4У в составе отладочной платы Eval9. Микроконтроллер 1886ВЕ4 предназначен для реализации USB-интерфейса в различных системах связи и управления. Для работы используется IDE1886 - интегрированная среда разработки, предназначенная для внутрисхемной отладки программ на языках «C» и ассемблер и программирования внутренней памяти микроконтроллеров семейства 1886ВЕ.

Подготовка к работе со средой

Перед началом работы со средствами разработки, необходимо создать папку для будущего проекта. Теперь запускаем среду IDE1886 с правами администратора (кликнуть на иконку IDE1886 правой кнопкой и выбрать "запустить от имени администратора").

Руководство пользователя IDE1886 доступно как на официальном сайте компании «Миландр», так и в корневой папке среды.
Программатор формирует напряжение питания только для программируемого микроконтроллера, поэтому на плате в режиме программирования предусмотрено разделение линий питания всей платы и программируемого микроконтроллера.
Не включайте основное питание при подключенном программаторе! Микросхема может выйти из строя.

У Вас при открытии программы справа вверху в окне должно быть написано: USB программатор отключён. Убедитесь, что ваша плата находится в режиме программирования переключатель SW2 в положении OFF. Затем подключите программатор к демоплате по разъёму XP2 таким образом как на фото.( Красный провод "висит" со стороны единицы).

Теперь необходимо убедиться в том что у нас указан верный путь к используемому компилятору. Перейдя по вкладке Tools→ Compiler Options. Мы будем использовать компилятор CC7A. Демо версия и руководство пользователя на данный компилятор также доступны на сайте компании Миландр. Ограничения демо версии заключается в объёме кода 2к инструкций. Нам как раз хватит!

Проект в IDE1886

Выбираем File→New→Project. В открывшемся окне выбираем компилятор, который будем использовать и задаем имя проекта.

После создания проекта автоматически будет создан main.c в котором уже присутствует функция «сервера» прерываний от различной периферии.

#include <VE?_CC.h>
#include "int17xxx.h"
#pragma origin 0x8

interrupt iServer(void)
{
    multi_interrupt_entry_and_save

 PERIPHERAL_service:
 TMR0_service:
    // save on demand: PRODL,PRODH,TBLPTRH,TBLPTRL,FSR0,FSR1
    /* process Timer 0 interrupt */
    // T0IF is automatically cleared when the CPU vectors to 0x10
    // restore on demand: PRODL,PRODH,TBLPTRH,TBLPTRL,FSR0,FSR1
 T0CKI_service:
 INT_service:
    interrupt_exit_and_restore
}
/******************/
void main(void)
{
}

Директива pragma origin 0x8 задает стартовый адрес таблицы векторов прерываний. Директива #include "int17xxx.h" подключает функции обработчиков прерываний. Поскольку перед нами стоит задача просто поморгать светодиодами, то можно смело удалить всё кроме #include <VE?_CC.h>. С помощью данной директивы мы подключаем библиотечный Header файл для для работы с определённым чипом. В мои руки попала плата 1886ВЕ4У, следовательно, указываем: #include "1886VE4d.h". и оставляем главную функцию.

Все заголовочные файлы библиотек доступны в папке со средой IDE1886 и располагаются по пути: Локальный диск:\…\IDE1886_8.8\Headers

Теперь нужно обязательно скопировать заголовочный файл из папки со средой в папку проекта. Дополнительно можно также подключить его к дереву проекта. Теперь перейдем к коду проекта

#include "1886VE4d.h"
void Delay (); // прототип функции задержки
void main()
{
     
  PORTE = 0; // значение на порте E =0
  DDRE = 0; // настроили порт Е на выход (по сбросу на вход)
 
  while(1){ // main loop
uns32 i;
   PORTE = 0x1E;
   Delay ();    
   PORTE = 0x2E;
   Delay ();
   PORTE = 0x4E;
   Delay ();
   PORTE = 0x8E;  
   Delay ();  
   PORTE = 0x1D;      
   Delay ();       
   PORTE = 0x2D;
   Delay ();  
   PORTE = 0x4D; 
   Delay (); 
   PORTE = 0x8D; 
   Delay ();
  }
}
void Delay () //функция задержки
{
     uns32 i;
      for (i = 0; i < 10000; i++);
 }

В самой программе через небольшую задержку, описанную функцией Delay (), происходит изменение значений порта E таким образом, что мы видим эффект «Диодной ленты». Компилируем наш проект по вкладке Execute→Compile или используем сочетание клавиш Ctrl+F9. И в основном окне IDE переключаемся на вкладку Programming.

Прошивка микроконтроллера

Ещё раз проверим: Что наша плата находится в режиме программирования - переключатель SW2 в положении OFF.

По результату компиляции окно Programming заполнилось определенной комбинаций чисел в шестнадцатеричном формате. Также это поле можно заполнить с клавиатуры. Теперь перейдем к окну Program Memory. Это окно отвечает за программирование памяти программ.

Здесь происходит установка конфигурационных бит МК.

Processor Mode – выбор режима работы Микроконтроллер;

Brown-out Detect – система контроля питания включена;

Oscillator – LF выбор источника тактирования равной частоте контроллера USB (рекомендуется выбирать при работе с отладочными платами для МК 1886ВЕ3-ВЕ4)

На отладочных платах для МК 1886ВЕ2, 1886ВЕ5, 1886ВЕ6, 1886ВЕ7 установлен внешний кварцевый резонатор. И при работе с ними рекомендуется использовать режим XT.

WDT Prescaler – предделитель сторожевого таймера выключен.

Итак, выполнив установку конфигурационных бит, рассмотрим подробно работу с основными функциональными клавишами среды:

1) Read - чтение памяти микросхемы.

2) Erase - стирание памяти микросхемы.
Перед прошивкой рекомендуется провести операцию чтения, выбрав “Read”, чтобы убедиться, что в микросхеме нет ПО. В случае, если считались данные, необходимо их стереть, выбрав "Erase". Если основное поле среды заполнилась нулями, то нужно провести компиляцию проекта ещё раз и поле заполниться данными (также, возможно также ввести данные с клавиатуры,

либо можно загрузить из файла, щелкнув правой кнопкой мыши в любом месте основного поля и выбрав "Load from file". Загружать возможно файлы формата .hex и .bin.

3) Program - программирование микросхемы. Теперь можно выбирать “Program” и заливать в МК нашу программу. Но перед программирование рекомендуется проверить установку конфигурационных бит.

4) Verify - верификация памяти микросхем; IDE сравнивание данные в основном поле среды с данными, зашитыми в микросхему Убедиться, что МК успешно запрограммирован, можно, используя "Verify". После успешной верификации отсоединяем программатор, подаем основное питание 5 В, и переключаем SW2.

Описанный основной алгоритм работы IDE представлен на рисунке.

mk8/project1.txt · Последние изменения: 2019/09/27 12:32 — maria