Переназначенный модуль UART CCS PIC18f252

#uart #pic

#uart #рис

Вопрос:

Я снял проект с участием PIC18F252. Код скомпилирован с помощью CCS, и я просто переношу его в MPLAB. PIC имеет 1 модуль UART, его контакты TX и RX — RC6 и RC7. Я не эксперт по микросхемам, но я немного поработал над ними и посмотрел онлайн, прежде чем публиковать этот вопрос.

Исходный код использует

 #use rs232(baud=9600,xmit=PIN_B5,rcv=PIN_B4,restart_wdt)
 

Насколько я вижу, PIC не разрешает переназначение.
Так как же это возможно?
Что CCS делает «под капотом»?
Значит, выводами UART являются RB4 и RB5?

Комментарии:

1. CCS использует свою собственную библиотеку для настройки UART с помощью #use rs232(бод = 9600, xmit= PIN_B5, rcv= PIN_B4, restart_wdt). Это конкретное определение CCS IDE, которое не может быть найдено точно таким же в других. В MPLAB вам приходится делать все это, потому что в MPLAB нет библиотек. Он имеет инструмент под названием MPLAB Code Configurator (MCC), который предоставляет интерфейс для упрощения настройки микросхемы и периферийных устройств и генерации кода периферийного драйвера. Но, к сожалению, он не поддерживает PIC18F252, поскольку это старый чип. Вывод, вам нужно написать код драйвера UART с нуля.

2. Спасибо! Я думаю, мне лучше просто обновить pic. Спасибо.

3. Да, используйте более новые продукты, такие как PIC18 (L) FxxKxx или PIC18 (L) FxxJxx или PIC18 (L) FxxQxx. Они улучшены и поддерживаются MCC.

4. Хорошо, спасибо, кстати, я не нахожу флага, чтобы установить этот поток как «решаемый»…

Ответ №1:

Это:

 #use rs232(baud=9600,xmit=PIN_B5,rcv=PIN_B4,restart_wdt)
 

является расширением компилятора CCS для записи некоторых конфигурационных данных в регистр конфигурации модуля UART (например, скорость передачи данных) и не может использоваться с компилятором xc8. Посмотрите в своем техническом описании, как настроить модуль UART.

Комментарии:

1. Привет, спасибо за ваш вклад. Да, я понял это, но я хотел знать, что CCS делает в своей библиотеке, чтобы иметь возможность использовать другие контакты, отличные от выделенных MSSP. Как упоминал Козмотроник, я думаю, что CCS просто делает то, что делал бы драйвер UART, Но с использованием любых выводов (последовательное переключение выводов и битов и т. Д.). Поэтому, если бы я хотел использовать аналогичную библиотеку в xc8, мне пришлось бы написать драйвер, который может принимать любые выводы и заставлять их действовать какПередача / передача данных, что является проблемой. Так что в моем случае обновление PIC — гораздо более простое и надежное решение.

2. Если CCS использует другие контакты, чем указано в техническом описании (RC4 и RC5), они будут использовать программный UART, а не модуль, входящий в состав контроллера.