URL
https://opencores.org/ocsvn/phr/phr/trunk
Subversion Repositories phr
[/] [phr/] [trunk/] [doc/] [informe-tesis/] [reports/] [schedule_2013-08-01/] [schedule.tex] - Rev 280
Go to most recent revision | Compare with Previous | Blame | View Log
% $Id: schedule.tex 227 2014-04-14 14:03:54Z guanucoluis $ \documentclass[11pt,a4paper,oneside]{article} \usepackage[utf8]{inputenc} \usepackage[spanish]{babel} \usepackage{acronym} \usepackage{graphicx} \usepackage{multicol} \usepackage{balance} %\usepackage{subfig} %\usepackage[cm]{fullpage} \usepackage[a4paper]{geometry} %\usepackage{subfigure} \usepackage{float} \usepackage{fancyhdr} \usepackage{caption} \usepackage{subcaption} \usepackage{amssymb} \title{Plataforma de hardware reconfigurable \\ \small{Armado, Testeo y Documentación de las placas (primeras versiones)}} \author{Luis A. Guanuco} \date{Agosto 2013\\\scriptsize{$LastChangedRevision: 242 $}} \pagestyle{fancy} \addtolength{\textheight}{2cm} %\addtolength{\voffset}{-1cm} %\addtolength{\textwidth}{1cm} \begin{document} \maketitle{} %\chead{\includegraphics[width=0.1\textwidth]{images/logov2_ES}} \begin{figure}[h] \centering \includegraphics[width=0.3\textwidth]{images/logov2_ES} \end{figure} \tableofcontents{} \section{Introducción} Luego de la etapa de prototipado se ha logrado las primeras versiones de las diferentes placas. Junto a la documentación generada en anteriores reportes se completa el ciclo de desarrollo del proyecto en su primer versión. En el presente reporte se describirá la etapa final que hace referencia al subtítulo del informe \emph{Armado, Testeo y Documentación de las placas}. En esta etapa también se documentan las futuras modificaciones ya sean por errores que se hayan encontrado o por mejoras para futuras versiones. \section{Conceptos para el Armado} \label{sec:armado} Aquí se busca una metodología a implementar en el proceso de armado de las placas. Si bien a primera vista resulta una actividad sencilla, aquí se utilizan tecnologías \ac{SMD} para los encapsulados y al tener varios componentes es necesario documentar el proceso a seguir. Además se tiene en cuenta que la documentación generada será útil para otros proyectos similares. El proceso de armado podría componerse por, \begin{itemize} \item Identificación de los componentes. \item Instalación y reconocimiento de las herramientas necesarias para el proceso de soldadura \ac{SMD}. \item Testeo visual (utilización de cámaras con zoom) y eléctrico sobre los pines de alimentación de los dispositivos \ac{SMD}, especialmente los dispositivos semiconductores. \end{itemize} \subsection{Identificación de los componentes} \label{sec:arm-ide-comp} Para el armado de las diferentes placas, en principio, se podría suponer que se quieren montar y soldar todos los componentes. Por lo tanto se necesitará disponer de la lista de componentes por cada una de las placas. Se debe tener en cuenta que los componentes \ac{SMD} son de dimensiones muy pequeñas y para algunos dispositivos pasivos no se encuentra visible su valor. Por otro lado, los componentes que tienen una gran cantidad de pines y dimensiones chicas (como por ejemplo los encapsulados \ac{SMD} de los microprocesadores, QFN) son los primeros en ser soldados. Al requerir mayor precisión en la ubicación sobre sus pines es recomendable que no se tenga la incomodidad de otros componentes en aproximaciones del componente. \begin{figure}[hb] \begin{subfigure}{0.3\textwidth} \centering \includegraphics[width=\textwidth]{images/smd-sold-simple} \caption{Soldadura simple.} \label{fig:smd-sold-simple} \end{subfigure} \hfill % -- \begin{subfigure}{0.3\textwidth} \centering \includegraphics[width=\textwidth]{images/smd-sold-media} \caption{Soldadura media.} \label{fig:smd-sold-media} \end{subfigure} \hfill % -- \begin{subfigure}{0.2\textwidth} \centering \includegraphics[width=\textwidth]{images/smd-sold-complex} \caption{Soldadura compleja.} \label{fig:smd-sold-complex} \end{subfigure} % -- \caption{Diferentes niveles de complejidad en el soldado de componentes con varios pines \ac{SMD}.} \label{fig:oocdlink-pcb-3d} \end{figure} \subsection{Herramientas para soldadura \ac{SMD}} \label{sec:arm-smd-tools} La soldadura de componentes \ac{SMD} fácilmente puede ser realizada con los soladores comunes. Los equipos especializados para la soldadura de componentes \ac{SMD} son costosos y en algunos casos innecesarios o fácilmente suplantado con soldadores básicos. Lo que realmente marca una diferencia entre realizar una buena o mala soldadura es tener en cuenta, \begin{description} \item[... un buen Flux] El flux es una resina adherente, que mejora substancialmente la adherencia del estaño. Esta sustancia se presenta en dos formas, una líquida y otra en pasta. \item[... una buena máscara del PCB] La máscara de una placa PCB permite identificar el área sobre el pads que está en contacto con pin/pines de componente a soldar. Esta máscara es de un material aislante y térmicamente resistente al proceso de soldadura. De no existir esta capa sobre el cobre, el estaño se desplazaría por todas las pistas. \end{description} Obviamente que se necesitarán otras herramientas comunes como son, \begin{itemize} \item Lupa o cámara de video con zoom óptico y digital \item Estaño de 0.5 mm de diámetro \item Pinzas para sostener componentes pequeños (SMD) \item Alcohol isopropílico y telas de algodón \item Mallas de cobre para retirar estaño \end{itemize} Cada una de las placas que se armaron siguieron la estructura planteada. En las secciones siguientes se muestran las diferentes placas ya listas y se realizarán observaciones que se encontraron en su armado. \section{Placas armadas} \label{sec:placas} Las placas que se listan a continuación fueron armadas en el orden cronológico dispuesto. El orden fue propuesto por la complejidad que presentan cada una de ellas y la rapidez con la que se podría probar independientemente una de otra. \begin{itemize} \item OOCDLinks \item S3Power \item PHRBoard \end{itemize} Las primeras dos placas ya fueron testeadas anteriormente pero en estas versiones se presentan cambios que no son significativos. La última placa es la continuación del desarrollo llevado anteriormente con la placa FPGA (PHR version BETA)\cite{schedule_2012-08-24}. En la descripción de cada una de las placas armadas se marcarán las \emph{modificaciones} necesarias para mejorar las próximas versiones. \newpage{} \clearpage{} \subsection{OOCDLink} \label{sec:oocdlink} \begin{figure}[h!] \centering \includegraphics[width=0.3\textwidth]{images_informe_adec/OOCDLink-pcb-layers} \caption{Distribución de los componentes en la placa \emph{OOCDLink}.} \label{fig:oocdlik-pcb-layers} \end{figure} \begin{figure}[h!] \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/OOCDLinks-pcb-3d-1} \caption{Perspectiva 1.} \label{fig:oocdlink-pcb-3d-1} \end{subfigure} % -- \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/OOCDLinks-pcb-3d-2} \caption{Perspectiva 2.} \label{fig:oocdlink-pcb-3d-2} \end{subfigure} \caption{Modelo en 3D de la placa \emph{OOCDLink}.} \label{fig:oocdlink-pcb-3d} \end{figure} \begin{figure}[h!] \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/OOCD_placa-foto-1} \caption{Perspectiva 1.} \label{fig:oocdlink-foto-1} \end{subfigure} % -- \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/OOCD_placa-foto-2} \caption{Perspectiva 2.} \label{fig:oocdlink-foto-2} \end{subfigure} \caption{Fotografías de la placa \emph{OOCDLink}.} \label{fig:oocdlink-foto} \end{figure} \subsubsection{Modificaciones} \label{sec:oocdlink-modif} La placa OOCDLink fue la primera en ser armada y probada. Sobre esta placa se realizó un reporte \cite{schedule_2012-03-20} donde se explica como usar con diferentes placas que implementan el protocolo JTAG para la programación y depuración del dispositivo central utilizado. En el proceso de testeo se encontraron varios cambios a implementar en las nuevas versiones. A continuación se describen los más relevantes. \paragraph{Gabinete} Se podría pensar en dimensionar la nueva versión de la placa para que quepa en algún gabinete estándar. Por lo pronto la versión actual tiene agujeros para sujetar en un principio a una base de acrílico. \paragraph{Eliminar resistores} Se podría pensar en eliminar los resistores que se encuentran conectados entre el FT2232D y el conector JTAG. Estos resistores son: $R17$, $R18$ y $R19$. Originalmente se utilizaban los resistores para que la tensión $V_{REF}$, a $3.3V$, y las señales $TDI$, $TMS$ y $TCK$, a $2.5V$, que darán todas adaptadas. Es decir, los resistores funcionaban como divisores resistivos. Para la placa PHR se utilizan las señales JTAG (TDI, TDO, TMS, TCK) y $V_{REF}$ a $2.5V$. Por lo que ya no se necesitan los resistores divisores. \paragraph{Cambio de conector JTAG} Se podría pensar en utilizar otro conector más pequeño relacionado a las dimensiones. El conector que utiliza la placa OOCDLink actualmente es un conector para microcontroladores ARM7, ARM9, ARM10 y XSCALE, denominado \emph{ARM 20-PIN}. Se podría apuntar a que el conector sea compatible con dispositivos programables PLDs de Xilinx. Por ejemplo, el \emph{Xilinx Parallel Cable IV 14-PIN}. En el caso de no querer perder la compatibilidad con las señales de \textsl{debugging} para los microcontroladores ARM, se podría utilizar el mismo conector ARM 20-PIN pero con un encapsulado más pequeño. \paragraph{Usar el FT232H (simple canal)} El FT2232D dispone de dos canales independientes. Uno se utiliza para acceder a un puerto JTAG y el otro como una UART. Si bien la prestación de tener acceso a un puerto serial desde USB resulta muy beneficioso, no lo es así en el costo del programador JTAG. El FT232H cuenta con un solo canal que implementa la tecnología MPSSE (\textsl{Multi-Protocol Synchronous Serial Engine}). De esta forma se tendría un diseño más reducido y de menor costo. \paragraph{Conector micro-USB} Se podría utilizar un conector micro-USB en vez del mini-USB. \paragraph{Utilizar menos indicadores LED} La actual placa tiene muchos indicadores LED. \paragraph{Selección automática del modo de configuración de la FPGA} El modo de configuración de la FPGA actualmente es manual. A través del \textsl{jumper} $K1$ el usuario elije el modo de configuración. Se podría utilizar el canal libre del FT2232D (actualmente UART) para configurar la señales del modo de la FPGA. \newpage{} \clearpage{} \subsection{S3Power} \label{sec:s3power} \begin{figure}[h!] \centering \includegraphics[width=0.3\textwidth]{images_informe_adec/S3Power_layers} \caption{Distribución de los componentes en la placa.} \label{fig:s3power-pcb-layers} \end{figure} \begin{figure}[h!] \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/s3power_pcb_3d_1} \caption{Perspectiva 1.} \label{fig:s3power-pcb-3d-1} \end{subfigure} % --- \begin{subfigure}{0.5\textwidth} \centering n \includegraphics[width=\textwidth]{images_informe_adec/s3power_pcb_3d_2} \caption{Perspectiva 2.} \label{fig:s3power-pcb-3d-2} \end{subfigure} \caption{Modelo en 3D de la placa \emph{S3Power}.} \label{fig:s3power-pcb-3d} \end{figure} \begin{figure}[h!] \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/s3power_foto_1} \caption{Perspectiva 1.} \label{fig:s3power-foto-1} \end{subfigure} % -- \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/s3power_foto_2} \caption{Perspectiva 2.} \label{fig:s3power-foto-2} \end{subfigure} \caption{Fotografías de la placa \emph{S3Power}.} \label{fig:s3power-foto} \end{figure} \subsubsection{Modificaciones} \label{sec:s3power-modif} Para esta versión no hay observaciones/modificaciones que se puedan hacer. Quizá se pueda pensar en el futuro embeber la parte de potencia en la misma placa. En esta versión del proyecto PHR se utilizó la placa S3Power desarrollada por el INTI con la intensión de re-utilizar desarrollos libres y dar un marco de cooperativismo sobre los desarrollos locales. \newpage{} \clearpage{} \subsection{PHRBoard} \label{sec:phrboard} \begin{figure}[h!] \centering \includegraphics[width=0.5\textwidth]{images_informe_adec/PHRboard_layers} \caption{Distribución de los componentes en la placa.} \label{fig:phr-pcb-pcbnew-top} \end{figure} \begin{figure}[h!] \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/PHRboard_3d_1} \caption{Perspectiva 1.} \label{fig:phr-pcb-3d-1} \end{subfigure} % -- \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/PHRboard_3d_2} \caption{Perspectiva 2.} \label{fig:phr-pcb-3d-2} \end{subfigure} \caption{Modelo en 3D de la placa \emph{S3Power}.} \label{fig:phrboard-foto} \end{figure} \begin{figure}[h!] \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/DSCN4528} \caption{Perspectiva 1.} \label{fig:phr-pcb-foto-1} \end{subfigure} % -- \begin{subfigure}{0.5\textwidth} \centering \includegraphics[width=\textwidth]{images_informe_adec/DSCN4529} \caption{Perspectiva 2.} \label{fig:phr-pcb-foto-2} \end{subfigure} \caption{Fotografías de la placa \emph{S3Power}.} \label{fig:phrboard-foto} \end{figure} \subsubsection{Modificaciones} \label{sec:phrboard-modif} \paragraph{Recableado de puertos} En la FPGA XC3S200A se dispone de varios pines de entradas y salidas. Muchos de estos puertos no son bidireccionales. En la primera versión de la \emph{PHRBoard} se tuvo errores en la asignación de algunos puertos de solo-entrada a periféricos de salida. Se ha solucionado el inconveniente ``\emph{recableando}'' estos puertos y asignando a otros bidireccionales. \vspace{.5cm} \begin{tabular}[h]{|l|c|c|} \hline \textbf{Periférico (etiqueta)} & \textbf{PIN FPGA PCB} & \textbf{PIN FPGA corregido} \\ \hline IOports\_display\_seg\_e & 68 & 28 \\ \hline IOports\_led\_8 & 7 & 27 \\ \hline \end{tabular} \vspace{.5cm} Se podría asignar a todos los puertos \emph{solo-entradas} de la FPGA a los periféricos de entrada. \paragraph{Indicadores} Se debería agregar texto que describa las funcionalidades de cada \textsl{jumpers}, conectores, o secciones de la placa PHR. A continuación se describen algunas que se encontraron: \begin{itemize} \item \textsl{Jumper} que configura la FPGA (JTAG - PROM) \item Nombre de cada pin del conector JTAG \item Señalar el sentido de \textsl{ON/OFF} de las llaves (revisar esquemático y el texto sobre el componente que dice ON) \item Números de los pines de los conectores para entradas y salidas de propósito general (especialmente el \emph{PIN 1}). \item Indicación de las frecuencias seleccionadas con el selector de \textsl{clocks}. \item Señalar GND y +5V en la entrada de alimentación. \end{itemize} \paragraph{Conector JTAG} Se podría seguir utilizando el conector de \emph{6 PINES} pero cambiando el \textsl{footprint} de 90 grados, por uno común. También se podría pensar para la nueva versión utilizar un conector estándar de Xilinx por ejemplo el \emph{XILINX PARALLEL CABLE III AND IV 9-PIN}. \paragraph{Resistores \textsl{pullups}} En la versión actual se tiene varios resistores \textsl{pullups} que se pusieron provisoriamente. Se debería chequear cuales quedarían definitivamente y cuales no. \paragraph{Conector E/S} Se debe reemplazar los dos conectores de propósitos generales por un solo conector. Preferentemente se utilizará un conector hembra. Se podría tomar como referencia los conectores estándares de Arduino. \paragraph{Memoria de configuración} Se podría reemplazar la memoria XCF02S de Xilinx por otra memoria de menor costo, por ejemplo SPI. Esto también está vinculado con la disponibilidad del \textsl{software}. El programa \emph{xc3sprog}, en la versión utilizada, soporta memorias SPI y otras más. \newpage{} \clearpage{} \begin{thebibliography}{} \bibitem{schedule_2012-08-24} Luis A. Guanuco, ``Plataforma de hardware reconfigurable (Armado - Testeo y Documentación de las placas de prototipaje)'', Agosto 2012, 2.3.4.~FPGA (PHR version BETA), 8~p. \bibitem{openocd-manual-autoprobing} \ac{openocd}, ``\ac{openocd} User's Guide'', 25 de Noviembre del 2012, 10.7~Autoprobing, 58~p., Versión 0.7.0-dev \bibitem{schedule_2012-03-20} Luis A. Guanuco, ``Plataforma de hardware reconfigurable (JTAG -- Configuración OOCD-Links, (Hardware \& Software)'', Marzo 2013. \end{thebibliography} \newpage{} \clearpage{} \appendix{} \section{Acrónimos} \begin{acronym} \acro{PHR}[PHR]{Plataforma de Hardware Reconfigurable} \acro{openocd}[OpenOCD]{\textsl{Open On-Chip Debugger}} \acro{jtag}[JTAG]{\textsl{Joint Test Action Group}} \acro{TAP}[TAP]{\textsl{Test Access Port}} \acro{SVF}[SVF]{\textsl{Serial Vector Format}} \acro{CPLD}[CPLD]{\textsl{Complex Programmable Logical Device}} \acro{FPGA}[FPGA]{\textsl{Field Programmable Gate Array}} \acro{PROM}[PROM]{\textsl{Programmable Read-Only Memory}} \acro{SO}[SO]{sistema operativo} \acro{GPL}[GPL]{\textsl{General Public License}} \acro{UTN-FRC}{Universidad Tecnológica Nacional -- Facultad Regional Córdoba} \acro{SMD}{\textsl{Surface Mount Soldering}} \end{acronym} \section{Repositorio de proyecto} El proyecto se encuentra alojado en los servidores de \emph{OpenCores}. Por lo que se puede acceder a los repositorios mediante el siguiente link, \texttt{http://opencores.org/project,phr} De todas formas se pueden comunicar por correo, \texttt{guanucoluis@gmail.com}. \end{document}
Go to most recent revision | Compare with Previous | Blame | View Log