<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>LabElectronica/CalculoCristal</title><revhistory><revision><revnumber>2</revnumber><date>2010-06-07 22:14:56</date><authorinitials>GonzaloPerezPaina</authorinitials></revision></revhistory></articleinfo><section><title>Cálculo del divisor del PLL para reducir el error en la UART con cristal de 14,7456 Mhz:</title><itemizedlist><listitem override="none"/></itemizedlist><section><title>Las ecuaciones para ello usan los siguientes parámetros:</title><para>FOSC - Frecuencia del Cristal </para><para>FCCO - Frecuencia del CCO del PLL </para><para>cclk - La frecuencia a la que trabaja el micro (frecuencia de salida). </para><para>M - Valor multiplicador en MSEL dentro dell registro PLLCFG. </para><para>P - Valor divisor en PSEL dentro del registro PLLCFG. </para></section><section><title>Cálculo:</title><para>Calculamos la frecuencia del micro para 115200 baudios en la UART: </para><para>Tenemos un divisor x16 y otro por x32 con lo cual nos da una salida de 58,9824 Mhz. </para><para>Usando un cristal de 14,7456 Mhz tenemos que su relación es 4. por lo tanto M=4. </para><para>Segun la fórmula de la hoja de datos P = (FCCO /(2xcclk)) = </para><para>Tomamos P=2 y nos queda FCCO = 235,93 Mhz lo cual esta dentro de los 156 a 320 Mhz especificados por el fabricante. </para><para>De tablas nos queda que el valor para el registro PLLCFG es 0x23. </para></section><section><title>Ejemplo:</title><screen><![CDATA[/* PLL configuration */
]]><![CDATA[
    .equ PLLCON_OFFSET,   0x0
]]><![CDATA[
    .equ PLLCFG_OFFSET,   0x4
]]><![CDATA[
    .equ PLLSTAT_OFFSET,  0x8
]]><![CDATA[
    .equ PLLFEED_OFFSET,  0xC
]]><![CDATA[
]]><![CDATA[
]]><![CDATA[
    .equ PLLCON_PLLE,    (1 << 0)
]]><![CDATA[
    .equ PLLCON_PLLC,    (1 << 1)
]]><![CDATA[
    .equ PLLSTAT_PLOCK,  (1 << 10)
]]><![CDATA[
    .equ PLLFEED1,        0xAA
]]><![CDATA[
    .equ PLLFEED2,        0x55
]]><![CDATA[
]]><![CDATA[
]]><![CDATA[
    .equ PLLCFG_VALUE,    0x23   // PLL con Cristal de 14,7456 Mhz]]></screen><para>Anteriormente usabamos un cristal de 12Mhz que llevaba un PLLCFG = 0x24 con un M=5 y un P = 2. </para></section><section><title>Ejemplo cambio makefile para grabar con '''lpc21isp''' a 115200 baudios:</title><screen><![CDATA[GRABADOR = /home/mariotrangoni/lpc21isp/lpc21isp
]]><![CDATA[
grabar: $(GRABADOR) -wipe -hex ex5.hex /dev/ttyS0 115200 14745]]></screen><para>Uno pone <emphasis role="strong">'make grabar<emphasis role="underline"> en consola y graba directamente el dispositivo. </emphasis></emphasis></para></section><section><title>Cálculo error Baudrate LPC2000:</title><itemizedlist><listitem><para><ulink url="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/CalculoCristal/wiki/LabElectronica/CalculoCristal?action=AttachFile&amp;do=get&amp;target=lpc2000.uart.baudrate.calculator.xls">lpc2000.uart.baudrate.calculator.xls</ulink>: lpc2000.uart.baudrate.calculator.xls  </para></listitem></itemizedlist></section></section></article>