tag:blogger.com,1999:blog-63171015661031616052024-03-20T01:36:54.912-06:00Ing. Miguel Montiel MartinezBlog para mis estudiantes de Tecnológico de TeziutlánMikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comBlogger227125tag:blogger.com,1999:blog-6317101566103161605.post-5248641466424352862023-01-17T19:45:00.004-06:002023-01-17T19:45:42.081-06:00¿FIN?<p> Hace unos años inicie este blog como una forma es poner algunos tópicos de clase, pero ya no le veo tanto caso, la última vez que toque esta puerta, fue hace tres años. El tiempo pasa muy rápido, vaya que si no. No sé si vuelva a escribir por aquí. no sé sí lo podré o lo haré de nuevo.</p><p>El material se queda como histórico, ya que mucha de la información vertida aquí, ya no aplica, pero otra tanta sí. Espero estimado lector, que los temas aún te sean útiles.</p>Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-86698464146085124772020-02-03T19:28:00.001-06:002020-02-03T19:28:07.417-06:00Métodos para transformada inversa Z<a href="https://drive.google.com/file/d/1as7tXbKi0GpFRH7gGn3-Vsjv-jr0YR_5/view?usp=sharing" target="_blank">Descargar</a><br />
<br />
<iframe height="480" src="https://drive.google.com/file/d/1as7tXbKi0GpFRH7gGn3-Vsjv-jr0YR_5/preview" width="480"></iframe>
<br />
<br />Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-20608076284999070332020-01-26T17:56:00.001-06:002020-01-26T17:56:51.601-06:00Instalación de MPLAB X 5.3 y XC8 en Manjaro Linux<iframe width="560" height="315" src="https://www.youtube.com/embed/lst3fJGW4Y4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comCarr Aguascalientes-Villa Hidalgo, Villa Hidalgo, Jal., México21.698265726233782 -102.56835975000001-3.8237687737662185 -143.87695375 47.220300226233782 -61.259765750000014tag:blogger.com,1999:blog-6317101566103161605.post-76288359933286647202020-01-26T13:55:00.000-06:002020-01-26T13:55:36.445-06:00[Video] Uso de Atom en Manjaro y uso para trabajar con ensamblador para AVR como editorEn el siguiente video, muestro la forma en que se usa el editor Atom para trabajar con ensamblador de AVR, aclaro que no es usado Atom para el ensamble, solo como editor.
<iframe width="560" height="315" src="https://www.youtube.com/embed/I2Qdv3idSMg" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-72306641123573888312020-01-26T13:16:00.000-06:002020-01-26T13:16:56.410-06:00Instalación de software para programar microcontroladores AVR en Manjaro Linux desde la consolaA continuación muestro en formato de video, la manera de instalar el software necesario para programar microcontroladores AVR en un ambiente Manjaro desde la terminal, cabe mencionar que esta instalación fue hecha desde una instalación limpia.<br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/nuo79mGSoJM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<br />Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-58200993584019876502020-01-06T19:15:00.001-06:002020-01-06T19:15:05.811-06:00Manjaro de nueva cuentaHace un buen rato que no escribo, cada vez es menor el tiempo que a este blog le he dedicado, sin embargo, no deseo dejarlo morir, por el momento estoy haciendo una restauración de una gateway mx6947m, la cual ya tenia como año y medio con Manjaro Linux, pero al parecer las ultimas actualizaciones, han hecho que se crashee un poco y pasó que, en la última actualización, el kernel no se instaló adecuadamente, y ya no arranca.<br />
<br />
Al parecer la solución está aquí:<br />
https://classicforum.manjaro.org/index.php?topic=1011.0<br />
<br />
probaré esta opción y veamos que tal, y es que este equipo le tengo aprecio ya que tiene conmigo desde el 2007, hay algunas entradas que hice directamente desde ese equipo, y ahora quien lo usa es mi hija, para jugar al Minecraft.<br />
<br />
<br />Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-88835265731953626912019-03-18T21:25:00.005-06:002019-03-18T21:25:51.756-06:00Octave y sus paquetes en FedoraDejando algunas prácticas a los estudiantes, algunos de ellos tuvieron problemas para instalar los paquetes necesarios para la materia de Sistemas Digitales de Control en la distro Fedora, algunos optaron por cambiar de distro, y pues algunos aun insisten, sin embargo a casi dos meses y medio de no ver resultados positivos, voy a publicar como realizar la instalación<br />
<br />
Buscando en google, en http://savannah.gnu.org/bugs/?49071, mencionan el problema que tienen mis estudiantes, no pueden instalar algunos de los paquetes y mencionan exactamente el mismo error<br />
<br />
<div class="quote">
>> pkg -forge install linear-algebra
<br />
</div>
g++: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
<br />
configure: error: Could not run /usr/bin/mkoctfile-4.0.3<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqLfkD22BzjiRtUvKFGjJTeSksTkA9fmavyVbeqREhKQ0f_KujUg6-ALg1tOyKjApjY6iOsiQQ5X5Z8W0GoZHdCoVTEHa5fY2x6KMjU1oN1ssbX_DtwDZ8_lQOhEOa_U9d9j6HB3ucZsQ/s1600/falloOctavePaquetes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="394" data-original-width="674" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqLfkD22BzjiRtUvKFGjJTeSksTkA9fmavyVbeqREhKQ0f_KujUg6-ALg1tOyKjApjY6iOsiQQ5X5Z8W0GoZHdCoVTEHa5fY2x6KMjU1oN1ssbX_DtwDZ8_lQOhEOa_U9d9j6HB3ucZsQ/s320/falloOctavePaquetes.png" width="320" /></a></div>
y esto sucede por que hay algunos paquetes de octave que se pueden instalar con DNF, pero otros, como el que se muestra no, en el caso de mi materia, los paquetes necesarios son control, signal, instrument-control.<br />
<br />
De acuerdo a la página, uno de los mantenedores escribe lo siguiente<br />
<br />
"houston, we have a winner -- kind of sick that (fedora?) is requiring rpm config files... as i am not repackaging this...
<br />
<br />
(i've included the forge install dump, for the two warnings.)
<br />
<br />
<b>$ dnf install redhat-rpm-config
</b><br />
<br />
<div class="quote">
>> pkg -forge install linear-algebra"</div>
<div class="quote">
<br /></div>
<div class="quote">
esto significa que solo debemos instalar el paquete que nos menciona </div>
<div class="quote">
<br /></div>
<div class="quote">
En el caso de signal, Fedora 29, no se molesta,</div>
<div class="quote">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUCU_CbR7V4SAT5qqmLva6pkE__DHrJDAecO00rHkmhMmW6ARnBB5QfJEZd3OhW-ZrWeGt3Qyj8NCchHn4PCpXUouEIgL5y700KBflQZI01gtx1uB53qXgpMlF0E7-M0a7dOm8TJcZS2g/s1600/PosteriorAlaInstalacionCorrectiva.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="112" data-original-width="696" height="51" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUCU_CbR7V4SAT5qqmLva6pkE__DHrJDAecO00rHkmhMmW6ARnBB5QfJEZd3OhW-ZrWeGt3Qyj8NCchHn4PCpXUouEIgL5y700KBflQZI01gtx1uB53qXgpMlF0E7-M0a7dOm8TJcZS2g/s320/PosteriorAlaInstalacionCorrectiva.png" width="320" /></a></div>
<div class="quote">
<br /></div>
<div class="quote">
pero el paquete instrument-control, pone unos peros en la pantalla</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFrJMjlfQNTBAKMhBN8JPzJ2nW5A8GMs-oC7wbaZdaORLZCuAEfikxaNH_2zeRaUWtMENiVoRBpONWh9bwoaoIqVnRf66Wqo9PHCf2mvIQciYvSZ09sFAp6eRNwbaGB3EszW69IC6jank/s1600/LaFormaEnQueSeQuejaInstrumentControlyError.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="381" data-original-width="657" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFrJMjlfQNTBAKMhBN8JPzJ2nW5A8GMs-oC7wbaZdaORLZCuAEfikxaNH_2zeRaUWtMENiVoRBpONWh9bwoaoIqVnRf66Wqo9PHCf2mvIQciYvSZ09sFAp6eRNwbaGB3EszW69IC6jank/s320/LaFormaEnQueSeQuejaInstrumentControlyError.png" width="320" /></a></div>
<div class="quote">
<br /></div>
<div class="quote">
Aunque, después de muchas advertencias se instala correctamente.</div>
<div class="quote">
Ahora, el hecho de que se instala, no quiere decir que vaya a funcionar, por eso mismo, se corre el script que se indica en la Wiki de Octave (https://wiki.octave.org/Instrument_control_package#Serial) y funciona</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUtnaCUT296OnQ_j4LA6UcF04F73QAtXmWtHwHeu3CiB_d8Q10VeLG0WreRcsxnnZnANClRnlH6y3Lbi7y7L7tRobU1YwMtGZuoSRf25760kSTYnXxWp63FGz_IPpKvw0BnREJBFy3dKM/s1600/FinalizaciondeInstalacionInstrumentControlyPruebadeFuncionamiento.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="257" data-original-width="695" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUtnaCUT296OnQ_j4LA6UcF04F73QAtXmWtHwHeu3CiB_d8Q10VeLG0WreRcsxnnZnANClRnlH6y3Lbi7y7L7tRobU1YwMtGZuoSRf25760kSTYnXxWp63FGz_IPpKvw0BnREJBFy3dKM/s320/FinalizaciondeInstalacionInstrumentControlyPruebadeFuncionamiento.png" width="320" /></a></div>
Espero que lo lean a tiempo mis estudiantes :)<br /><div class="quote">
<br /></div>
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-34641138562923821282018-11-23T01:08:00.000-06:002018-11-23T01:08:26.713-06:00Error while loading shared libraries: libbz2.so.1.0: cannot open shared object file Fedora 29 con atom y Apio-ideAcabo de instalar Apio IDE en Atom sobre una caja Fedora 29, y lo que me encontré que al tratar de simular uno de los ejemplos, se marcaba un error, el cual indicaba que no encontraba la librería indicada en título de este post.
De acuerdo a lo expuesto en esta <a href="https://michaelheap.com/error-while-loading-shared-libraries-libbz2-so-1-0-cannot-open-shared-object-file-on-centos-7">página</a> basta con instalar el paquete bzip2-devel, el cual una vez instalado, en mi pc, me arroja el siguiente resultado<br />
<br />
/usr/lib64/libbz2.so.1.0.6<br />
<br />
sin embargo el sistema sigue solicitando libbz2.so.1.0, por lo que tal y como se indica en dicho blog, se tiene que crear un link del modo siguiente: <br />
<br />
<pre class=" language-bash"><code class=" language-bash"><span class="token function">sudo</span> <span class="token function">ln</span> -s `find /usr/lib64/ -type f -name <span class="token string">"libbz2.so.1*"</span>` /usr/lib64/libbz2.so.1.0</code></pre>
<pre class=" language-bash"><code class=" language-bash"> </code></pre>
<pre class=" language-bash"><code class=" language-bash"> </code>
<code class=" language-bash">ya realizado este paso, se puede presentar la simulación correspondiente</code></pre>
<pre class=" language-bash"><code class=" language-bash"> </code></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWt5-MdMbACXLfGXqv0zoZUeMcR4jWzjZE8MAqEkB0jH0JMWsp4W8QhPuZl_6ZTDG6brnnLgdJ8ZRHREC15IRpLsHqdnBd3xjm7FLyHixzLmXW3ahgqjuzr9bb6r42vkJHzKLXcRdA5pA/s1600/Screenshot_20181123_010733.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="566" data-original-width="1013" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWt5-MdMbACXLfGXqv0zoZUeMcR4jWzjZE8MAqEkB0jH0JMWsp4W8QhPuZl_6ZTDG6brnnLgdJ8ZRHREC15IRpLsHqdnBd3xjm7FLyHixzLmXW3ahgqjuzr9bb6r42vkJHzKLXcRdA5pA/s320/Screenshot_20181123_010733.png" width="320" /></a></div>
<pre class=" language-bash"><code class=" language-bash"> </code></pre>
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-20234090798680736212018-09-08T23:29:00.002-05:002018-09-08T23:31:39.945-05:00Fedora 28 y Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network AdapterEsta es la tarjeta que trae mi nueva maquina, una HP Pavilion CW0007LA, la cual compre por que tiene un procesador RYZEN3, sin embargo, con Fedora 28, no me reconoce la tarjeta Realtek, pero espero que siguiendo los pasos indicados en este ask de Fedora, pueda resolver el problema
https://ask.fedoraproject.org/en/question/123980/how-do-i-make-a-realtek-rtl8821ce-pci-adapter-work-in-fedora-28/
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-20730658555833093262018-09-02T10:05:00.001-05:002018-09-02T10:05:39.873-05:00pickit 3 Initialization failed: Unable to create ControlPointMediatorEsta entrada esta dedicada al error que marca el PIckit 3 en W10 a través del MPLAB IPE
ya que al tratar de programar éste, marca el error
Initialization failed: Unable to create ControlPointMediator
Aun no lo resuelvo, pero se descarga la aplicación del pickit 3, similar a la que hay
para el Pickit2 (En especial agradecimiento a mi estudiante Armenta, ya que el me comento
de dicha aplicación), de el siguiente link
http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit3%20Programmer%20Application%20v3.10.zip
La página de donde salio esta información está en
http://microchipdeveloper.com/pickit3:connection-failure-error
De acuerdo a lo que menciona el software, el programador está en modo MPLAB, y como el
programador que tengo es clon, en los foros menciona que este programador, tiene el
defecto de que se bloquea de vez en vez, por lo que hay que descargar el sistema operativo
de nueva cuenta al programador.
El detalle, es que el IPE, aún descargando el sistema operativo, sigue marcando el mismo
error.
En el caso de la aplicación pickit3, me marca un error al tratar de cerrarla, esto es
hasta cierto punto aceptable, ya que cuando se descarga la app, se menciona en la pagina
que el software solo funciona en win XP y win 7
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-31586702616534232142018-08-03T00:53:00.001-05:002018-09-08T23:31:16.062-05:00(Actualizacion) Algunas distros GNU/Linux y HP Pavilion CW0007LAHace unos dias baje las siguientes distros, Fedora 28, Ubuntu 18.04 y OpenSUSE LEAP 15, para probar el funcionamiento de una laptop HP Pavilion CW0007LA. La siguiente situación se dió:
Ubuntu inicia muy rápido, reconoce bien el video, pero en el modo live, el display se rota, como si de una tablet se tratara, no funciona el audio, ni se detecta la tarjeta de red inalámbrica
OpenSUSE LEAP 15, se inicia el equipo, la tarjeta de video (APU Ryzen3 + Vega6) no se configura adecuadamente, si funciono el audio, pero no reconoce la tarjeta de comunicación inalámbrica, ni el bluetooth.
Fedora 28, no iniciaba correctamente, supongo que la imagen grabada en la memoria no está bien grabada. (Eso fue el problema de hecho estoy escribiendo desde Fedora 28 en su Spin KDE plasma)
Después de esto, parece que tendrá que esperar un rato en lo que se actualiza el kernel de Linux para reconocer esta APU.
Me falto probar Manjaro :( Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-6705546838294945622018-05-12T08:44:00.000-05:002018-05-12T08:47:22.687-05:00GitHub y algunos programas base para microcontroladoresA continuación coloco el link para mi GitHub, donde están alojados algunos de los códigos que he usado para la materia de microcontroladores en el ITS Teziutlán, todos los programas están en XC8 de Microchip y los proyectos elaborados para MPLABX v4.05, los programas se pueden compilar para los micros PIC18F420, PIC18F4450, PIC18F4520, PIC18F45K50, consulte la carpeta Mylibs en los archivos configx.h
Finalmente, la frecuencia de reloj que se usa es de 4MHz, sin utilizar el preescalamiento, para hacer uso, modifique los archivos configx.h según su conveniencia
<a href="https://github.com/maigke/ProgramasMicrocontroladoresPIC18F4520">Mi GitHub
</a>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4XBZ7hsnyoEoFoPKQsYFdD1L6F4l2T22XIVes9UpRl2yXlM2fZnRwlxRuk5HhMcAGUUx6vx_npa8usnav0IWjcDIeaR5zuG0vabQDcM6DhU2v4pfKMQVPpSpl2z7EJhvsJff9jmPcO20/s1600/Captura+de+pantalla+de+2018-05-12+08-46-19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4XBZ7hsnyoEoFoPKQsYFdD1L6F4l2T22XIVes9UpRl2yXlM2fZnRwlxRuk5HhMcAGUUx6vx_npa8usnav0IWjcDIeaR5zuG0vabQDcM6DhU2v4pfKMQVPpSpl2z7EJhvsJff9jmPcO20/s200/Captura+de+pantalla+de+2018-05-12+08-46-19.png" width="200" height="88" data-original-width="1289" data-original-height="567" /></a></div>
Un abrazo y gran saludosMikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-42378684665416450842018-05-09T22:57:00.001-05:002018-05-09T22:57:45.119-05:00Error al ejecutar MATLAB R2017 en Fedora 27x64Después de no anotar nada en mucho tiempo, vuelvo a escribir una nota breve, ahora, después de hacer una instalación en mi equipo con Fedora 27 de MATLAB, éste marcaba un error con la librería de GCC para realizar gráficas; después de leer un poco en tiempos cortos, encontré en el siguiente foro que el fallo puede arreglarse por dos medios
1.- Se renombra la librería que trae por defecto MATLAB, la cual se encuentra en la dirección matlabroot/sys/os/glnxa64 por libstdc++.so.6.old, en donde matlabroot es la direcciónn donde se encuentra instalado MATLAB
2.- La otra opción que se sugiere, es la de agregar una línea en el .bashrc para que MATLAB se vea forzado a utilizar la librería de GCC del sistema.
El error que marca es: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by OpenSees)Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-21083726962789078462017-10-21T14:47:00.001-05:002017-10-21T14:47:41.657-05:00GHDL, UMHDL y Quartus en Fedora 25 y 26Una serie de videos en relación a GHDL<br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/01FWugMQr5Q" frameborder="0" allowfullscreen></iframe>
<br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/Z411JZq3yVQ" frameborder="0" allowfullscreen></iframe>
<br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/o2qUcOUasNI" frameborder="0" allowfullscreen></iframe>
<br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/0FCKMA707Bo" frameborder="0" allowfullscreen></iframe>
<br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/BxMhO4jPNEM" frameborder="0" allowfullscreen></iframe>
<br />
<br/ >
<iframe width="560" height="315" src="https://www.youtube.com/embed/A5XYToz2-eA" frameborder="0" allowfullscreen></iframe>Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-81838750704724652802017-09-24T18:08:00.001-05:002017-09-24T18:08:08.547-05:00Baricentro de un triangulo escaleno (geometría analítica)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgCuOm3Ast3YgRjtZyq1v9Sj-A0cq6bCYpTUapts-xjg5hNoqvvJg8I4-8HXMPFewtr-QUcH28biw1OM-IFW1VaZ2JE1Lk30yjEQVvgailU3R5CrG7wwVtEHysCXy8XWdW7mNbT3zyfw/s1600/0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1237" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgCuOm3Ast3YgRjtZyq1v9Sj-A0cq6bCYpTUapts-xjg5hNoqvvJg8I4-8HXMPFewtr-QUcH28biw1OM-IFW1VaZ2JE1Lk30yjEQVvgailU3R5CrG7wwVtEHysCXy8XWdW7mNbT3zyfw/s640/0.jpg" width="494" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCM2qeUhrBpxPK42rToHIuSoSJPc7MCnovuw2odFT7tlcC4OehOvXKMxtlvArGxx5X61HgKKjhcCtAmP5Qni7E6spJekNhKQIV-VFcCXyQbQAjPA0pdOB_-KQFYwDNyZ-2_cfdY3O708E/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1237" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCM2qeUhrBpxPK42rToHIuSoSJPc7MCnovuw2odFT7tlcC4OehOvXKMxtlvArGxx5X61HgKKjhcCtAmP5Qni7E6spJekNhKQIV-VFcCXyQbQAjPA0pdOB_-KQFYwDNyZ-2_cfdY3O708E/s640/1.png" width="494" /></a></div>
<br />Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-61584391959208276322017-09-24T18:05:00.003-05:002017-09-24T18:05:45.071-05:00Recuperando un ATmega48PA con USBASP y AVRBur-o-matic en windowsBueno sucede que un estudiante me dijo que tenia 3 circuitos atmega48pa que no los podia programar, y la cuestion es que se hizo bolas con los FUSES y por otra cosa que me dijo, habia conectado de forma incorrecta los micros.<br />
<br />
En esta maquina desde la que escribo cuento con el programa AVRBurn-o-matic que es una interfaz para el AVRDUDE que viene con winAVR, sin embargo aqui no teniada dado de alta la programacion del atmega48pa, solo la del atmega48, los cuales tienen diferentes "signatures"<br />
<br />
Como segurantemen en los fuses habia un problema con el socilador, lo que hago es poner un cristal de cualquier valor (que no sea mayor a 16MHz) en las terminales PB7 y PB6 con sus respectivos capacitores.<br />
<br />
en cuanto al software hay que editar el archivo que se encuentra en C:/winavr/bin/avrdude.conf al agregar las siguientes lineas (http://electronics.stackexchange.com//questions/3721/avrdude-and-atmega48pa)<br />
<br />
#------------------------------------------------------------<br />
# ATmega48PA<br />
#------------------------------------------------------------<br />
part<br />
id = "m48pa";<br />
desc = "ATMEGA48PA";<br />
has_debugwire = yes;<br />
flash_instr = 0xB6, 0x01, 0x11;<br />
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,<br />
0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,<br />
0x99, 0xF9, 0xBB, 0xAF;<br />
stk500_devcode = 0x59;<br />
signature = 0x1e 0x92 0x0a;<br />
pagel = 0xd7;<br />
bs2 = 0xc2;<br />
chip_erase_delay = 45000;<br />
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",<br />
"x x x x x x x x x x x x x x x x";<br />
<br />
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",<br />
"x x x x x x x x x x x x x x x x";<br />
<br />
timeout = 200;<br />
stabdelay = 100;<br />
cmdexedelay = 25;<br />
synchloops = 32;<br />
bytedelay = 0;<br />
pollindex = 3;<br />
pollvalue = 0x53;<br />
predelay = 1;<br />
postdelay = 1;<br />
pollmethod = 1;<br />
<br />
pp_controlstack =<br />
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,<br />
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,<br />
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,<br />
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;<br />
hventerstabdelay = 100;<br />
progmodedelay = 0;<br />
latchcycles = 5;<br />
togglevtg = 1;<br />
poweroffdelay = 15;<br />
resetdelayms = 1;<br />
resetdelayus = 0;<br />
hvleavestabdelay = 15;<br />
resetdelay = 15;<br />
chiperasepulsewidth = 0;<br />
chiperasepolltimeout = 10;<br />
programfusepulsewidth = 0;<br />
programfusepolltimeout = 5;<br />
programlockpulsewidth = 0;<br />
programlockpolltimeout = 5;<br />
<br />
memory "eeprom"<br />
paged = no;<br />
page_size = 4;<br />
size = 256;<br />
min_write_delay = 3600;<br />
max_write_delay = 3600;<br />
readback_p1 = 0xff;<br />
readback_p2 = 0xff;<br />
read = " 1 0 1 0 0 0 0 0",<br />
" 0 0 0 x x x x x",<br />
" a7 a6 a5 a4 a3 a2 a1 a0",<br />
" o o o o o o o o";<br />
<br />
write = " 1 1 0 0 0 0 0 0",<br />
" 0 0 0 x x x x x",<br />
" a7 a6 a5 a4 a3 a2 a1 a0", <br />
" i i i i i i i i";<br />
<br />
loadpage_lo = " 1 1 0 0 0 0 0 1",<br />
" 0 0 0 0 0 0 0 0",<br />
" 0 0 0 0 0 0 a1 a0",<br />
" i i i i i i i i";<br />
<br />
writepage = " 1 1 0 0 0 0 1 0",<br />
" 0 0 x x x x x x",<br />
" a7 a6 a5 a4 a3 a2 0 0",<br />
" x x x x x x x x";<br />
<br />
mode = 0x41;<br />
delay = 5;<br />
blocksize = 4;<br />
readsize = 256;<br />
;<br />
memory "flash"<br />
paged = yes;<br />
size = 4096;<br />
page_size = 64;<br />
num_pages = 64;<br />
min_write_delay = 4500;<br />
max_write_delay = 4500;<br />
readback_p1 = 0x00;<br />
readback_p2 = 0x00;<br />
read_lo = " 0 0 1 0 0 0 0 0",<br />
" 0 0 0 0 0 a10 a9 a8",<br />
" a7 a6 a5 a4 a3 a2 a1 a0",<br />
" o o o o o o o o";<br />
<br />
read_hi = " 0 0 1 0 1 0 0 0",<br />
" 0 0 0 0 0 a10 a9 a8",<br />
" a7 a6 a5 a4 a3 a2 a1 a0",<br />
" o o o o o o o o";<br />
<br />
loadpage_lo = " 0 1 0 0 0 0 0 0",<br />
" 0 0 0 x x x x x",<br />
" x x x a4 a3 a2 a1 a0",<br />
" i i i i i i i i";<br />
<br />
loadpage_hi = " 0 1 0 0 1 0 0 0",<br />
" 0 0 0 x x x x x",<br />
" x x x a4 a3 a2 a1 a0",<br />
" i i i i i i i i";<br />
<br />
writepage = " 0 1 0 0 1 1 0 0",<br />
" 0 0 0 0 0 a10 a9 a8",<br />
" a7 a6 a5 x x x x x",<br />
" x x x x x x x x";<br />
<br />
mode = 0x41;<br />
delay = 6;<br />
blocksize = 64;<br />
readsize = 256;<br />
;<br />
<br />
memory "lfuse"<br />
size = 1;<br />
min_write_delay = 4500;<br />
max_write_delay = 4500;<br />
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",<br />
"x x x x x x x x o o o o o o o o";<br />
<br />
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",<br />
"x x x x x x x x i i i i i i i i";<br />
;<br />
<br />
memory "hfuse"<br />
size = 1;<br />
min_write_delay = 4500;<br />
max_write_delay = 4500;<br />
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",<br />
"x x x x x x x x o o o o o o o o";<br />
<br />
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",<br />
"x x x x x x x x i i i i i i i i";<br />
;<br />
<br />
memory "efuse"<br />
size = 1;<br />
min_write_delay = 4500;<br />
max_write_delay = 4500;<br />
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",<br />
"x x x x x x x x x x x x x x x o";<br />
<br />
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",<br />
"x x x x x x x x x x x x x x x i";<br />
;<br />
<br />
memory "lock"<br />
size = 1;<br />
min_write_delay = 4500;<br />
max_write_delay = 4500;<br />
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",<br />
"x x x x x x x x x x o o o o o o";<br />
<br />
write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",<br />
"x x x x x x x x 1 1 i i i i i i";<br />
;<br />
<br />
memory "calibration"<br />
size = 1;<br />
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",<br />
"0 0 0 0 0 0 0 0 o o o o o o o o";<br />
;<br />
<br />
memory "signature"<br />
size = 3;<br />
read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",<br />
"x x x x x x a1 a0 o o o o o o o o";<br />
;<br />
; <br />
<br />
Pero esto no basta, ya que el AVRBURN-o-matic accesa a su menu desde un archivo XML que se encuentra en C:\Program Files (x86)\AVR Burn-O-Mat/AVR8_Burn_O_Mat_config.xml<br />
<br />
y se agregan las siguientes lìneas<br />
<br />
<avr caption="ATmega48pa" name="m48pa"><br /> <fuse bit="7" default="1" desc="unused" fusebyte="efuse" mode="expert" name="UNUSED_E7"><br /> <fuse bit="6" default="1" desc="unused" fusebyte="efuse" mode="expert" name="UNUSED_E6"><br /> <fuse bit="5" default="1" desc="unused" fusebyte="efuse" mode="expert" name="UNUSED_E5"><br /> <fuse bit="4" default="1" desc="unused" fusebyte="efuse" mode="expert" name="UNUSED_E4"><br /> <fuse bit="3" default="1" desc="unused" fusebyte="efuse" mode="expert" name="UNUSED_E3"><br /> <fuse bit="2" default="1" desc="unused" fusebyte="efuse" mode="expert" name="UNUSED_E2"><br /> <fuse bit="1" default="1" desc="unused" fusebyte="efuse" mode="expert" name="UNUSED_E1"><br /> <fuse bit="0" default="1" desc="Self Programming Enable" fusebyte="efuse" name="SELFPRGEN"><br /><br /> <fuse bit="7" default="1" desc="Select if PC6 is I/O pin or RESET pin" fusebyte="hfuse" mode="expert" name="RSTDISBL"><br /> <fuse bit="6" default="1" desc="debugWIRE enable" fusebyte="hfuse" mode="expert" name="DWEN"><br /> <fuse bit="5" default="0" desc="Enable Serial Program and Data Downloading" fusebyte="hfuse" mode="expert" name="SPIEN"><br /> <fuse bit="4" default="1" desc="Watchdog timer always on" fusebyte="hfuse" name="WDTON"><br /> <fuse bit="3" default="1" desc="EEPROM memory is preserved through the Chip Erase" fusebyte="hfuse" name="EESAVE"><br /> <fuse bit="2" default="1" desc="Brown out detector trigger level" fusebyte="hfuse" name="BODLEVEL2"><br /> <fuse bit="1" default="1" desc="Brown out detector trigger level" fusebyte="hfuse" name="BODLEVEL1"><br /> <fuse bit="0" default="1" desc="Brown out detector trigger level" fusebyte="hfuse" name="BODLEVEL0"><br /><br /> <fuse bit="7" default="0" desc="Devide clock by 8" fusebyte="lfuse" name="CKDIV8"><br /> <fuse bit="6" default="1" desc="Clock output" fusebyte="lfuse" name="CKOUT"><br /> <fuse bit="5" default="1" desc="Select start-up time" fusebyte="lfuse" name="SUT1"><br /> <fuse bit="4" default="0" desc="Select start-up time" fusebyte="lfuse" name="SUT0"><br /> <fuse bit="3" default="0" desc="Select Clock source" fusebyte="lfuse" name="CKSEL3"><br /> <fuse bit="2" default="0" desc="Select Clock source" fusebyte="lfuse" name="CKSEL2"><br /> <fuse bit="1" default="1" desc="Select Clock source" fusebyte="lfuse" name="CKSEL1"><br /> <fuse bit="0" default="0" desc="Select Clock source" fusebyte="lfuse" name="CKSEL0"><br /><br /> <brownoutdetection><br /> <fuse name="BODLEVEL2"><br /> <fuse name="BODLEVEL1"><br /> <fuse name="BODLEVEL0"><br /> <setting caption="disabled" fuse1="1" fuse2="1" fuse3="1" nbsp=""><br /> <setting caption="1.8V (1.7V - 2.0V)" fuse1="1" fuse2="1" fuse3="0"><br /> <setting caption="2.7V (2.5V - 2.9V)" fuse1="1" fuse2="0" fuse3="1"><br /> <setting caption="4.3V (4.1V - 4.5V)" fuse1="1" fuse2="0" fuse3="0"><br /> </setting></setting></setting></setting></fuse></fuse></fuse></brownoutdetection><br /><br /> <oscillatoroptions type="ATmega48"><br /><br /> </oscillatoroptions></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></fuse></avr><br />
<br />Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-66049837630095297992017-09-24T18:05:00.002-05:002017-09-24T18:05:20.555-05:00Ejemplo de uso de condiciones no importa en Mapas de Karnaugh de 4 variables<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPNQ4Q80mybnggfJMPuCcg8sKrstX-VmsJFiyy2gLvM2T5PWOJaLXMIIFJtNAywstH6bIlyPq0JYZBO0W-zbJLKYK-Qw4QzsUmxRWex81KhAL6pFT2ab_Q-xJYZSfE0YObk9l5LnDC_mA/s1600/0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1237" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPNQ4Q80mybnggfJMPuCcg8sKrstX-VmsJFiyy2gLvM2T5PWOJaLXMIIFJtNAywstH6bIlyPq0JYZBO0W-zbJLKYK-Qw4QzsUmxRWex81KhAL6pFT2ab_Q-xJYZSfE0YObk9l5LnDC_mA/s640/0.png" width="492" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCn8fhyrKxwzlJJbAvkx9JVnnpBWPKK-mIFEZLvhrEi2vJFWZBKHWFBvmGJnIhu41ppyo5TVcZYOhv7-MDnw8D6TqOlsQCucsbXtahttSWky3cAok6BehvdUITy1FUZetTKWKHAxrqeB4/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1237" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCn8fhyrKxwzlJJbAvkx9JVnnpBWPKK-mIFEZLvhrEi2vJFWZBKHWFBvmGJnIhu41ppyo5TVcZYOhv7-MDnw8D6TqOlsQCucsbXtahttSWky3cAok6BehvdUITy1FUZetTKWKHAxrqeB4/s640/1.png" width="494" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU6q9eim1DT3gexrv2L21jBImIA914BClVs1sgCZiEPPI_WZE-3XmViGpuN7msqdzdYNszoAZ5fGekX4tlWPu6IurF8hEVTsKYlyL4IaYrX_GLrCzoEJaNvPkfI4t-LAzwAgZ8XC8dnlg/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1237" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU6q9eim1DT3gexrv2L21jBImIA914BClVs1sgCZiEPPI_WZE-3XmViGpuN7msqdzdYNszoAZ5fGekX4tlWPu6IurF8hEVTsKYlyL4IaYrX_GLrCzoEJaNvPkfI4t-LAzwAgZ8XC8dnlg/s640/2.png" width="494" /></a></div>
<br />Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-2450788359525255262017-05-25T00:20:00.002-05:002017-05-25T00:20:38.487-05:00icestorm, apio-ide y icestudio en Fedora 25Animado por la adquisición de una tarjeta icestick, así como lo que ha compartido @obijuan_cube sobre el mundo de las FPGA's Libres, me he animado a realizar la instalación del software para realizar las prácticas para mis estudiantes de electrónica digital del ITS Teziutlán, naturalmente apoyado del material que en FPGAWARS existe.<br />
<br />
No me queda mas que decir que, la instalación es muy cómoda para el sistema Fedora 25, en relación al iceStorm de Clifford Wolf y Mathias Lasser, las instrucciones para la instalación es muy simple, tal cual están los comandos en su sitio (git clone, make y make install), funcionan perfectamente. Por otro lado, solo unos pequeños traspiés en la instalación de ATOM, el IDE para trabajar con el ecosistema APIO, que para FEDORA, se debe descargar el RPM y realizar la instalación por medio de dnf<br />
<br />
sudo dnf install ./atom.x86_64.rpm<br />
<br />
ademas, para que funcione adecuadamente la simulación en APIO-IDE, es necesario realizar un link simbólico a la librerias del bzip2 de la forma siguiente<br />
<br />
sudo ln -s /usr/lib64/libbz2.so.1.0.6 /usr/lib64/libbz2.so.1.0<br />
<br />
Para el ICESTUDIO, elegi usar el appimage x64 que viene en formato .ZIP, solo se trata de descomprimir y ejecutar, creo mas sencillo no puede ser!!!<br />
<br />
Les dejo algunos pantallazos<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU1o64wUJiacbWSgfYDU93Q_u-lZVzutfmBfvhh_ZIo5E7v8G6ysiozvYItZkfoVRfPCziT5FNgjnimcT1-T5f7zeyjyv23fc3-b8YkcTEmXJ_poVnxDYcfc1WUkCxBJky7sE39pizFuA/s1600/Selecci%25C3%25B3n_091.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="630" data-original-width="1188" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU1o64wUJiacbWSgfYDU93Q_u-lZVzutfmBfvhh_ZIo5E7v8G6ysiozvYItZkfoVRfPCziT5FNgjnimcT1-T5f7zeyjyv23fc3-b8YkcTEmXJ_poVnxDYcfc1WUkCxBJky7sE39pizFuA/s320/Selecci%25C3%25B3n_091.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7foeJenDzI5kRgNriyIe8S_nQuTD1Wh98VOo-bK9oFybaRMuMFqJB9zLPQHoopPX8-vAG2bILXaQbfAY5n3B4g1O3NLrv3X2mQ1b4tDSB-QPgddPYaXf_AS6BbLuFE0_sCLnTJM8qFEI/s1600/leds.pcf+%25E2%2580%2594+%257E-Documentos-Verilog_ice-PruebaAtom+%25E2%2580%2594+Atom_090.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="741" data-original-width="1366" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7foeJenDzI5kRgNriyIe8S_nQuTD1Wh98VOo-bK9oFybaRMuMFqJB9zLPQHoopPX8-vAG2bILXaQbfAY5n3B4g1O3NLrv3X2mQ1b4tDSB-QPgddPYaXf_AS6BbLuFE0_sCLnTJM8qFEI/s320/leds.pcf+%25E2%2580%2594+%257E-Documentos-Verilog_ice-PruebaAtom+%25E2%2580%2594+Atom_090.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzNmExwSOB-IcR7mvAFLTCDIzTtLVCepi-c-f05k_HxVTU8MDZrQSjwUTiM1UZnDA0_3-ScePNB7cdMovl2t06dukXmoo7T5AXhXeYFQlmM7GecG90vuK_OxqzJRZGDaCqc5BZ3u-wE9I/s1600/03.+Ring+of+four+DFFs+%25E2%2594%2580+Icestudio_092.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="657" data-original-width="900" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzNmExwSOB-IcR7mvAFLTCDIzTtLVCepi-c-f05k_HxVTU8MDZrQSjwUTiM1UZnDA0_3-ScePNB7cdMovl2t06dukXmoo7T5AXhXeYFQlmM7GecG90vuK_OxqzJRZGDaCqc5BZ3u-wE9I/s320/03.+Ring+of+four+DFFs+%25E2%2594%2580+Icestudio_092.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Referencias</div>
<div class="separator" style="clear: both; text-align: left;">
http://www.clifford.at/icestorm/</div>
<div class="separator" style="clear: both; text-align: left;">
https://github.com/FPGAwars/apio-ide/wiki</div>
<div class="separator" style="clear: both; text-align: left;">
https://atom.io/</div>
<div class="separator" style="clear: both; text-align: left;">
https://fedoramagazine.org/install-atom-fedora/</div>
<div class="separator" style="clear: both; text-align: left;">
https://github.com/wireapp/wire-desktop/issues/532</div>
<div class="separator" style="clear: both; text-align: left;">
https://github.com/FPGAwars/icestudio</div>
<div class="separator" style="clear: both; text-align: left;">
https://github.com/Obijuan/open-fpga-verilog-tutorial/wiki</div>
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-53640387060614159992016-08-23T00:00:00.002-05:002016-08-23T00:00:57.132-05:00Definiendo pines para GAL16V22 de LatticeEsta prueba la hice desde una box Fedora, instalando el software de Lattice para programar sus dispositivos Lógicos.<br />
<br />
En ABEL, la definición de los pines a utilizar cuando se programa una GAL, se hace desde el inicio, sin embargo, en VHDL la cosa no está tan simple, leyendo varios foros, encontre que habria que usar unas sentencias pero no se indica de forma muy genérica.<br />
<br />
El código que se presenta a continuación, es un divisor de frecuencias, que tiene dos entradas y una salida, nótese que en este caso, se asigna al pin 6 la entrada de reset para el reloj, y que la declaración de los atributos LOC se hace en el ámbito del instanciamiento de la Entidad que se crea.<br />
<br />
Esto solo lo he probado con Lattice y una GAL22V10 simulada en Proteus.<br />
<br />
-------------------------------------------------------------------------------<br />--<br />-- Company :<br />
-- Engineer: miguel<br />-- <br />-- Create Date: 04/11/2015 04:50:28<br />-- Project Name: clk381Hz<br />-- Module Name: clk381Hz.vhd<br />-- Description:<br />--<br />-- Additional Comments:<br />--<br />-------------------------------------------------------------------------------<br /><br />library IEEE;<br />use IEEE.std_logic_1164.all; -- Para std_logic<br />use IEEE.numeric_std.all; -- Para unsigned<br /><br />entity clk381Hz is<br /> Port (<br /> entrada: in STD_LOGIC;<br /> reset : in STD_LOGIC;<br /> salida : out STD_LOGIC<br /> );<br /><br /><b>attribute LOC: string;<br />attribute LOC of reset : signal is "6";</b><br /><br />end clk381Hz;<br /><br /><br /><br />architecture arq1 of clk381Hz is<br /> signal temporal: STD_LOGIC;<br /> signal contador: integer range 0 to 250 := 0;<br />begin<br /> divisor_frecuencia: process (reset, entrada) begin<br /> if (reset = '0') then<br /> temporal <= '0';<br /> contador <= 0;<br /> elsif (entrada 'event and entrada = '1') then<br /> if (contador = 250) then<br /> temporal <= NOT(temporal);<br /> contador <= 0;<br /> else<br /> contador <= contador+1;<br /> end if;<br /> end if;<br /> end process;<br /> <br /> salida <= temporal;<br />end arq1;Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-32933906379255809992016-08-22T23:48:00.003-05:002017-09-10T19:29:03.253-05:00Ecuaciones de Latex en InkscapeInkscape es un software de dibujo vectorial con licencia libre (GNU GPL V2), y por medio de esta herramienta, es posible el incrustrar ecuaciones en formato Latex, en un gráfico.<br />
<br />
La realización de esto, es posible a través de el script diseñado dor Julien Vitard, quien, desde un repo de GitHub, comparte al mundo entero este aporte.<br />
<br />
La instalación es muy sencilla, solo se tiene que clonar el repo de github con la consola<br />
<br />
<pre class="literal-block">$ git clone https://github.com/julienvitard/eqtexsvg.git</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block">y posteriormente, se copia los archivos a la ruta</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block">$ sudo cp * /usr/share/inkscape/extensions/</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block">Se abre inkscape y el resultado es genial!! </pre>
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-54296043636008878322016-08-22T23:48:00.001-05:002016-08-22T23:48:31.219-05:00Ecuaciones de Latex en InkscapeInkscape es un software de dibujo vectorial con licencia libre (GNU GPL V2), y por medio de esta herramienta, es posible el incrustrar ecuaciones en formato Latex, en un gráfico.<br />
<br />
La realización de esto, es posible a través de el script diseñado dor Julien Vitard, quien, desde un repo de GitHub, comparte al mundo entero este aporte.<br />
<br />
La instalación es muy sencilla, solo se tiene que clonar el repo de github con la consola<br />
<br />
<pre class="literal-block">$ git clone https://github.com/julienvitard/eqtexsvg.git</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block">y posteriormente, se copia los archivos a la ruta</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block">$ sudo cp * /usr/share/inkscape/extensions/</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block">Se abre inkscape y el resultado es genial!! </pre>
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-16941954105883653722016-08-13T08:29:00.002-05:002016-08-13T08:53:16.309-05:00Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-68594574482147613012016-08-13T08:29:00.001-05:002017-09-10T19:10:43.672-05:00Fritzing Versión 0.9.3no inicia en Fedora 23, 24 y 25 (Actualizado)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNJFNcHsS7IkLhyphenhyphenvbRsArfVAWatVAHtRnRotCxctwq4tFNY-b2uQuOT38HJvA15Bad43BuSChzK3FUI4mMO98LWm4l0GTcFkYlo6pR1OWjdEAc6Aihi3F8lbr_yYd0qyRTQMVio5LzPdA/s1600/circuito_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNJFNcHsS7IkLhyphenhyphenvbRsArfVAWatVAHtRnRotCxctwq4tFNY-b2uQuOT38HJvA15Bad43BuSChzK3FUI4mMO98LWm4l0GTcFkYlo6pR1OWjdEAc6Aihi3F8lbr_yYd0qyRTQMVio5LzPdA/s320/circuito_1.png" width="320" /></a></div>
Al desempaquetar la nueva versión de Fritzing en Fedora 23, y ejecutar el binario, me indica el siguiente error<br />
<br />
Fritzing: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory<br />
<br />
Este error sale si, no tienes instaladas las openssl-devel en tu sistema, sin embargo si lo tengo instalado, el problema surge como indicación de Bug en https://github.com/fritzing/fritzing-app/issues/3245, donde se indica que hay una librería que debe ser borrada de la carpeta lib, en mi caso tuve lo siguiente<br />
<br />
lib]$ ls libg*<br />
libgit2.so libgit2.so.0.23.4 libgit2.so.23<br />
<br />
Procedi a borrar todo lo indicado en la pagina de issues de github<br />
lib]$ rm libgit2.so*<br />
<br />
finalmente, revisar si tenia instalado, ademas de openssl-devel, libgit2-devel<br />
realizado esto, Fritzing vuelve a correr.<br />
***************************************************************************<br />
En Fedora 25 Fritzing requiere de libgit2.so.23 y la Fedora contiene libgit2.so.24 por lo cual no responde de forma adecuada marcando el siguiente error<br />
<br />
<br />
./Fritzing: error while loading shared libraries: libgit2.so.23: cannot open shared object file: No such file or directory<br />
<br />
Para arreglarlo se tiene que crear un enlace simbólico, de este modo Fritzing vuelve a funcionar<br />
<br />
<br />$sudo ln -s /lib64/libgit2.so.0.24.6 libgit2.so.23<br />
<br />
La fuente original la puedes consultar en:<br />
https://github.com/fritzing/fritzing-app/issues/3289Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-57259933558611917392016-05-07T02:16:00.000-05:002016-05-07T02:16:15.714-05:00Scilab -Xcos - Modelica en Fedora 23Para hacer funcionar los ejemplos que trae Scilab de Modelica, se requiere de un compilador de C, pero ademas de eso se debe instalar con dnf los siguientes:<br />
<ul>
<li> scilab-devel </li>
<li>rpm-builds </li>
</ul>
Ya que de otro modo, las fallas que provoca son<br />
<ol>
<li><i>fatal error: scicos_block.h: No such file or directory </i></li>
<li><i>gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory </i></li>
</ol>
<br />
<b>Referencias</b><br />
<br />
<ul>
<li>https://github.com/copiousfreetime/hitimes/issues/54</li>
<li>https://bugzilla.redhat.com/show_bug.cgi?id=1180162 </li>
<li>http://scilab.ninja/scilab-recipe-1-introduction-to-scilabscicos-or-xcos/</li>
</ul>
Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.comtag:blogger.com,1999:blog-6317101566103161605.post-52112589134507050322015-10-28T10:48:00.001-06:002015-10-28T10:49:01.793-06:00Uso de sll srl en ghdl, ejemplo con registro de corrimientoAl tratar de usar la instrucción de corrimiento sll o srl en GHDL, así como en el software de altera Quartus II, obtenida el siguiente error:<br />
<br />
no function declarations for operator "sll" en GHDL<br />
can't determine definition of operator ""sll"" -- found 0 possible definitions en Quartus II<br />
<br />
en uno de los foros indican que sll, ni srl estan definidos en numeric.std (https://mail.gna.org/public/ghdl-discuss/2008-12/msg00032.html), en este mismo foro, recomiendan cambiar la libreria numeric_std.all por la libreria numeric_bit.all (https://mail.gna.org/public/ghdl-discuss/2008-12/msg00033.html<br />
https://mail.gna.org/public/ghdl-discuss/2008-12/msg00028.html<br />
<br />
Sin embargo profundizando un poco mas y no conforme con esta situación, en otro foro, se encontró lo siguiente <br />
<br />
-- Solo es posible usar los desplazamientos hasta vhdl 2008<br />
-- y el cual no está bien soportado en los modernos sintetizadores<br />
-- de los fpga y asic<br />
<br />
-- a modo de parche(workaround) es convertir la señal a tipo unsigned de<br />
-- la libreria ieee.numeric.std hacer el corrimiento y devolver a std logic<br />
-- vector (wjl, 21/02/2014) <br />
--http://stackoverflow.com/questions/20024887/trying-to-leftshiftlogical-sll-in-vhdl-for-logic-vector-getting-errorfound<br />
<br />
de este modo se puede hacer lo siguiente<br />
<br />
<br />
<br />
<pre class="brush: bash">
-------------------------------------------------------------------------------
--
-- Company : Instituto Tecnologico Superior de Teziutlan
-- Engineer: Miguel Montiel Mtz
--
-- Create Date: 26/10/2015 11:54:35
-- Project Name: RegUniversal
-- Module Name: RegUniversal.vhd
-- Description:
-- El registro opera de la siguiente manera
-- S0 S1 | Accion
-- 0 0 | Hold
-- 0 1 | Desplazamiento a la izquierda
-- 1 0 | Load
-- 1 1 | Desplazamiento a la derecha
-- Additional Comments:
-- contiene a demas las siguientes terminales
-- CLk reloj
-- S0,S1 señales de control
-- D0..D3 entrada de datos
-- RST Reset
-- Q0..Q3 Salida de datos
-- L entrada serie desplazamiento a la izquierda
-- R entrada serie desplazamiento a la derecha
-------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para unsigned
entity RegUniversal is
port(
CLK: in std_logic;
S: in std_logic_vector(1 downto 0);
D: in std_logic_vector(3 downto 0);
RST, L, R: in std_logic;
Q, Qn: out std_logic_vector(3 downto 0)
);
end RegUniversal;
architecture arq1 of RegUniversal is
signal qq : std_logic_vector(3 downto 0);
signal xqq:std_logic_vector(3 downto 0);
begin
process (clk, rst, s)
begin
if ( rst = '0') then
qq <= "0000";
elsif( clk 'event and clk = '1') then
if ( s = "00") then
--hold
qq <= qq;
elsif ( s = "01") then
--desplaza a la izquierda
-- Solo es posible usar los desplazamientos hasta vhdl 2008
-- y el cual no está bien soportado en los modernos sintetizadores
-- de los fpga y asic
-- a modo de parche(workaround) es convertir la señal a tipo unsigned de
-- la libreria ieee.numeric.std hacer el corrimiento y devolver a std logic
-- vector (wjl, 21/02/2014)
--http://stackoverflow.com/questions/20024887/trying-to-leftshiftlogical-sll-in-vhdl-for-logic-vector-getting-errorfound
qq <= std_logic_vector(unsigned (qq) SLL 1);
qq(0) <= L;
elsif ( s = "10") then
-- load
qq <= d;
else
-- desplaza a la derecha
qq <= std_logic_vector(unsigned(qq) srl 1);
qq(3) <= r;
end if;
end if;
q <= qq;
qn <= not qq;
end process;
end arq1;
</pre>
<br>
Y este es el banco de pruebas <br>
<pre class="brush: bash">
library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para signed, unsigned
entity RegUniversal_tb is
end RegUniversal_tb;
architecture Testbench of RegUniversal_tb is
-- Component Declaration for the Unit Under Test (UUT)
component RegUniversal
port(
CLK: in std_logic;
S: in std_logic_vector(1 downto 0);
D: in std_logic_vector(3 downto 0);
RST, L, R: in std_logic;
Q, Qn: out std_logic_vector(3 downto 0)
);
end component;
-- Select an architecture if needed (default is last one analyzed).
--for uut: RegUniversal use entity WORK.RegUniversal(arq1);
-- Inputs/Outputs
-- signal ...
signal s: std_logic_vector ( 1 downto 0);
signal d: std_logic_vector ( 3 downto 0);
signal rst, l, r: std_logic;
signal q, qn: std_logic_vector( 3 downto 0);
-- Clock (uncomment if needed)
-- Sustituir <clock> por el nombre de puerto apropiado
signal clk : std_logic := '0';
constant clock_period : time := 50 ns;
signal clock_on : boolean := true;
begin
-- Instantiate the Unit Under Test (UUT)
uut: RegUniversal port map ( clk, s,d,rst,l,r,q,qn);
-- Clock process (uncomment if needed)
-- Descomentar en caso de requerir senial de reloj
-- Sustituir <clock> por el nombre de puerto apropiado
clock_process : process
begin
while (clock_on) loop
clk <= '0';
wait for clock_period/2;
clk <= '1';
wait for clock_period/2;
end loop;
--assert (false) report ("Finished") severity error;
-- Wait forever
wait;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns
rst <= '0';
wait for 100 ns;
---------------------------------------------------------
-- insert stimulus here
---------------------------------------------------------
-- Test case 1
-- ... Asignaciones a seniales de entrada ...
rst <= '1'; s <= "10" ; d <= X"A"; wait for 100 ns;
rst <= '1'; s <= "00" ; d <= X"0"; wait for 100 ns;
rst <= '1'; s <= "10" ; d <= X"1"; wait for 100 ns;
rst <= '1'; s <= "11" ; d <= X"7";r <= '1'; wait for 100 ns;
rst <= '1'; s <= "11" ; d <= X"3";r <= '1'; wait for 100 ns;
-- assert (<condition>) report "Error case 1" severity error;
-- Test case 2
-- ... Asignaciones a seniales de entrada ...
wait for 100 ns;
-- assert (<condition>) report "Error case 2" severity error;
-- Stop clock
-- clock_on <= false;
-- Wait forever
wait;
end process;
end Testbench;
</pre>
Y finalmente la simulación
<br>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRyaU_flU2lMgtGTfikgCIK7874sprZm4IvJHJdZbpBOTdwX5Uo1m50ISsQAzvHqMbxuBdQXYdXkFZ4dpWMUa-bZqk8TL40C7IvloEIP_MYiLxZilS67bbvJEWy9c5eTbJiLMiZuP6FM8/s1600/regUniversal.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRyaU_flU2lMgtGTfikgCIK7874sprZm4IvJHJdZbpBOTdwX5Uo1m50ISsQAzvHqMbxuBdQXYdXkFZ4dpWMUa-bZqk8TL40C7IvloEIP_MYiLxZilS67bbvJEWy9c5eTbJiLMiZuP6FM8/s320/regUniversal.png" /></a>
<br>
Mi agradecimiento al Prof. Garrido, por el desarrollo de la herramienta UMHDL con la cual, mis estudiantes de Ing Mecatrónica de la materia Electrónica Digital, se encuentran desarrollando las simulaciones en VHDL.Mikehttp://www.blogger.com/profile/00457938025025440419noreply@blogger.com