Категории
|
Здравствуйте, гость ( Вход | Регистрация )
|
Категории
Последние записи
Обновление макросов для компилятора С30 Самодиагностика PIC'ов Перевод описания на С30 Перевод PIC24FJ128GA010 Макросы работы с компиляторм С30 Блок питания для программатора USB Раздел 9.4 выбор выводов для периферии семейства PIC24FJ64GA004 Режим энергосбережения в PIC24FJ128GA010 Family Глава 6. Контроллер прерываний PIC24FJ128GA010 Family Клон ИСД2 Последние комментарии
DL36 в Самодиагностика PIC'ов
urry в Самодиагностика PIC'ов DL36 в Макросы работы с компиляторм С30 Гость Alex B. в Макросы работы с компиляторм С30 rubel в Перевод PIC24FJ128GA010 DL36 в Перевод PIC24FJ128GA010 rubel в Перевод PIC24FJ128GA010 DL36 в Макросы работы с компиляторм С30 DL36 в Макросы работы с компиляторм С30 Гость в Макросы работы с компиляторм С30 Дополнительные ссылки
|
Добавлены макросы для работы с внешними прерываниями и изменениями состояния Код EDGE_INT(Pin1) = 1; - Позволяет установить фронт срабатывания F_INT(Pin1) = 0; - Позволяет проверить или сбросить флаг P_INT(Pin1,pri); - установить приоритет обозначенного вывода INTInterrupt(Pin1) - сделать подстановку в функции обработчика прерывания CH_EN(Pin1) = 1; - Разрешить контроль изменения состояния CH_PU(Pin1) = 1; - Включить подтягивающие резисторы Обновление на 24 марта 2010.
[attachment=1992:calcCrc32_1.0.0.43.rar] Для повышения надежности устройств часто применяют самодиагностирование контроллера, в ходе которого производится проверка целостности ROM, RAM и работоспособности внешних модулей. Предлагаемый модуль crc32.c предназначен для диагностирования ROM-памяти методом подсчета контрольной суммы ее содержимого и сравнения с зашитой константой. К нему прилагается утилита calcCrc32.exe для управления HEX-файлом: подсчета исходной контрольной суммы и упаковки ее в HEX-файл. Подробности - в файле readme.txt Только исполняемый файл
calcCrc32_1.0.0.43.rar ( 109.92 килобайт )
Кол-во скачиваний: 166По просьбе testerа Добавил интеграцию с МПЛАБ В MPLAB в "Build options/Project/Custom build" в поле "Post-build step" пишу: Код "C:\#Work\#Project\Project58\Cod\calcCrc32\calcCrc32.exe" -o C:\#Work\#Project\Project58\Cod\PICC18\Test.crc -e -q Код "C:\#Work\#Project\Project58\Cod\calcCrc32\calcCrc32.exe" Путь к программе Наличие кавычек обязательноКод -o C:\#Work\#Project\Project58\Cod\PICC18\Test.crc Загружаем файл настроек-о загрузить xx.crc файл -e выполнить расчет -q завершить программу И при каждом build (Ctrl+F10) программа calcCrc32 будет запускаться автоматически, править HEX в соотв. с настройками my_project.crc и сама закрываться. Но пока компилировать надо два раза. После первой компиляции правится хекс и crc32.h а после второй компилятор правит cof для симуляции. Если работать под отладчиком то второй раз можно не компилировать.
Прикрепленные файлы
Страничка из описания на С30, управление разрешением и запрещением прерываний
8.8_ENABLING_DISABLING_INTERRUPTS.pdf ( 50.63 килобайт )
Кол-во скачиваний: 512Вот и полный перевод нашелся
MPLAB_C_COMPILER.pdf ( 1.52 мегабайт )
Кол-во скачиваний: 1484
Нумерация страниц и расположение абзацев соответствует оригиналу. Параграф содержит описание портов ввода/вывода.
Section_9.0__PORTS.pdf ( 71.13 килобайт )
Кол-во скачиваний: 593Параграф содержит описание тактовых генераторов, настройки и переключения между ними.
Section_7.0_OSCILLATOR_CONFIGURATION.pdf ( 131.83 килобайт )
Кол-во скачиваний: 432Надеюсь, что прогресс имеется. В этом деле мне оказал неоценимую помощь Romantic Полезно почитать обзорные статьи по 16 битным микроконтроллерам от Microchip Technology Inc Тут можно найти перевод документации по PIC24H На сайте Валентина Володина можно найти переводы ds30F MPLAB ASM30 Ассемблера и много другой полезной информации.
В продолжение разговора о макросах для работы с портами начатого здесь Выкладываю откорректированный файл макросов для работы с портами. Оригинал Для работы необходимо прочитать статью и скачать необходимый для работы файл bfa.h. Обновление на 24 марта 2010.
c30portmacros_1.0.36a_.rar ( 3.94 килобайт )
Кол-во скачиваний: 125Добавлены макросы для работы с внешними прерываниями и изменениями состояния Код Определив вывод для внешнего прерывания BIT_DATA A, 14, H Можно сделать EDGE_INT(Pin1) = 1; - Позволяет установить фронт срабатывания F_INT(Pin1) = 0; - Позволяет проверить или сбросить флаг P_INT(Pin1,pri); - установить приоритет обозначенного вывода INTInterrupt(Pin1) - сделать подстановку в функции обработчика прерывания Определив вывод для контроля изменения BIT_DATA B, 15, H Можно сделать CH_EN(Pin1) = 1; - Разрешить контроль изменения состояния CH_PU(Pin1) = 1; - Включить подтягивающие резисторы Обновление на 5 апреля 2009
c30portmacros.rar ( 1.42 килобайт )
Кол-во скачиваний: 219Добавил настройку УАРТов выглядит это так Описываем скорость и номкр порта Код #define BRGUART2 9600, 2 До использования задаем частоту генератора Код #define FREQ 8000000 // Частота генератора в герцах Макрос так выглядит. Код #define TST_BRGH(uartN) BFA(BFA_RD, U##uartN##MODE, BRGH) #define _setBrg(valBrg,uartN) if(TST_BRGH(uartN)) \ U##uartN##BRG=(FREQ)/2/4/(valBrg)-1;\ else \ U##uartN##BRG=(FREQ)/2/16/(valBrg) -1; #define SET_BRGH(x) _setBrg(x) Применяем так Код SET_BRGH(BRGUART2); Добавил макрос для инструкции DISI Код #define DISI(n) \ asm volatile ("disi #%0" \ : /* no outputs */ \ : "i" (n)) С учетом версии 1.0.24 (от 4 марта 2009) файла bfa.h который надо включить в проект для возможности обоюдного использования макросов.
c30portmacros1024.rar ( 1.17 килобайт )
Кол-во скачиваний: 413Исправил по состоянию на 03 03 2009 с учетом атомарной работы.
c30portmacros.rar ( 1.17 килобайт )
Кол-во скачиваний: 196Макрос позволяет однажды определив вывод Код #define LED0 A, 10, L #define LED1 A, 7, L #define LED2 A, 8, L производить с ним следующие действия Код OFF(LED0); //Погасить светодиод OFF(LED1); //Погасить светодиод OFF(LED2); //Погасить светодиод if(SIGNAL(KN0)) //проверить кнопку { ............. } OPEND_DRAIN_ON(OUT0); // Установить режим выхода с открытым сток SET_DIR(OUT0,Out); // Настроить на вывод AD1PCFG = ENABLE_ALL_DIG_0_15; ANALOG_INPUT_ON(1); // Подключить аналоговый вход ANALOG_INPUT_OFF(1); // Отключить аналоговый вход if (SIGNAL(IMPUT0)) // На входе уровень активный? ON(OUT0); // Установить активный уровень OFF(OUT0); // Сбросить активный уровень HIGH(OUT0); // Установить высокий уровень LOW(OUT0); // Установить низкий уровень TOGGLE(OUT0); // Инвертировать выход if (LATCH(OUT0)) // Уровень активный? if (DIR_IS_OUT(OUT0)) // Направление на вывод? if (DIR_IS_IN(OUT0)) // Направление на вход? Tmp = BITNUM(OUT0); // Возвращает номер бита Дя работы с аналоговыми входами надо добавить #include "adc.h" Для работы с TNKernel привязывая системные тики к миллисекундам удобно пользоваться таким макросом Код #define FREQ 8000000 // Системная частота в Герцах #define OS_TMR_TICK 5000 // Количество тактов процессора в одном системном тике /* Количество системных тиков в миллисекундах */ static inline unsigned OS_MS(unsigned var) { return FREQ / 2 / 1000 * (var) / OS_TMR_TICK; } И например так ret = tn_task_sleep(OS_MS(100)); используя можно надеяться, что время через которое может быть вызвана задача будет около 100 мСек. Тоже только для jacOs и PICC18 будет выглядеть так Код #define FREQ 8000000 // Системная частота в Герцах
#define OS_TMR_TICK 5000 // Количество тактов процессора в одном системном тике /* Количество системных тиков в миллисекундах */ static inline unsigned OS_MS(unsigned var) { return FREQ / 4 / 1000 * (var) / OS_TMR_TICK; }
Вот такой простенький блок питания позволит питать разрабатываемые USB устройства. Ничего сверхъестественного но устройство будет получать нужное питание и самое главное USB порт будет защищен. В приложении файлы в формате ПКАД2006 и ПКАД2002.
Прикрепленные изображения
Прикрепленные файлы
Power.rar ( 32.88 килобайт )
Кол-во скачиваний: 402
Power2002.rar ( 26.21 килобайт )
Кол-во скачиваний: 320
Описаны способы подключения выводов периферии на нужный вывод для семейства PIC24FJ64GA004 Действительно было очень плохо, в таком виде оно никому не надо. Поправил, надеюсь теперь будет лучше. Выводы сделал. Кто увидел ошибку прошу поправить.
Прикрепленные файлы
Описаны режимы применяемые для сокращения потребления энергии применяемые в микроконтроллерах PIC24F. Если кто найдет ошибку прошу поправить.
Прикрепленные файлы
Нашел несколько несоответствий в таблицах, поправил как считаю нужным. Если кто найдет ошибки просьба поправить.
Прикрепленные файлы
Финальная версия клона моей работы. Впервые эта версия появилась приблизительно 2 года назад. В сентябре 2007 года я её несколько переработал и выложил электрониксе. После этого были небольшие доработки учтенные в этом варианте. Этот вариант я сделал более сотни раз и он работает в Украине и России с пиками 16,18,24 серий. Во вложении файл в формате ПИКДа 2006 и спецификация к нему. В виду большого количества вопросов, добавил прошивку.
Firmwares.rar ( 14.17 килобайт )
Кол-во скачиваний: 702Pcb
Clone_ICD2.rar ( 70.24 килобайт )
Кол-во скачиваний: 887По пожеланиям трудящихся одна из первых версий Микрочиповского ИСД2
ICD2_Microchip.pdf ( 77.03 килобайт )
Кол-во скачиваний: 855
Прикрепленные изображения
|