domingo, 15 de abril de 2012

CONVERTIDOR DIGITAL A ANALÓGICO CON MODULO DAC


Un DAC ó convertidor digital a analógico es un circuito que es capaz de tomar un valor digital de “n” número de bits para luego entregar al usuario un valor de tipo analógico, uno de los aspectos fundamentales de este tipo de convertidores es la resolución la cual se puede definir como el cambio de voltaje que se presenta por cada cambio del valor digital.

La resolución de estos dispositivos está determinada por el numero de bits que toma en su parte digital, entre mayor sea el numero de bits mejor será la resolución de dicho convertidor. Otro factor que influye en la resolución del DAC es el voltaje al cual trabaja, o en otras palabras el voltaje máximo que va a entregar el convertidor en su parte analógica. Lo anterior se puede ver mejor en los siguientes ejemplos:


Donde:

V= Voltaje de convertidor (Máximo voltaje analógico a representar)
n= Numero de bits del convertidor.

Ejemplo:

Para un DAC de 8 Bits cuyo valor máximo analógico será 5 voltios


Para un DAC de 8 Bits cuyo valor máximo analógico será 3 voltios

Para un DAC de 9 Bits cuyo valor máximo analógico será 5 voltios


Para un DAC de 9 Bits cuyo valor máximo analógico será 3 voltios


La mayoría de este tipo de convertidores está construidos por medio de circuitos de resistencias tipo red R2R como el que se puede ver en la figura 1. También se pueden conseguir en el mercado circuitos integrados que cumplen la función de DAC como es el caso del DAC0800 el cual es un convertidor digital a análogo de 8 bits.

Figura 1 (DAC con red de resistencia R2R)

Sin embargo con los microcontroladores PSoC no se tiene la necesidad de recurrir a estos circuitos externos mencionados anteriormente, esto es debido a que PSoC gracias a sus bloques analógicos tiene la posibilidad de ofrecer módulos DAC de 6, 8 y 9 bits.

Estos módulos utilizan 2 bloques análogos de PSoC para el caso de los DAC de 8 y 9 bits ó un bloque para el caso de los DAC de 6 bits, en ninguno de los casos se utiliza bloques de tipo digital. Estos convertidores toman un código digital para luego entregar a la salida un voltaje que representa a ese código, el valor digital puede ser tomado directamente de uno de los puertos del microcontrolador en formato binario ó puede ser una variable con la cual se esté trabajando dentro del programa, el numero de muestras que pueden llegar a tomar estos módulos DAC es de 125k muestras por segundo.

Configuración modulo DAC:

Los aspectos que se van a tener en cuenta en esta publicación para la configuración del modulo DAC, son los aspectos mínimos para ponerlo en funcionamiento, razón por la cual se recomienda leer la hoja de datos que se puede encontrar desde PSoC Designer para así profundizar sobre características que pueden ser necesarias dependiendo de la aplicación que se piense desarrollar con el DAC.

Luego de agregar el modulo al proyecto se deben configurar los parámetros de los módulos los cuales son:

AnalogBus: Este parámetro indica el bus analógico al cual se va a conectar la salida de convertidor Digital-Analógico.

DataFormat: Este parámetro define el formato del valor digital con el que se va a trabajar el cual puede ser OffsetBinary, TwosComplement, TwoBitSignAndMagnitude.

Figura 2 (Configuración Parametros DAC8)
Luego de esto es necesario inicializar el modulo y ajustar la potencia del mismo en el archivo fuente de nuestra aplicación, esto se puede hacer mediante el comando DAC8_Start(x), donde el valor de “x” representa la potencia con la que se quiere configurar el modulo teniendo los siguientes valores posibles:

DAC8_OFF = 0
DAC8_LOWPOWER = 1
DAC8_MEDPOWER = 2
DAC8_FULLPOWER = 3

Por último el comando DAC8_WriteBlind(x) permite obtener a la salida del DAC el valor analógico del término digital que se quiere convertir, en este caso representado por la “x” que se encuentra en el comando.

Para intentar esclarecer un poco más las cosas en el siguiente código se puede observar una aplicación sencilla en la cual por el puerto 1 del microcontrolador PSoC se está tomando un dato digital (Binario) y luego se entrega el valor analógico.

//-----------------------------------------------------------------------
// C main line
//-----------------------------------------------------------------------

#include <m8c.h>      
#include "PSoCAPI.h"  

void main(void)
{
DAC8_1_Start(3); //se inicializa el modulos DAC8
while(1)
{
DAC8_1_WriteBlind(PRT1DR);/*El DAC toma el valor digital del puerto 1 y retorna el valor análogo por el pin que se haya configurado como salida analógica*/
}
}


Las configuraciones de los parámetros del modulo DAC8 para esta práctica son los que se mostraron anteriormente en la figura 2.

sábado, 31 de marzo de 2012

CONTADOR BINARIO DE 4 BITS (PRACTICA 4)


Para esta ocasión PSoC En español propone la realización de un contador binario de cuatro bits, la idea es que a la salida de uno de los puertos del microcontrolador se pueda visualizar por medio de cuatro LED un conteo de 0 a 15 en el sistema binario.

En esta práctica se pretende que ustedes los lectores propongan sus propias soluciones para llevar a cabo el contador, ya que como en cualquier reto no existe una solución única e irrefutable sino que por el contrario se pueden llegar a encontrar una innumerable cantidad de soluciones cada una dependiente de la persona que se encuentre frente al reto.

Sin embargo acá se propone una solución sencilla basada en un ciclo for, una variable acumuladora y la posterior salida del valor de esta variable en un puerto configurado como salida, el código de este sencillo contador se muestra a continuación:

#include <m8c.h>       
#include "PSoCAPI.h"   
#include <delay.h>

void main(void)
{
int i;              // Variable acumuladora.
while (1)
{
for(i=0;i<=15;i++)  // Ciclo que cuenta entre 0 y 15 para el contador de 4 bits.
{
PRT2DR = i;         // Se escribe en el puerto 2 el valor de a variable i.
Delay10msTimes(100);       // Retardo de 1 segundo.
}
}
}


De esta manera se puede conseguir a la salida del puerto 2 un contador binario de 4 bits, sin embargo se insiste en la importancia de que los lectores propongan sus propias soluciones y de esta manera poder visualizar un espectro más amplio de posibilidades.

En el siguiente vídeo se muestra el funcionamiento que se espera obtener de la práctica propuesta para esta ocasión.


sábado, 17 de marzo de 2012

USO DE LAS FUNCIONES DE RETARDO


Los retardos son quizás de las instrucciones más utilizadas en cualquier programa que se esté desarrollando, estos permiten esperar un tiempo determinado entre la última instrucción realizada y la siguiente que se debe ejecutar. Aunque en la publicación anterior se mostro como hacer un retardo mediante la creación de una función a la que se llamo tiempo y que básicamente funcionaba ejecutando un ciclo “for”, esta no es la mejor manera de realizar un retardo ya que no permite al usuario determinar el tiempo preciso en el cual se va a retrasar la siguiente instrucción del programa. Para poder hacer estos retardos en periodos de tiempos precisos en la mayoría de lenguajes existe la instrucción delay, la cual para los microcontroladores PSoC no es la excepción.

Para poder utilizar la instrucción delay en cualquier programa que se esté desarrollando En PSoC Designer, primero se tiene que agregar al proyecto los archivos “delay.asm” y “delay.h” los cuales pueden ser descargados directamente desde la página web de Cypress Semiconductor por medio del link que se muestra a continuación.

Descarga archivos funciones de retardo (Página oficial de Cypress Semiconductor)

El archivo que se descarga del link anterior contiene los dos archivos que son necesarios para poder ejecutar los retardos en cualquier proyecto, cada uno de estos archivos tiene funciones especificas como lo son:

Delay.asm: Este archivo contiene las 3 funciones que generan los retados en PSoC, las cuales son Delay50u, Delay50uTimes y Delay10msTimes.

Delay.h: Este archivo por su parte contiene las estructuras y prototipos necesarios para llevar a cabo la ejecución de las funciones que se encuentran dentro del archivo delay.asm.

Funciones de retardo: funcionamiento y sintaxis de uso.

Delay50u: Esta función genera un único retraso de 50 µS para velocidades de CPU que se encuentren entre los 1,5 MHz y los 24 MHz. Para velocidades de CPU menores a 1,5 MHz el retardo debe ser calculado por la siguiente formula:
Delay = (1,5 MHz / frecuencia de la CPU)* 50 µS.
La sintaxis para el uso de esta función es la siguiente:
Delay50u ();

Delay50uTimes: Esta función genera un retraso definido en múltiplos de 50 µS, el retardo se generar a partir de un factor de multiplicación ingresado por el programador, esta función básicamente lo que hace es repetir el la función Delay50u el numero de veces indicadas, la sintaxis para el uso de la función es la siguiente:
Delay50uTimes(X); // Donde X es el factor de multiplicación.
El valor máximo de retardo que se puede generar con esta función son 12,75 mS.

Delay10msTimes: Esta función se ejecuta de la misma manera que la función anterior, la diferencia radica en que los retardos se realizan en múltiplos de 10 mS, la sintaxis para el uso es la siguiente:
Delay10msTimes(X); // Donde X es el factor de multiplicación.
El valor máximo de retardo que se puede generar con esta función son 2,55 S.

Pasos para agregar los archivos delay.asm y delay.h:

Para poder utilizar los retrasos en un proyecto primero se deben seguir los siguiente pasos para incluirlos al mismo proyecto:

1. Agregar los archivos “delay.asm” y “delay.h” mediante la ruta:
    “project -> Add File -> Seleccionar los dos archivos”.

2. Después de haber sido agregados, el archivo delay.asm debe quedar alojado en la carpeta source files, por su parte el archivo delay.h debe encontrarse en la carpeta header Files.

3. Incluir en el encabezado del código fuente el archivo delay.h mediante la instrucción: #include<delay.h> .

4. A partir de este momento ya se pueden utilizar las funciones de retardo mediante la sintaxis que se presento anteriormente.

PRACTICA 3 (Uso de retardos)

En esta práctica se pretende observa el comportamiento de la función de retardo Delay10msTimes() ya que es la que presenta mayor facilidad de ser comprobada a simple vista, dado el caso que tenga acceso a instrumentos de medida como un osciloscopio puede comprobar las otras funciones de retardo.

El objetivo de esta práctica comprobar las diferencias en tiempo producidas entre diferentes retardos, esto se va a lograr mediante el control de cuatro LED en cuatro tiempos de la siguiente manera:

(Funcionamiento de la practica 3 - Uso de los retardos)

Los archivos del proyecto realizado en PSoC Designer 5.1 para esta práctica pueden ser descargados por medio del siguiente link:

Descarga archivos Practica 3 (UsoDelay.rar)

En el siguiente video se puede observar paso a paso el uso del las funciones de retardo y la práctica propuesta:


martes, 21 de febrero de 2012

USO DEL MODULO LED


Como ya se ha mencionado en entradas anteriores, PSoC Designer ofrece unos módulos con los cuales busca facilitarle al usuario el uso de los microcontroladores PSoC, dentro de estos módulos de usuario se encuentran una gran variedad de aplicaciones tanto digitales como análogas entre las que se pueden encontrar contadores, convertidores análogo-digital y digital-análogo, filtros, amplificadores, protocolos de comunicación entre otros. Sin embargo el más sencillo de estos módulos es el LED, razón por la cual es con este modulo de usuario que se va a llevar a cabo la primera práctica de PSoC enfocada a estos dispositivos pre-configurados por PSoC Designer.

La mayoría de los módulos de usuario presentados en PSoC Designer, utilizan un número determinado de bloques digitales ó análogos del PSoC, pero este no es el caso del modulo LED, debido a la sencillez del mismo el uso de este no representa mayor gasto de los recursos del microcontrolador y esto se demuestra al observar que no ocupa ningún bloque digital ni análogo del PSoC.

Los parámetros de configuración que tiene el modulo LED son los siguientes:

• Name (Nombre del modulo)
• Port (Puerto de salida)
• Pin (Pin de salida)
• Drive (Nivel lógico de activación)

Mediante la configuración de estos cuatro parámetros mencionados anteriormente, el modulo está prácticamente listo para ser puesto en funcionamiento, sin embargo hace falta inicializarlo mediante una línea de código escrita en el archivo fuente “main”, la línea de instrucción con la que se inicia el modulo en lenguaje C es la siguiente:

LED_X_Start( );

Donde:

LED_X: Es el nombre del modulo que se está utilizando, por lo tanto hay que tener en cuenta que si en los parámetros de configuración del modulo se le cambio el nombre, esta instrucción LED_X tiene que ser reemplazada por el nuevo nombre que el usuario haya decidido colocarle.

Start( ): Es el comando de inicio del modulo de usuario, este comando no es utilizado solamente para el modulo LED sino que es usado para todos los módulos de usuario presentados en PSoC Designer.

Además del comando de inicio de los módulos LED, también existen otros comandos para su correcta funcionamiento como los comandos LED_X_On() y LED_X_Off(), los cuales son utilizados para prender y apagar el LED respectivamente.

PRACTICA 2 (Secuencia de LED)

En esta práctica se pretende realizar una secuencia cuatro LED, mediante el uso del modulo de usuario que se ha mencionado en esta entrada del blog, sin embargo como todavía no se ha visto el uso de la librería delay.h, la temporización del encendido de cada modulo LED se va a controlar por medio de una función que se va a llamar “tiempo” y se va a declarar dentro del mismo archivo fuente “main.c”, en la siguiente entrada del blog ya se hablara sobre el uso de la librería “delay.h“ utilizada para hacer los retardos por software que necesitemos a futuro.

En el link que se encuentran a continuación se puede descargar los archivos de PSoC Designer 5.1 de esta práctica.


En el siguiente video, se puede observar la realización paso a paso de esta práctica con lo que se busca dejar más claro la configuración del modulo LED.




martes, 31 de enero de 2012

MEJORES PRACTICAS Y RECOMENDACIONES CON PSoC 1 (PARTE 3)



En esta entrega se va a presentar la tercera y última parte del trabajo de traducción y resumen de la nota de aplicación AN2010 titulada PSoC® 1 Best Practices and Recommendations y escrita por Jeff Dahlin, el tema tratado en esta ocasión es la generación del código para PSoC.


GENERACIÓN DE CÓDIGO

En esta sección se resumen ciertos pasos o instrucciones para la generación de código con las herramientas PSoC.

Registros Vs Memoria – Acceso en Assembler:

Un error muy común cuando se pretende trabajar con los registros del microcontrolador es la utilización de instrucciones de acceso de memoria en vez de instrucciones de acceso a registro.
Por ejemplo cuando se accede al registro de INT.MSK0 la instrucción que se debe utilizar es la siguiente:

mov A, reg[INT_MSK0];

Comúnmente se escribe de manera errónea como se muestra a continuación:

mov A, [INT_MKS0];

Las dos opciones son compiladas sin errores, la diferencia radica en la primera instrucción escribe en el registro y la segundo lo hace es en la memoria.

Selección de Banco de datos:

Los registros de los microcontroladores PSoC 1, se encuentran en dos bancos de direcciones diferentes, aunque el diseño de PSoC 1 hace que la mayoría de los registros que se utilizan normalmente se encuentren en el banco 0, en ocasiones es necesario acceder a los registros del Banco 1.

Debido a esta configuración cuando se esté trabajando en assembler se debe asegurar que cada vez que se llamen las API de Cypress y las funciones de biblioteca el Banco 0 se encuentre seleccionado. En caso de ser necesario realizar un cambio de banco de registros, debe hacerse por medio de la instrucción M8C_SetBank0 ó M8C_SetBank1, estos macros son proporcionados por cypress en las librerías m8c.inc y m8c.h.

Los compiladores de C utilizados en PSoC, se encargan de hacer el cambio de banco de manera automática, de tal manera que no es necesario de hacer el proceso de cambio de banco cuando se está escribiendo el código en C.

Bits reservados y no utilizados:

Algunos de los registros de control de PSoC 1 tienen bits con valores de reserva o que no se utilizan. Al escribir hacia esta clase de registros que contienen bits reservados o no utilizados, el valor de estos se debe establecer en cero. Esta acción permite que el código que se está desarrollando sea compatible con versiones anteriores. 

Funciones de inicio de los módulos de usuario:

Todas las API de los módulos de usuario incluyen la función _Start. El usermodulename_Start() es la función que debe ser llamada cuando se quiere iniciar el trabajo con cualquier modulo de usuario de PSoC 1. En los módulos de usuario analógicos además de tener que hacer el llamado a la función _Start, se tiene que llamar a la función de ajuste de potencia.

Reconfiguración Dinámica:

Cuando se utiliza la capacidad de reconfiguración dinámica de PSoC, es necesario detener todos los módulos que se encuentren activados antes de que comience la descarga. También es recomendable deshabilitar las interrupciones globales (M8C_DisableGInt) antes de comenzar la reconfiguración, esto es debido a que en el proceso de reconfiguración se pueden presentar problemas técnicos de no deshabilitar los módulos y las interrupciones.




Hasta acá se deja el trabajo de resumen y traducción de la nota de aplicación AN2010 escrita por Jeff Dahlin, pero se les recuerda que si quieren leer la nota completa la pueden encontrar en la página web de Cypress semiconductor ó en este mismo blog en la pestaña de Hojas de datos y notas de aplicaciones. 

domingo, 15 de enero de 2012

Mejores prácticas y recomendaciones con PSoC 1 (parte 2)


En esta ocasión se va a presentar la segunda parte de la traducción y resumen de la nota de aplicación AN2010 titulada PSoC® 1 Best Practices and Recommendations y escrita por Jeff Dahlin, en esta parte se van a describir los tipos de pin que componen a los microcontroladores PSoC, además algunas configuraciones para funciones analógicas del microcontrolador.

INTERCONEXIÓN Y PINES DE SALIDA

Tipos de pin:

En las familias PSoC 1 22/24/27/29 existen 8 tipos de pines configurables los cuales son los siguientes:

Digital I/O Solamente: Estos pines son los mas abundantes ya que todos los de los puertos de PSoC pueden configurarse como pines de entrada y salida digitales. Tambien pueden actuar como entrada o salida de uso general mediante la configuración stdCPU.

Entradas / Salidas digitales ó entradas análogas: Estos pines pueden funcionar como entradas y salidas de tipo digital ó se puede conectar a los multiplexores como entrada analógica.

Entradas y salidas digitales y análogas: Estos tipos de pines se pueden utilizar para entradas y salidas tanto digitales como análogas, aunque hay que utilizarlos como último recurso si se piensan utilizar como entradas ya que estos son mas útiles como salidas análogas las cuales son más escasas dentro del microcontrolador, razón por la cual estos pines deben de ser valorados.

Entrada - Salida digital ó Entrada analógica directa: Además de utilizarse como entrada - salida digital, estos pines se pueden utilizar directamente como entradas análogas para los bloques de capacitancias conmutadas (SC).

Entrada – Salida digital ó referencia externa: A parte de utilizarse como entrada - salida digital, estos pines se pueden utilizar como suministro para un voltaje de referencia AGND externoy para una tensión de referencia VREF, estas referencias externas proporcionan una mayor flexibilidad para los diseños analógicos.

Entradas – Salidas digitales ó I2C: Estos pines a parte de la aplicación digital se pueden utilizar para comunicaciones I2C, estos pines son preferibles a la I2C suplente ya que estos últimos también son utilizados para la programación ISSP, que puede llegar a interferir con la comunicación I2C.

Entradas – Salidas digitales ó reloj de sistema externo: Estos pines se pueden utilizar como entrada para una fuente externa de reloj (EXTCLK).

Entradas – Salidas digitales, Entrada de cristal externo, Entrada I2C suplente: Estos pines se pueden utilizar para conectar un cristal de 32,678 KHz, también se utilizan como auxiliares o suplentes para comunicación I2C. El ECO se utiliza para la sincronización. Ademas estos pines son los utilizados para la programación ISSP.

En la siguiente tabla se puede observar los tipos de entradas y los puertos asociados a cada tipo de pin:


(Tipos de pin para familias de PSoC 1)

Mejores prácticas para la asignación de pines:

La mejor recomendación para este tema es asignar primero los pines analógicos a las funciones que los requieran. Luego los elementos que sean solamente entradas ó salidas digitales y por ultimo asignar los pines con múltiples funciones.

Buffer de salida análoga:

Siempre que se vaya a hacer el enrutamiento de una salida analógica se debe asegurar que el buffer asociado a la columna de salida esta encendido.

Columna velocidad del reloj analógico:

Es necesario revisar las hojas de datos de los módulos de usuario que vayan a ser utilizados para así asegurar que la velocidad del reloj analógico se está configurando de manera adecuada, ya que un reloj muy rápido o muy lento puede causar problemas con la carga de los condensadores de los módulos analógicos.

Cuanto más rápido es el reloj analógico de un bloque, mayor es el poder del mismo. El ajuste de potencia de un modulo afecta el límite de capacidad de corriente del amplificador operacional dentro del bloque analógico. Con una corriente más alta se cargan con mayor rapidez los condensadores y la frecuencia del reloj es mayor.

Configuración de alimentación analógica:

El ajuste de potencia de las referencias análogas se debe establecer en la configuración de potencia máxima. Como se muestra en la siguiente figura:


(Configuración Alimentación Análoga)

sábado, 31 de diciembre de 2011

Mejores prácticas y recomendaciones con PSoC® 1 (Parte 1)


En esta ocasión y por unas cuantas publicaciones de PSoC en español, se va a interrumpir el desarrollo de prácticas con estos microcontroladores para presentar una traducción y un pequeño resumen de una nota de aplicación la cual es útil para todos aquellos que están comenzando en el mundo PSoC. La nota de aplicación es la AN2010 titulada PSoC® 1 Best Practices and Recommendations y escrita por Jeff Dahlin, si quieren observar y estudiar esta nota de aplicación en su versión original lo pueden hacer siguiendo el link que se encuentra a continuación y redirige a la página de cypress semiconductor.


La AN2010 contiene algunas líneas de introducción y recomienda algunas prácticas para el desarrollo de sistemas PSoC 1. Además se exponen algunos errores comunes que cometen los diseñadores.

INTRODUCCIÓN

Esta nota de aplicación provee información para mejorar la calidad y eficiencia de los proyectos de PSoC 1. Este documento se encuentra divido por secciones las cuales se encuentran relacionadas entre sí razón por la cual el documento debe ser leído por completo.

PRIMEROS PASOS

Antes de comenzar cualquier proyecto de PSoC 1. Es importante asegurarse de tener instaladas en el computador las versiones de software y documentación más recientes. A continuación se presentan los primeros pasos en el trabajo con PSoC.

• Instalar PSoC Designer.
• Conectar ICE cube (El ICE es un dispositivo que sirve como depurador y sus siglas significan In Circuit Emulator).
• Examine los proyectos de ejemplo incluidos en la documentación de PSoC Designer.
• Descargue la documentación mas reciente.
• Explore otros recursos como los últimos lanzamientos de software, los foros de cypress ó el soporte técnico en línea.

LOS MÓDULOS DE USUARIO Y RECURSOS GLOBALES

Esta sección se enfoca en los aspectos básicos del posicionamiento y configuración de los módulos de usuario.

Selección inicial de los parámetros de los módulos de usuario:

Se recomienda configurar un valor inicial a todos los parámetros presentes en los módulos de usuario que se estén utilizando en el proyecto, sin importar que existan parámetros los cuales no parecen aplicarse.

Consideraciones de la velocidad de reloj de la CPU:

Es recomendable establecer el reloj de la CPU a 12 MHz o inferior. Ya que puede haber limitantes en el voltaje de alimentación y la temperatura de funcionamiento cuando se trabaja a 24 MHz, estas limitantes no se presentan cuando se trabaja a 12 MHz.

Limitaciones de frecuencia de los Bus globales:

Los bus de entrada y salida globales no están garantizados para funcionar por encima de los 12 MHz.

Limitaciones de los módulos de usuario:

Los bloques digitales tienen las siguientes limitaciones de reloj:

• Los módulos de usuario counter que utilizan el parámetro “Enable” no pueden operar por encima de los 24 MHz.
• Los módulos de usuario timer que utilizan el parámetro “Capture” no pueden operar por encima de los 24 MHz.
• El modulo de usuario CRC no puede operar por encima de los 24 MHz.
• Los módulos digitales utilizados para comunicación serial no operan por encima de los 24 MHz.

Relojes para módulos de usuario multi-bloque:

Algunos módulos de usuario requieren más de un bloque para su implementación, a su vez algunos de estos módulos multi-bloques necesitan entradas de reloj individuales para ajustarse a la misma fuente de reloj. Un ejemplo de esto es el modulo de usuario ADCINC, este modulo requiere que tanto el bloque análogo y el bloque digital sean conectados al mismo reloj.

El reloj para los bloques digitales se ha seleccionado desde los parámetros del modulo de usuario, por su parte el reloj para el bloque analógico se ha configurado como un reloj de la columna análoga tal como se puede ver en las siguientes figuras.

(Configuración reloj para bloques digitales del ADCINC)
(Configuración reloj para bloques análogos del ADCINC)

Reloj digital basado en n+1:

Todos los parámetros de tiempo (Periodo y ancho de pulso) que vayan a ser usados en módulos de usuario tipo digital utilizan valores n+1. Por lo tanto para efectos de cálculo el valor introducido en el programa debe ser uno menos que el valor deseado.

Limitación de uso del FlashTemp:

El modulo de usuario FlashTemp no debe ser utilizado para mediciones de temperatura ambiente. Este es un modulo destinado a monitorear y proporcionar la temperatura del ciertas funciones del dispositivo PSoC.

Reloj de enrutamiento:

En las familias 22/24/27/29 de PSoC, se encuentra un Bus de difusión para cada fila de los bloques digitales. Todos los bloques de la fila pueden utilizarse como fuente para el bus, a su vez un bus de una fila puede ser utilizado como fuente para un bus de otra fila. De esta manera se encuentra una opción muy flexible de enrutamiento.

Estas mismas familias de PSoC poseen una fuente de reloj la cual puede ser dividida por un valor de 8 bits. Este reloj puede ser usado para reemplazar algunas funciones como la velocidad de transmisión.