Отладочная плата для PIC24H и dsPIC33 Microstick

Отладочная плата Microstick Development Board помогает легко и эффективно разрабатывать устройства с применением 16-и разрядных микроконтроллеров и Цифровых Сигнальных контроллеров Microchip.

 Microstick

Ключевые особенности

  • Позволяет отлаживать контроллеры dsPIC33F и PIC24H
  • Малый размер и интегрированный USB программатор/отладчик (подобный PICkit2 и PICkit3)
  • Питание от USB
  • Контроллеры dsPIC33F и PIC24H в DIP корпусах установлены в колодку - позволяют легкую замену
  • Малый размер - меньше чем пачка жевательной резинки - 20 x 76мм
  • Все выводы доступны для подключения к плате для прототипирования

Плата Microstick предоставляет вам недорогой путь для начала освоения 16-и разрядных микроконтроллеров. Плата содержит интегрированный отладчик и программатор. Может использоваться автономно или подключаться к плате прототипирования для создания своих устройств. Среда разработки MPLAB IDE поддерживает программирование и отладку Microstick.

Комплект поставки:

  1. плата Microstick
  2. USB кабель
  3. 2шт контактные линейки для подключения к плате прототипирования
  4. контроллер PIC24HJ64GP502 - 28-и выводный 16-и разрядный контроллер с быстродействием 40MIPS, 64Кб Fkash памяти программ и 8Кб ОЗУ
  5. цифровой сигнальный контроллер dsPIC33FJ64MC802 - 28-и выводный 16-и разрядный контроллер моторного семейства с быстродействием 40MIPS, 64Кб Fkash памяти программ и 16Кб ОЗУ
  6. инструкция по установке, принципиальная схема

Осваиваем работу с PIC24H

Что необходимо для работы:

  1. Установленная среда разработки MPLAB IDE (бесплатно скачивается с сайта www.microchip.com/mplab)
  2. Компилятор MPLAB С30 (Вы можете скачать бесплатную LITE версию с http://www.microchip.com/C30)
  3. Плата Microstick

Рассматриваемые примеры:

  1. Мигаем светодиодом (изменяем состояние портов).
  2. Что такое Trap? Тестируем немаскируемые прерывания при возникновении ошибок адреса, математических операций. Переключение на альтернативную таблицу векторов.
  3. PPS. Переназначение функций выводов контроллера. Управляем яркостью светодиода с помощью ШИМ.
  4. Управление тактовыми генераторами. Переключение тактовой частоты. Ассемблерные вставки.

Мигаем светодиодом (изменяем состояние портов)

С домашней странички Microstick можно скачать простой пример, в котором конфигурируемся микроконтроллер и в цикле, связанным с прерыванием по таймеру Timer1 периодически меняет состояние портов на противоположное. Так как к одному из выводов Microstick подключен светодиод, то мы увидим его мигание.

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

Для начала научимся собирать проект и запускать на плате Microstick.

Запускаем проект

Выбираем в качестве отладчика Microstick

Собираем проект

Если нет ошибок, то можно запрограммировать контроллер (Debugger→Program) и запустить программу на выполнение (Run).

Точки останова, наблюдение за переменными и другие функции отладчика аналогичны описанным в "Руководстве пользователя PICkit2"

Что такое Trap?

Контроллеры PIC24 и dsPIC имеют специальный механизм для отслеживания критических ошибок, таких как математические (деление на ноль), ошибки стека, сбой тактового генератора, ошибка выравнивания адреса программ и данных. При возникновении таких исключений (Trap) формируются немаскируемые прерывания с наивысшим приоритетом.

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

Для начала определим тесты:

/* --------------------------------------------------------
Тесты.
1 в определении Теста включает соответствующий тест
0 - выключает
-------------------------------------------------------- */ 
// Проверка ошибки адреса
#define ADDRES_ERR 0 	//  0 если убрать тест из кода
// Проверка деления на 0
#define DIV0_ERR 0 	//  0 если убрать тест из кода

Затем создадим код, формирующий те или иные ошибки:

Деление на ноль:

#if (DIV0_ERR) // Проверка деления на 0
 unsigned int VarTestA;
 unsigned int VarTestB;
 unsigned int VarTestC;	
 
 VarTestA = 0;
 VarTestB = 100;
 VarTestC = VarTestB / VarTestA;	// После этого уходим в Trap		
#endif

Ошибка адреса:

#if (ADDRES_ERR)	// Create Address Error Trap
 unsigned int *addrPtr=(unsigned int *) 0xFFFF;
 *addrPtr=*addrPtr+1;   		// После этого уходим в Trap
 Nop();
 Nop();
#endif

Если задаем

#define ADDRES_ERR 1

то в скомпилированный код будет включен соответствующий кусок кода и после запуска программы на выполнение мы попадем на участок обработки соответствующей ошибки.

Естественно что в отлаженной программе такие ошибки не должны возникать ни при каких условиях, но в реальности, из-за помех и др. непредсказуемых ситуаций, существует ненулевая вероятность возникновения той или иной ошибки. Встроенные механизмы отлова таких ситуаций и правильная их обработка могут помочь избежать непредвиденных последствий.

16-и разрядные контроллеры PIC24 и dsPIC имеют две таблицы векторов прерываний - основную и альтернативную. Две таблицы векторов позволяют за один командный такт поменять логику обработки прерываний с помощью установки всего одного бита. Это обеспечивает удобный способ переключения, например, между основным и служебным кодом (например, реализация бутлоадера, функций самотестирования и т.п.).

Для проверки переключения на альтернативную таблицу установите

#define ALTERNATIVE_VECTORS  1

для включения следующего кода:

#if (ALTERNATIVE_VECTORS)	// альтернативная таблица векторов
 INTCON2bits.ALTIVT = ALTERNATIVE_VECTORS;
#endif
Замечание
Не забывайте описать обработчики разрешенных прерываний для основной таблицы векторов и альтернативной!

Переназначение функций выводов контроллера. Управляем яркостью светодиода с помощью ШИМ.

У многих 16-и разрядных контроллеров Microchip есть замечательная возможность - PPS (Peripheral Pin Select) - возможность переназначения функций выводов микроконтроллера (подробнее см. http://gamma.spb.ru/articles.php?i=75)

В качестве примера рассмотрим назначение функции ШИМ на вывод порта RB15 для плавного изменения яркости подключенного к RB15 светодиода платы Microstick.

если включим возможность переключения тактовой частоты

#define SWITCH_CLOCK_TEST	1

и, соответственно, выполним следующий код

#if (SWITCH_CLOCK_TEST)
 clockSwitch(NOSC_FRCDIV16); // уменьшаем тактовую частоту в 16 раз
#endif

то тактовая частота, а соответственно и частота ШИМ-а уменьшится в 16 раз.

Полезные ссылки и литература

Ссылка на описание, учебные примеры и документацию: http://www.microchip.com/microstick

Уроки PIC24 http://piclist.ru/learning_PIC24_1/learning_PIC24_1.html

Книги

Лусио ди Джасио «Программирование на С микроконтроллеров PIC24» (Lucio Di Jasio. Programming 16-bit PIC Microcontrollers in С: Learning to Fly the PIC24) можно купить в книжных магазинах или заказать через интернет

microstick.txt · Последние изменения: 27/11/2022.20:47 (внешнее изменение)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0