主题中讨论的其他器件:HALCOGEN
客户打算将 N2HET 用作普通 IO 引脚、因为客户4357芯片的 GIO 引脚几乎全部占用、并且 IO 引脚作为输入不容易进行电线焊接。 但他在配置过程中遇到了以下问题:
1.客户打算将 N2HET2引脚配置为 IO 输入、将其下拉、并且没有开漏。 一旦检测到外部输入的高电压、它将被运行。
2.客户使用的芯片封装为 TMS5704357BZWTQ1R、物理引脚为"D3"、相应的 PINMUX 功能为"N2HET2[12]/MIBSPI2NENA"。 客户在数据表中"I/O 复用和控制模块(IOMM)"的功能选择中找到"复用输入的控制"、然后找到"PINMMR97[0]"并将其设置为输入。 有关详细信息、请参阅下图。
pinMuxReg->PINMUX[97] = SIGNAL_N2HET2_12_D3 | SIGNAL_N2HET2_13_D2 | SIGNAL_N2HET2_14_D1 | SIGNAL_N2HET2_15_K4; // n2het2[12]
然后、客户使用 HALCON 工具在 N2HET2寄存器中配置 N2HET2[12]、并生成了以下代码:
hetREG2->GCR = ( 0x00000001U | (uint32)((uint32)1U << 24U)| (uint32)((uint32)1U << 16U)| (0x00020000U));
hetREG2->INTENAC = 0xFFFFFFFFU;
hetREG2->INTENAS = 0x00000000U;
hetREG2->PFR = (uint32)((uint32) 6U << 8U)| ((uint32) 0U);
// Enable/Disable Parity check
hetREG2->PCR = (uint32) 0x00000005U;
/** - Fill HET RAM with opcodes and Data */
(void)memcpy((void *)hetRAM2, (const void *)het2PROGRAM, sizeof(het2PROGRAM));
//Setup prescaler values
hetREG2->PFR = (uint32)((uint32) 6U << 8U)| ((uint32) 0U);
// Set the default value of pin
hetREG2->DOUT = (U32)((U32)0U << FORCED_UPDATE_PIN);
// Set the N2HET2[3] pin as input
hetREG2->DIR = (U32)((U32)0U << FORCED_UPDATE_PIN);
// Enable the pull up/down.
hetREG2->PULDIS = (U32)((U32)0U << FORCED_UPDATE_PIN);
// Enable the pull down.
hetREG2->PSL = (U32)((U32)0U << FORCED_UPDATE_PIN);
//hetREG2->HRSH = (U32)((U32)1U << FORCED_UPDATE_PIN);
//Set HET pins open drain enable
hetREG2->PDR = (uint32) 0x00000000U;
// Check the pin if high then update.
if ((hetREG2->DIN & (0x1 << FORCED_UPDATE_PIN) ) == 1)
{
CPUUPDATE=1;
}代码的 N2HET 部分由 HALCON 生成、并且引脚复用部分也根据 HALCON 被修改。 完成上述设置后、客户向 D3引脚输入3.3V 电压、但实际上没有影响。 客户想知道是否有部件缺失或错误?
此致、
樱桃周