Views: 1721
EUSART – Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. … читать на вики. Внесем изменения в нашу схему, добавим выход на USART. Для связи с ПК будем использовать любой мост в моем случае я буду использовать MCP2200 – USB – USB Bridge. Наша схема преобразиться следующим образом:
Добавим ЮСБ-мост MCP2200. Его назначение конвертирование данных из UART в USB для обмена данными с ПК. При подключении MCCP2200 к ПК у вас появиться виртуальный ком порт. Номер порта будет соответствовать свободному месту, например у меня при подключении COM4.
Посмотреть какие поты уже заняты можно если в Диспетчере устройств установить Показать скрытые устройства
Можно увидеть на какие порты уже установлены драйвера.
Если в вашем пока достаточно много скрытых USB портов, то просто удалите ненужные, предварительно отключите ваше устройство,
и выполните переподключение вашего устройства и система сама установит его на первое свободное место.
Хочу напомнить если у вас не W10, то возможно придется установить драйвера для MCP2200 в ручную для этого посетите страницу http://www.microchip.com/wwwproducts/en/mcp2200 и скачайте драйвера в разделе документация MCP2200/MCP2221 Windows Driver & Installer.
Когда с железом и разобрались и проблем нету, можно использовать любую терминальную прогу для работы с компортом. Примере я буду использовать китайскую прогу UartAssist из-за её простоты и удобства обновления.
Дополнительно, для тех кто первый раз столкнется с работой MCP2200, для работы индикаторов передачи (светодиоды LD4 и LD5) их надо активировать с помощью утилиты MCP2200 Configuration Utility v1.3.1.
Теперь вернемся к нашему проекту. Запустим MCC
Обратимся в окно ресурсы устройства (Device Resources)
Двойной клик добавим модуль в проект:
Предварительно обратимся к пин модулю и учитывая, что у нас появился модуль EUSART настроим порт RB5 на вход.
Перейдем к конфигурированию модуля EUART , будем использовать Easy Setup (Простая настройка)
Первоначально нас интересуют функции Enable EUART – включить модуль, Enable Transmit – включить передатчик, Enable EUART Interrupts – включить прерывание от модуля. Запустим генерацию кода
Выполните предложенные изменения, для EUART.
Для пин менеджера примените только настройка портов:
Какие мы получили изменения в проекте
Файл interrupt_manager.c – добавлены функции прерывания, от модуля EUART
else if(INTCONbits.PEIE == 1 && PIE1bits.TXIE == 1 && PIR1bits.TXIF == 1)
{
EUSART_Transmit_ISR();
}
else if(INTCONbits.PEIE == 1 && PIE1bits.RCIE == 1 && PIR1bits.RCIF == 1)
{
EUSART_Receive_ISR();
}
От функции передачи EUSART_Transmit_ISR(), от функции приема EUSART_Receive_ISR().
Сгенерированы файлы библиотеки eusart.h и eusart.c
Нам доступны следующие функции
void EUSART_Initialize(void) – инициализация модуля, настраиваются заданные параметры, в нашем варианте буфер настроен на 8 байт.
uint8_t EUSART_Read(void) – получение данных из буфера приема.
void EUSART_Write(uint8_t txData) – запись байта данных.
void EUSART_Transmit_ISR(void) – функции передачи байта данных с использованием прерывания.
void EUSART_Receive_ISR(void) – функция приема и обработки байта данных с использованием прерываний.
Надо понять как происходит включение модуля, для этого MCC добавил функции EUSART_Initialize() в функцию SYSTEM_Initialize().
На настоящий момент сама функция выглядит так;
void SYSTEM_Initialize(void)
{
PIN_MANAGER_Initialize();
OSCILLATOR_Initialize();
WDT_Initialize();
PWM1_Initialize();
PWM2_Initialize();
TMR2_Initialize();
TMR0_Initialize();
EUSART_Initialize();
}
Т.е. MCC полностью подготовила модуль к работе, надо его как-то протестировать. Для начала проверим передачу данных из контроллера в ПК.
Подключаем к USB наш проект, проверяем, что установлен компорт. Запускаем терминальную программу, например: UartAssist.exe
Выберем компорт нашего устройства
Откроем компорт
Проверим, чтобы подключение было успешным:
Для передачи данных в ПК используем стандартную библиотечную функцию printf, но она так просто не заработает. Что для этого надо делать. Первое на забыть прописать в начале программы, что мы используем функцию из библиотеки
#include <stdio.h> // для функции printf
Второе, это необходимо сделать переопределение
// переопределение вывода для библиотеки stdio.h
void putch(unsigned char byte)
{
while(TXIF == 0); // ожидание готовности передачи
TXREG = byte;
}//
Третье, разрешить прерывание от периферийных модулей, т.к. EUSART относиться к ним и при его инициализации разрешаются прерывания от этого модуля.
// Enable the Peripheral Interrupts
INTERRUPT_PeripheralInterruptEnable();
Для тестирования впишем строки
printf("\n\r");
printf("\t\t Catcatcat electronics \n\r"); //Enable redirect STDIO to USART before using printf statements
printf("\t\t******************\n\r");
printf("\t\t Привет МИР!!! \n\r");
printf("\t\t===============\n\n\r");
и запустим наш проект, результат должен быть вывод на терминал, сообщения
На этом этапе мы научились посылать строки в порт и получать информацию на терминальной программе!
Проект для тестирования
Проект с использованием MCC часть 15 813.09 KB 3 downloads
Навастриваем УСАРТ , учимся работать с компортом,...Проект с использованием MCC часть 15 (схема, Altium Designer) 940.62 KB 62 downloads
Схема - проект в формате Altium Designer ...Это может быть интересно
MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМViews: 1265 Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые …
Audio-bluetooth modules BK8000L (noname)Views: 842 Еще один вариант, так сказать недоразумения Audio-bluetooth modules BK8000L (noname). Его отличительной маркировкой служат два отверстия в плате и надпись R2. Отличают его от модулей на чипе BK8000L, …
MPLAB® Harmony – или как это просто! Часть 2.Views: 2925 Часть вторая – Первая программа на PIC32. Музыкальная тема к статье, слушаем: Для начала изучения PIC32 надо иметь или демоплату или самому её изготовить имея микроконтроллер. Начнем из …
CLUBBEST M68Views: 15CLUBBEST M68 – это результат реализации технологии RTMV-technology. Особенностью этого проекта в отсутствии каких либо органов ручной настройки и максимально низкая стоимость. Естественно есть и недостатки обусловленные применением недорогих …
Регулятор влажностиViews: 1360 Регулятор ILLISSI-CH-1000 предназначен для контроля и регулировки относительной влажности в диапазоне от 0 до 100%. Регулятор позволяет работать как в режиме осушения, так и увлажнения. Для измерения возможно …
Проект с использованием MCC часть 11Views: 993 Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость …
MAX7219/21 и 8х8 LED дисплеиViews: 1059 MAX7219, MAX7221 предназначены для вывода информации на 8 разрядов семисегментного индикатора, но на нем легко организовать вывод на светодиодные индикаторы 8х8. продолжение следует…. Это может быть интересно
12-BIT A/D CONVERTER WITH THRESHOLD DETECT на примере PIC24FJ128GA204Views: 936 Введение. 12-битный модуль A/D Converter является усовершенствованной версией 10-битного модуля, предлагаемого на некоторых устройствах PIC24. Оба модуля являются преобразователями, в своих ядрах, с последовательным приближением (SAR), в окружении …
LED модуль P10C4V12Views: 3309 LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость …
MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)Views: 1392 Введение MTouch ® Модуль Емкостной Библиотеки для MPLAB ® X Code Configurator (MCC) позволяет быстро и легко генерировать решение кода на Cи для емкостной сенсорной кнопки, датчика приближения и слайдера.
















