Проект с использованием MCC часть 15

Views: 1611


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

Навастриваем УСАРТ , учимся работать с компортом,...
Login Required Message:
Значок

Проект с использованием MCC часть 15 (схема, Altium Designer) 940.62 KB 62 downloads

Схема - проект в формате Altium Designer   ...


Это может быть интересно


  • Универсальный терморегулятор ch-c3000Универсальный терморегулятор ch-c3000
    Views: 3063 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …
  • Бегущие огни на WS2812BБегущие огни на WS2812B
    Views: 4927 В настоящее время большой популярностью стали пользоваться светодиоды со встроенным драйвером WS2812B. Текущий проект предназначен показать возможность использования и управления этими светодиодами. Это и проект и исследование по …
  • УКВ – радиоприем, часть 1УКВ – радиоприем, часть 1
    Views: 9684 Музыкальная тема к статье, слушаем: Первый мой радиоприемник, выглядел так. Использовал исключительно в школе на уроках, держась за одно ухо и преданно смотря на училку и сладко улыбаясь. …
  • Toyota Auto Fader – Модуль включения усилителяToyota Auto Fader – Модуль включения усилителя
    Views: 1999 Toyota Auto Fader – Модуль включения усилителя. Часто автолюбители прибегают к замене штатного головного устройства на универсальное мультимедийное, в котором значительно расширены функциональные возможности. Если возникает желание оставить …
  • JDY-62A Audio bluetooth moduleJDY-62A Audio bluetooth module
    Views: 1756 Простой модуль для простого аудио блютуса. Встроенные подсказки на английском языке. Модуль включён, режим муте – после подачи питания. Контроль разряда батареи предупреждение что батарея разряжена и необходима …
  • DS18B20 – удаленный контроль температурыDS18B20 – удаленный контроль температуры
    Views: 3111 Контроль температуры с использованием датчиков температуры DS18B20 и платы ILLISSI-4B-09-primum Проект позволяет подключать к плате ILLISSI-4B-09-primum до 16 датчиков температуры DS18B20, удаленных более 300 метров,  и выводить информацию …
  • Мультимедийная сеть – AVC-LAN TOYOTAМультимедийная сеть – AVC-LAN TOYOTA
    Views: 5810 AVC LAN – протокол обмена данными мультимедийных систем автомобиля. Кодирование данных. При кодировании различаться три типа данных : преамбула – её назначение, это сообщение устройствам на шине, что начинается передача данных. …
  • MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовMCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов
    Views: 650 При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном …
  • Стабилизатор тока для светодиодов SN3350Стабилизатор тока для светодиодов SN3350
    Views: 2661 SN3350 ближайший аналог ZXLD1350 Как собрать готовый вариант, читайте во второй части – http://catcatcat.d-lan.dp.ua/stabilizator-toka-na-sn3350-chast-2/ 40V  драйвер светодиодов с внутренним ключом  SN3350 – импульсный понижающий преобразователь, разработанный для того, чтобы эффективно управлять одним или …
  • Применение typedef, struct и unionПрименение typedef, struct и union
    Views: 8801 Полезные описания переменных Часто необходимо в памяти расположить последовательно разные виды данных, что бы потом можно было их использовать. Полезные ссылки Взято и переработано с сайта http://www.butovo.com/~zss/cpp/struct.htm http://cppstudio.com/post/9172/ …



Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее