Visits: 1471
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 ...Это может быть интересно
- JDY-62A Audio bluetooth moduleVisits: 1614 Простой модуль для простого аудио блютуса. Встроенные подсказки на английском языке. Модуль включён, режим муте – после подачи питания. Контроль разряда батареи предупреждение что батарея разряжена и необходима …
- ESP8266 процедура получение данных даты и времени от серверов точного времени.Visits: 5771 Эта функция доступна уже в версии 1.6.1. Для многих приложений, необходимо часы реального времени, если в вашем проекте есть модуль WiFI ESP8266, то легко можно сделать следующим образом. …
- Простой цифровой милливольтметр постоянного токаVisits: 4020 Простой цифровой вольтметр постоянного тока. Три диапазона измерений с автоматическим переключением 1 – 0,001 – 0,999 V, 2 – 0,01-9,99 V, 3 – 0,1-99,9. Четыре управляемых выхода с возможностью задания функции контроля …
- Стабилизатор тока на SN3350, часть 2Visits: 1125 Если вам необходимо разработать устройство с применением мощных светодиодов, то никак не обойтись без применения стабилизатора тока. На настоящий момент стабилизаторы тока являются самым эффективным механизмом, для питания светодиода в течение всего …
- MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовVisits: 586 При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном …
- Мультизоновый индикатор-терморегулятор ch-c3010Visits: 1139 Часто возникает необходимость получить информацию по температуре с множества точек контроля. Вам необходимо знать температуру в комнате, в коридоре, температуру на улице, а в погребе (или на балконе) …
- Altium Designer my setup system and project structureVisits: 590 Используйте только последнее обновление!!! Updates https://catcatcat.d-lan.dp.ua/altium-designer-my-libraries-project-templates-system-settings-by-catcatcat-v23-09/ Тут хочу поделиться как я настраиваю Altium Designer и как я использую файлы DXPPreferences.DXPPrf для быстрой конфигурации и получения …
- Проект с использованием MCC часть 03Visits: 1533 Первым делом перенастроим регистры конфигурации, следующим образом: Отключим выход генератора (CLKOUT function is disabled. I/O function on the CLKOUT pin) Включим сторожевой таймер (WDT enabled) После этой настройки …
- Altium Designer my Libraries, Project templates, System settings by Catcatcat V23.09Visits: 228 September 2023 component base update. Release updates V. – 23_09 added new components. Changed the structure of the database. Configuration file name – DXPPreferences1.DXPPrf. Added project CLUBBEST_50_Light. …
- Ссылки на интересные источникиVisits: 804 Сбор 3D моделей от André L’Hérault конденсаторы, резисторы, индуктивности dropbox IPC-SM-782 Surface Mount Design and Land Pattern Standard Видео уроки по Altium designer Alexey Sabunin https://www.youtube.com/channel/UCG7N5CqXpyK8nQjr1EmMgng Сергей Булавинов https://www.youtube.com/channel/UCISAMXRnN_Qw9UTjUwZI1Jw Robert Feranec https://www.youtube.com/user/matarofe …