Thread 中讨论的其他器件:MSP-EXP432E401Y、 SYSBIOS
问题摘要
我需要每秒执行尽可能多的模数转换。 我的理解是、有2个 ADC 模块、每个模块都能够通过将 ADCCLK 设置为32MHz 来收集2MSPS。 默认配置显示为以240MHz 的频率运行 PLL、以120MHz 的频率运行 SYSCLK、以16MHz 的频率运行 PIOSC 的 ADCLK。 PLL 为240MHz 时、没有 ADC_CC 设置为实现32MHz、以支持每模块2MSPS 的最大收集速率(CLKDIV 8可实现30MHz、CLKDIV 7约为34MHz、超过32MHz 限制)。
我想将 PLL 设置为480MHz、将其除以4以获得120MHz SYSCLK、并将其除以15以获得32MHz ADCCLK。 然而、Boot_sysctl.c 中的 Boot_sysCtlClockFreqSetI 函数似乎有一个错误。 该值以系数2关闭。 调查显示、类似产品 TM4C129x 的芯片勘误表 SYSCTL_22 (SPMZ850G-2013年10月- 2017年3月修订)。 勘误表记录了 RSCLKCFG 的问题 硬件和在软件中对这些值进行倒角处理是权变措施的一部分(附录3)。 MSP43E 勘误文档(SLAZ709-2017年10月)中没有此类勘误表。
最后、技术参考指出、PSYSDIV 必须一直被设定为0x1 (从而产生一个2分频)的次数是多次的。 我需要将其设置为0x3、从而得到4分频。
问题
MSP432Y 的 RSCLKCFG 中是否存在相同的硅缺陷 硬件?
是否应从 MSP432Y TIRTOS 中删除 TM4C129x 缺陷的变通办法?
我是否可以使用 N=0x4、Q=0x0和 PSYSDIV=0x3来获得480MHz PLL 和120MHz SYSCLK?
其他信息
我正在 MSP-EXP432E401Y Launch Pad 原型板上进行开发。 我的 IDE 是 Code Composer Studio 版本:9.0.1.00004。 我使用 TIRTOS 3_20_00_10。
我将一个25MHz 晶体连接到 OSC0 OSC1引脚。
检查调试器运行中的寄存器、我看到:
PLLFREQ0 = 0x1
PLLFREQ0 = 0x0
PLLFREQ0 =0x60 (十进制96)
PLLFREQ1 = 0x1
PLLFREQ1 = 0x4
PLLSTAT = 0x1
RSCLKCFG = 0x1
RSCLKCFG =0x3 (MOSC)
RSCLKCFG = 0x1
根据 技术参考手册第4.1.5.5.1节" PLL 配置"中的公式、这会导致 PLL VCO 频率为240MHz、SYSCLK 频率为120MHz。 默认情况下、ADCCLK 似乎正在以16MHz 的频率从 PIOSC 运行。
然后、我修改 了 Boot_sysctl.c 来设置 PLLFREQ1 = 0x0且 RSCLKCFG =0x3、希望这将导致 PLL VCO 频率为480MHz、SYSCLK 频率为120MHz。 我还设置了 ADC_CC = 0x0 (PLL VCO)和 ADC_CC =0xE (十进制的14)、以实现32MHz 的 ADCCLK 频率。
我的安装中有三个 sysctl.c 文件。 driverlib 和 SYSBIOS 文件使用240000000作为480 MHz 频率。 我假设 driverlib 是供应用程序使用和修改的-我不使用它。 当我运行时、系统正在使用 SYSBIOS 文件。
C:\ti\simplelink_msp432e4_sdk_3_20_00_10\source\ti\devices\msp432e4\driverlib\sysctl.c
C:\ti\simplelink_msp432e4_sdk_3_20_00_10\kernel\tirtos\packages/ti\sysbios\family\arm\msp432e4\init\Boot_sysctl.c
//*****************************************************************************
//
// Look up of the possible VCO frequencies.
//
//*****************************************************************************
static const uint32_t g_pui32VCOFrequencies[MAX_VCO_ENTRIES] =
{
160000000, // VCO 320
240000000, // VCO 480
};
目录文件使用480000000作为480MHz 频率。 我不知道目录是什么。 我认为 TIRTOS 或我的应用不会使用这种方法。
C:\ti\simplelink_msp432e4_sdk_3_20_00_10\kernel\tirtos\packages/ti\catalog\arm\cortexm4\Tiva\ce\Boot_sysctl.c
//*****************************************************************************
//
// Look up of the possible VCO frequencies.
//
//*****************************************************************************
static const uint32_t g_pui32VCOFrequencies[MAX_VCO_ENTRIES] =
{
320000000, // VCO 320
480000000, // VCO 480
};
