无法将 UART 连接到 PIC24FJ128GA204 上的 RB6

问题描述 投票:0回答:2

使用 RPOR 寄存器,我可以成功将 RB3 或 RB15 或其他引脚连接到 UART (1-4) ...但不能连接 RB6。我在文档或勘误表中没有看到任何内容表明 RB6 (RP6) 是唯一不可用的。有什么猜测吗?

这是当我将 RB3、RB6 和 RC3 全部连接到 UART0 时的 RPOR 寄存器。 RB3 和 RC3 工作正常,但 RB6 仅作为数字输出工作。

03D6    RPOR0   0x0000  0       00000000 00000000   '..'
03D8    RPOR1   0x0300  768     00000011 00000000   '..'
03DA    RPOR2   0x0000  0       00000000 00000000   '..'
03DC    RPOR3   0x0003  3       00000000 00000011   '..'
03DE    RPOR4   0x0000  0       00000000 00000000   '..'
03E0    RPOR5   0x0000  0       00000000 00000000   '..'
03E2    RPOR6   0x0000  0       00000000 00000000   '..'
03E4    RPOR7   0x0000  0       00000000 00000000   '..'
03E6    RPOR8   0x0000  0       00000000 00000000   '..'
03E8    RPOR9   0x0300  768     00000011 00000000   '..'
03EA    RPOR10  0x0000  0       00000000 00000000   '..'
03EC    RPOR11  0x0700  1792    00000111 00000000   '..'
03EE    RPOR12  0x0008  8       00000000 00001000   '..'

以下是 PORTB 的设置方式:

018A    TRISB   0x22A2  8866    00100010 10100010   '"¢'
018C    PORTB   0x00C8  200     00000000 11001000   '.È'
018E    LATB    0x0040  64      00000000 01000000   '.@'
0190    ODCB    0x0000  0       00000000 00000000   '..'
0192    ANSB    0x2000  8192    00100000 00000000   '..'

...这是配置位:

_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & ICS_PGx1 & FWDTEN_ON & WINDIS_OFF & FWPSA_PR128 & WDTPS_PS1024);
_CONFIG2(IESO_ON & WDTCMX_LPRC & FNOSC_FRC & FCKSM_CSDCMD & OSCIOFCN_ON & POSCMD_NONE)
_CONFIG3(SOSCSEL_ON)
_CONFIG4(IOL1WAY_OFF & PLLDIV_DISABLED & DSWDTPS_DSWDTPS15)

我正在尝试进入 Microchip 论坛询问这个问题,但他们的注册过程显然已停止。希望 StackOverflow 的好心人能够提供帮助。谢谢!

pic
2个回答
2
投票

Microchip 拥有无限的上帝般的智慧,决定在 RB6 输入上提供模拟输入功能,但压制了几乎所有有关此内容的文档,并删除了 PIC24FJ128GA204 勘误表中对此的任何提及。

数据表对此有模糊的提示:

这里:

要获得所需的内容,请将 ANSB 位 6 清零。


0
投票

我联系了 Microchip 支持人员,他们在比质子衰变短得多的时间内(大约一天)给了我回复,并提供了有效的解决方案。

必须通过将 & 0xF7FF 附加到 config2 设置来清除闪存配置字 2 的位 11(保留,复位值=1),如下所示:

_CONFIG2(POSCMD_NONE & WDTCLK_FRC & OSCIOFCN_OFF & FCKSM_CSDCMD & FNOSC_FRC & ALTCMPI_CxINC_RX & WDTCMX_WDTCLK & IESO_OFF & 0xF7FF)

您将不得不忍受编译器警告“考虑迁移到#pragma config”。 #pragma 语法似乎采用文本参数,所以真的不希望您去翻转未记录的位。

我无法理解为何 RB6 上的外设输出被未记录的(Microchip 外部)位禁用。

我无法理解为什么 Microchip(或设计演示板的人)选择使用 RB6 作为 mikroBUS™ 接口的 TX。

© www.soinside.com 2019 - 2024. All rights reserved.