Hardware FSM PSoC 4

Este es un proyecto basado en una FSM que vi hace unos años, esta implementada con solo HW (hardware) usando unos Community Components que encontré en el foro de Cypress, en concreto los FlipFlops, aquí los puedes obtener.

Esta es la (famosa jaja) FSM que implemente, es una maquina dispensadora de refrescos:

En el estado 000 se ilumina el led conectado a la salida de Sol.Mon. (Solicita moneda), cuando la entrada M este en '1' pasa al estado 001 si esta en '0' se quedara haciendo un loop en el estado 000, estando ya en el estado 001 dependemos de la entrada MP, si esta en '1' regresa al estado 000, si esta en '0' pasa al estado 010, estando en el estado 010 checamos la entrada EP (equal price = las monedas suman el precio del refresco), si EP esta en '1' pasa al estado 011 (Se ilumina el led conectado a al pin SIRVE), esperamos a que la entrada MS este en '1' para limpiar la maquina (Se ilumina el led conectado a la salida CLR) y regresamos al estado 000. En caso de que EP esté en '0' entonces pasamos al estado 101 y devolvemos el cambio al usuario (Se ilumina el led conectado a la salida CAMBIO), dependemos de la entrada MC, si esta en '1' pasamos al siguiente estado 110 que iluminara el led conectado al pin DEC, y volvemos a checar la entrada EP, si esta en '0' se quedara en un loop en el estado 101.

Acá el esquematico:


El main, donde solo inicialice el clock:


y la distribución de los pines:


En algún post futuro implementare la misma FSM pero con el componente LUT, acá esta la AppNote donde explica cómo hacerlo.

Y un video que encontré mientras buscaba la AppNote (pronto subiré el que hice, mi camara no es muy buena jaja):


y finalmente el proyecto: HW FSM

Comentarios

Entradas más populares de este blog

PSoC Creator Tools

sprintf en PSoC Creator 3.0 y 3.1