设置锁相环在一个单一tile
你好,
我试图把我的片组件上的锁相环控制寄存器(XP-SKC-L2)和有一些麻烦。 这是我运行的代码片段。 我把一些printf语句PLL_CTRL_REG反馈数据实际上是什么。 我的外部晶体是25兆赫是装备。
/Set OD = 5, set R = 40, set F =1
#define PLL_CTRL_INPUT_100kHz 0x2800131
********************************************************************
unsigned pllCtrlReadData;
read_sswitch_reg(get_local_tile_id(), PLL_CTRL_REGNUM, pllCtrlReadData);
printf("PLL Data is %d \n",pllCtrlReadData);
if (pllCtrlReadData != PLL_CTRL_INPUT_100kHz)
{
write_sswitch_reg(get_local_tile_id(), PLL_CTRL_REGNUM, PLL_CTRL_INPUT_100kHz);
}
read_sswitch_reg(get_local_tile_id(), PLL_CTRL_REGNUM, pllCtrlReadData);
printf("PLL Data is %d \n",pllCtrlReadData);
*********************************************************************
一些问题:
1)我读过一些关于设备resesting后写入控制寄存器。 我要处理这个复位还是程序计数器回到又主要通过代码并开始运行?
2)谁能解释控制寄存器的解决方案吗? 基地址的定义在哪里所以我可以设置指针调整每个注册为我需要在我的应用程序。
例子:注册- > PLL_RGE =一些十六进制值或转移到一个单一的定义
3)调试,我怎么查看所有设备寄存器除了核心寄存器(弄清r0、r1等)和他们是相同的吗? 我用Xtime作曲家。 (这是显而易见的,但当麻烦拍摄更多的信息和更少的假设是更好的)我也做我的应用程序。
一件事…… 我曾试图改变。 从500 mhz xn文件系统时钟200 khz系统时钟,这似乎没有做任何事情。 也许我不正确将文件合并到我的项目?
任何的建议是赞赏!
谢谢!
史蒂夫
回答:
1)任何写入控制寄存器6将使设备重置。 如果您使用的是多tile设备,你需要写寄存器分别在每一个tile。 你不需要处理程序计数器,设备重置程序计数器复位后从主并开始执行。 保持注意,设备复位是否按预期运行,只有当SPI的代码闪现在闪光。 如果您正在编写的锁相环注册的应用程序运行在设备上使用通过JTAG,复位不正常发生和设备不启动。
2)你会发现从以下链接:附录中的信息(28页)
3)你会发现所有的寄存器的逻辑核心寄存器的debug视图选项卡。
发表时间:2014年11月22日11:57:54