I am confused on the setting of the C6748 PLL's and clocks for the DDR2/mDDR interface. In looking at the C6748 Technical Reference Manual (SPRUH79A) section 6.3.2 it states tw clocks are needed. VCLK is sourced from PLL0_SYSCLK2/2 and 2X_CLK is sourced from PLL1_SYSCLK1. Table 6.5 tells me what 2x_CLK is supposed to be but no where does it tell what PLL0_SYSCLK2/2 should be for VCLK.
What is the frequency of VCLK supposed to be? Also, does 2x_CLK/2 or MCLK become DDR_CLK? What signal drives DDR_CLK NOT output? The documentation does not clearly state what internal signals drive these two external clocks.
According to Figure 13-2 PLLC0 (asssume this is SYSCLK2) is always divided by 2. According to figure 5-9 there is a PLL0DIV2 register for dividing down SYSCLK2. Is the PLL0_SYSCLK2 in figure 6-3 and PLLC0 in figure 13-2 before or after this PLL0DIV2 register?
I downladed a spreadhseet for validating the PLL setup from your website and it has the PLL0DIV2 (PLL0 SYSCLK2) register greyed out but the tech manual shows it as programmable.
I need to understand this since I also need to drive other interfaces with PLL0 SYSCLK2 such as SPI0 and UPP.
PLLC0.SYSCLK2 is always half the CPU clock PLLC0.SYSCLK1. The division factor can be considered programmable (as any general PLL output), but since the only allowed value is 2...
The main DDR clock (MCLK) is generated from PLLC1.SYSCLK1, which is the source of the PHY output clock (DDR_CLK pins), typically 150 MHz. The DDR memory data transfer rate is then 600MB/s peak (300M 16-bit words per second).
Edit: PLLC1.SYSCLK1 itself runs at the DDR frequency (300MHz). The DDR controller user's guide is more explicit on clocks control.
Thanks, that clarifies the PHY output clocking.
Is there any written documentation showing PLLC0.SYSCLK2 is always half of PLLC0.SYSCLK1? The PLLC0 Divider 2 Register shows a default value of divide by 2 but does not seem to restrict the RATIO setting (0-1Fh). None of the documentation even shows SYSCLK2 being sourced from SYSCLK1. So the frequency of PLL0.SYSCLK2 does not have to be the same as PLL1.SYSCLK1 in driving the DDR controller? Is there a suggested ratio?
Also, with PLLC0.SYSCLK2 being set to PLLC0.SYSCLK1 divided by 2 would seem to directly effect the clocking of things like UPP, SPI0, and others if I am reading figure 6-1 of SPRUGJ7E correctly.
By the way Figure 5-9 I referenced previously was in SPRS590D.
Another documentation question. Which is correct the CPU/Device column in Table6-2 for PLL0_AUXCLK or Figure 6-1 in SPRUH79A?
In theTechnical Reference manual, Device clocking chapter (Chapter 7) of the Technical reference manual covers the relation between PLL0.SYSCLK1 and PLL0.SYSCLK2 and Table 7-2 documents that the relation ship between PLL0.SYSCLK1 and PLL0.SYSCLK2 is fixed (ratio of 1:2 ). Diagram 8-1 in the Technical reference manual should clarify the question regarding how individual clock on the device are sourced.
The PLL controller section describes how the PLL clock dividers can be manipulated to obtain the required clocks for the peripherals. PLL0 SYSCLK2 is larger than the max speeds supported on SPI0 so the peripheral provides a further programmable scaling factor called PRESCALE which is programmed in the SPIFMT register. Your interpretation of the PLL0 diagram is correct. SPI0 clocking will be affected by PLL0.SYSCLK1 variation. But C6748 also has a PLL1 interface where the SPI1 gets a clock from PLL1.SYSCLK2 which doesn`t have any clocking restrictions so you could potential use SPI1.
The GEL file for any of the C6748 development platforms should be a good starting point for understanding how the DDR clocking is configured for example the EVM has mDDR on it and the GEL file demonstrates configuring it at 5 different frequency from 102Mhz to 150 Mhz. The C6748 LCDK GEL shows similar configuration of DDR2.
PS: There is a similar discussion on the following forum thread that might interest you:
---------------------------------------------------------------------------------Please click the Verify Answer button on this post if it answers your question.---------------------------------------------------------------------------------
I am unable to open the links you provided. They give me a "Group not Found" error.
My bad. I have fixed the hyperlinks to point to the correct documents.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.