Página 1
Kit Educativo Propeller Fundamentos Versión 1.1.1 Por Andy Lindsay Traducido por Oscar Villarreal...
Página 2
Propeller, Penguin y Spin son marcas de Parallax Inc. BASIC Stamp, Stamps in Class, Boe-Bot, SumoBot, Scribbler, Toddler y SX-Key son marcas registradas de Parallax Inc. Si decide utilizar cualquiera de las marcas de Parallax Inc. en tu página web o en material impreso se debe establecer que las marcas son marcas registradas de Parallax Inc.
Cargar el programa y probar los pins de E/S................... 32 Antes de cambiar o ajustar circuitos ....................37 Regulador de Fuente de Poder Propeller – ¡Es importante!............37 Solución de problemas para el arranque de la Plataforma PE de 40 pins-DIP....... 39 4: PRACTICA BÁSICA DE E/S Y TIEMPO ..................
Página 4
Comunicación Chip Propeller – PC Terminal .................. 97 FullDuplexSerial y otros objetos de la Librería ................102 Enviando valores de la Terminal Serial Parallax al chip Propeller ..........105 Pantalla de Estado de Pin E/S....................... 107 Terminal LED Output Control ......................109 El Bloque DAT y Paso de Direcciones ..................
Prefacio Prefacio Debido a que el micro controlador Propeller es un paquete DIP de 40 pins tiene sentido obtener un kit de componentes para uso con el Propeller en placas de prueba. Los circuitos de soporte para el Propeller, incluyendo memorias EEPROM, reguladores de voltaje, cristales osciladores, y herramientas de programación Propeller se encuentran en versiones que pueden ser conectadas a...
Página 6
Prefacio Existe un foro para el Kit Educativo Propeller en forums.parallax.com con enlaces a las discusiones sobre cada laboratorio. Se invita al lector a utilizar este recurso para enviar preguntas sobre temas en los laboratorios Kit PE, así como comentarios y sugerencias. Parallax recopila estos comentarios y los incorpora en las futuras revisiones de cada laboratorio.
Laboratorio y el Kit Educativo Propeller. Información más detallada del micro controlador Propeller, su arquitectura y lenguajes de programación pueden encontrarse en el Manual de Propeller y la Hoja de Datos del Propeller. Ambos están disponibles en la liga de descargas en www.parallax.com/Propeller.
Robot Balanceado con sensores de video, el prototipo inicial fue desarrollado con un Kit Educativo Propeller. A pesar de que el chip Propeller es muy poderoso no significa que es difícil de usar. El chip Propeller se presenta de una manera manejable para proyectos simples tales como indicador de luces, botones, sensores, bocinas, actuadores y pantallas pequeñas encontrados en diseños comunes.
Página 9
Un Cog Ejecutando lenguaje ensamblador puede accesar de igual forma a la memoria principal del Propeller a través del Hub. El Hub garantiza el acceso a la memoria principal a los Cogs cada 16 ciclos de reloj. Dependiendo de cuando el Cog decide verificar la memoria principal el tiempo de acceso puede ser entre 7 y 22 ciclos de reloj lo cual equivale, al peor escenario de tiempo de acceso a la memoria, a 275ns a 80 MHz.
Página 10
Interprete Los Cogs del chip Propeller están numerados del Cog 0 al Cog 7. Una vez que la aplicación se carga en el chip Propeller este carga un intérprete en Cog 0 y este interprete comienza a ejecutar las fichas del código Spin almacenadas en la memoria principal.
Note que estos objetos pre-escritos pueden usar otros objetos por turnos para hacer sus tareas. En vez de generar objetos para hacer trabajos en tu aplicación puede también escribirlos como borradores y si se convierten en útiles puede enviarlos para que se publiquen en el Intercambio de Objetos Propeller en obex.parallax.com.
Página 12
EEPROM (Memoria de Solo Lectura Eléctricamente Borrable Programable por sus siglas en Ingles). Como se muestra en la Figura 1-8, si el programa se carga directamente en la RAM el chip Propeller lo ejecuta inmediatamente. Si el programa se carga en la EEPROM el chip copia la información a la RAM antes de comenzar la ejecución.
Propeller. En contraste los programas cargados en EEPROM no son volátiles. Después de un ciclo de encendido el chip Propeller copia el programa de la EEPROM en la RAM y comienza a ejecutarse nuevamente...
Página 14
Conexión USB-Serie para descargas y comunicación bidireccional con la computadora En conjunto, las placas de interconexión con el micro controlador Propeller montado se les refieren en este documento como Plataforma PE. La Plataforma PE con el kit de 40-pins DIP se muestra en la Figura 1-10 (a).
1: Introducción al Microcontrolador Propeller Practicas para el Kit Educativo Propeller Las prácticas del Kit Educativo Propeller están incluidas en este texto y de igual forma existen prácticas adicionales disponibles para descargar desde www.parallax.com. Las prácticas en este texto muestran como conectar circuitos al micro controlador Propeller y como escribir programas para interactuar con los circuitos.
Página 16
Señales de Osciloscopio y Analizador de Espectro generadas por un micrófono mientras alguien esta silbando. El micro controlador Propeller muestrea estas señales y las envía el programa ViewPort en la Computadora Personal. Esta es una de las actividades que aparecen en las prácticas de ViewPort.
Si usted está utilizando la versión PropStick USB del kit de PE, asegúrese de localizar a su instalación independiente y prácticas en formato PDF Una de las herramientas Propeller incluida por defecto en el Kit PE es el controlador USB para programación/comunicación/depuración.
Sitios Web útiles Además de www.parallax.com/go/pekit, hay un par de sitios web donde puede obtener respuestas tanto a las preguntas como a los objetos para reducir el tiempo de desarrollo en proyectos Propeller. • Página principal del Propeller chip: www.parallax.com/Propeller.
Propeller, circuitos de soporte y componentes montados en el centro. Cada proyecto construido a la derecha o izquierda será adyacente a los pins de E/S del Propeller para fácil acceso. Cada tarjeta de prueba tiene conectores de voltaje en ambos lados por lo que cada punto a tierra y 3.3 V están junto a la placa.
Página 20
Hoja de Datos y Manual del Propeller La hoja de Datos del Propeller proporciona una descripción completa del micro controlador Propeller y el Manual explica la programación del chip y el lenguaje a detalle. Ambos están disponibles para descarga en formato PDF desde www.parallax.com...
Página 21
Una resistencia en serie (típicamente 10kΩ) deberá estar conectada entre la salida 5V y el pin de entrada del Propeller el cual es 3.3V. El regulador de 5V también sirve como etapa intermediaria entre la batería y el regulador 3.3V que alimenta al chip Propeller.
Página 22
Cristal Oscilador de 5.00 MHz El cristal oscilador de 5.00 MHz proporciona una señal precisa de reloj al chip Propeller que se puede usar para aplicaciones sensitivas al tiempo tales como comunicación serial, mediciones RC y Servo Control.
Administrador de Puertos de Windows (COM y LPT). El controlador FTDI convierte los datos colocados en el puerto serial a USB y lo envía al chip FT232 en el Propeller Plug y los mensajes del FT232 se convierten en datos seriales y se almacenan en el puerto COM de recepción. Los programas de comunicación serial tales como la Terminal Serial Parallax utilizan esta forma de comunicación para intercambiar información con los...
Batería alcalina de 9V (Para esta configuración y pruebas utilice una batería alcalina nueva) • Los kits PE que se encuentran listados en las tablas siguientes: Set de Placas de Prueba (#700-32305), Propeller Plug (#32201), y Kit Propeller DIP Plus (130-32305) Opcional pero útil: •...
6 conexiones, todas las conexiones en cada renglón de seis están conectados por un conductor metálico bajo de ellos. Así que para conectar dos cables o más solo conéctelos en el mismo renglón. Kit Educativo de Practicas Propeller: Fundamentos · Página 25...
Página 26
No despegue el papel encerado a menos que usted vaya a pegar las placas a una superficie permanente tales como un metal o una caja de proyecto. VSS y GND; VDD y 3.3V: El pin de tierra del chip Propeller se menciona como VSS en el manual Propeller y VDD es +3.3V Cada placa en la Figura 3-3 está...
La Figura 3-5 muestra el cableado que usara para el diagrama en la Figura 3-5. Note que el chip Propeller, EEPROM 24LC256, el Propeller Plug y la batería no están conectados. Note también que la placa en el cableado es justo, con todos los cables cortados a la medida para estar alineados con la superficie de la placa.
La resistencia entre (D, 5) y (D, 9) es 10 kΩ (café-negro-naranja), y mantendrá en alto uno de los pins de la EEPROM. Figura 3-5: Cableado– Kit Propeller DIP Plus antes de conectar los ICs Verificando el cableado Es importante eliminar cualquier error antes de conectar la fuente de poder a la Plataforma PE.
Si un punto de prueba falla durante la prueba de continuidad, busque cables faltantes y conexiones sueltos en el centro de la placa y los rieles. Kit Educativo de Practicas Propeller: Fundamentos · Página 29...
42 Conexión del chip Propeller y la EEPROM En la Figure 3-6 se muestra el dibujo de la Plataforma PE una vez que el chip Propeller y la EEPROM han sido conectados. Desconecte la batería del conector para los siguientes pasos.
Página 31
Si usted no ha hecho esto, antes de continuar aquí complete los pasos de Programa, Documentación y Recursos comenzando en la pagina 17. La primera vez que usted conecta el Propeller Plug a su Computadora con el cable USB deben suceder dos cosas: 1) El Propeller Plug Serial transmite y Recibe, los LED deberán titilar brevemente.
Plug ahora deberá estar brillando. Esto indica que el Regulador 3.3V de la Plataforma PE está proporcionando potencia al chip Propeller, a la EEPROM y a los conectores que están junto a las tiras rojas en los conectores de potencia.
El circuito que se muestra en la Figure 3-7 y la Figure 3-8 le proporcionara la idea de prueba para los pins de E/S como entradas y salidas en el chip Propeller. Si alguna de las instrucciones en la lista de no funciona vaya a la solución de problemas (9) en la pagina 41.
Como está escrito PushbuttonLedTest.spin hace parpadear en LED conectado a cualquiera de las E/S en el chip Propeller del lado izquierdo (P0 a P15). El rango de parpadeo del LED depende si el botón pulsador conectado a P18 se presiona (10Hz) o no (2Hz). El cable que conecta P3 al LED puede usarse para probar cada pin de E/S.
Página 35
Compile Current, y luego Load EEPROM (F11). Después de que se carga el programa en la EEPROM, el chip Propeller lo copia de la EEPROM en su memoria principal RAM y uno de los procesadores del chip Propeller lo ejecuta. (Si usted desconecta y reconecta la potencia o presiona y suelta el botón de arranque de la Plataforma PE el chip Propeller volverá...
Página 36
Hasta este punto la mitad de las E/S del chip Propeller se han probado como salidas y la otra mitad se han probado como entradas. Antes de mover la prueba a circuitos opuestos de la placa es una buena idea cargar un programa vacio en la EEPROM de la Plataforma PE para que el chip Propeller no envíe señales incorrectas a los pins de E/S.
Cualquier fluctuación en la fuente de voltaje se pasará directamente en fluctuaciones de las señales altas 3.3 V enviadas por los pis E/S del Propeller. También se pasaran en fluctuaciones en el voltaje de disparo de los pins E/S los cuales son aproximadamente ½ de los 3.3 V de la fuente de poder.
Página 38
Ya que los conductores de metal tienen poca resistencia, estas medidas minimizan la resistencia entre la salida del regulador de voltaje y las entradas del chip Propeller. Esto a su vez mejora la estabilidad de la fuente de poder minimizando las fluctuaciones de voltaje que pueden ocurrir si el consumo de corriente en el Propeller cambia, lo cual puede suceder cuando inicia un procesador y los pins E/S que manejan cargas encienden y apagan.
Solución de problemas para el arranque de la Plataforma PE de 40 pins-DIP (1) Conexión de programación y Puerto Serial a. Cuando conecte el Propeller Plug al Puerto USB los LED rojo y azul junto al mini USB del Propeller Plug deberán parpadear brevemente. Si no sucede intente un puerto diferente.
Página 40
Configuración y Prácticas de Laboratorio ii. Deje el cable USB conectado en el Propeller Plug y desconecte y conecte el cable USB en el puerto de la computadora. Espere 20 segundos entre desconectar y conectar el cable USB. La lista deberá actualizarse y mostrar un nuevo “USB Serial Port”como el COM46 que se muestra en la Figura 3-10.
Página 41
USB: 1. Esta indicando que el Propeller Plug se conecto en la computadora y se hizo un intento de instalar los controladores manualmente antes de que el la herramienta de programación y el controlador se instalaran.
Página 42
Verifique el cableado contra la Figura 3-5 de la pagina 28, y la Figure 3-6 de la pagina g. Remueva el chip Propeller y la EEPROM de la placa de prueba y repita la prueba del cableado de la Plataforma PE de la pagina 29. Continúe hasta la conexión de la batería en la pagina 32 y quizá...
Página 43
El Propeller Plug esta invertido. El pin 1 y el indicador de semicírculo que está en la etiqueta del chip Propeller y que se muestra en la Figure 3-6 de la pagina 31 debe estar en el renglón 11 no en el renglón 30. Verifique también que la muesca impresa coincide con la muesca física del chip Propeller, ambos deben estar orientados al renglón 11.
Página 44
Soporte Técnico Parallax (Ver página 18). (10) Los pins de E/S del chip Propeller se prueban antes de enviar. Si la prueba de LED o Botón Pulsador indican que hay un pin dañado: a. Asegúrese de verificar que el pin no está doblado debajo del encapsulado y que se conecto mal a la placa.
E/S del Propeller. Del mismo módulos circuitos LED le darán un sencillo y efectivo significado del monitoreo de pins de E/S en el Propeller y los eventos de tiempo.
8 procesadores de alta velocidad de 32 bits dentro de él. Cada procesador interno (Cog) tiene acceso a los pins de E/S del chip Propeller y a los 32KB de RAM global. Cada Cog tiene sus 2KB de RAM que puede usar en código Spin o Ensamblador.
El objeto LedOnP4 que se muestra a continuación contiene un método llamado LedOn con comandos que indican al Cog en el chip Propeller para poner el pin P4 E/S en alto. Esto en su momento ocasiona que el LED en el circuito conectado a P4 emita luz.
Práctica básica de E/S y tiempo Resaltar texto o no? En los párrafos de discusión la fuente usada en la herramienta Propeller se usa también para todo el texto que es parte de un programa. Las porciones de texto que son operadores o palabras reservadas estarán resaltadas.
:= %101010 …con esto outa[9..4] := %101010 Cargue el programa en la RAM del chip Propeller y verifique que los LEDs tienen el patrón inverso. No importa qué valor esta en el bit de registro si su bit de registro es cero.
Limpiar los bits 6 7 7 en dira[4..9]. dira[4..9] := %110011 Cargar la modificación del programa en la RAM del chip Propeller y verificar que los bits puestos a 1 en no pueden prender los LEDs en P6 y P7 porque sus pins...
– un registro en el chip Propeller que cuenta los ciclos de reloj del sistema. • – un comando que regresa al chip Propeller la frecuencia del reloj en Hz. Otra forma clkfreq útil de pensarse es como el valor que almacena el número de ciclos de reloj en un segundo.
Práctica básica de E/S y tiempo Cargue el objeto LedOnOffP4 en la RAM del chip Propeller y verifique que la luz prende y apaga cada segundo por ¼ encendido y ¾ apagado. Recuerde que el indentado es importante! La Figura 4-2 muestra un error común que puede ocasionar resultados inesperados.
Hasta este punto nuestros programas han usado el reloj interno por defecto de 12 MHZ del chip Propeller. Vamos a modificarlo para usar el oscilador externo de 5 MHz en nuestro circuito de la Plataforma PE. Ambos, Spin y Ensamblador Propeller tienen provisiones para declarar constantes que configuran el sistema de reloj y se aseguran que los objetos conozcan cual es su frecuencia de operación.
Página 54
XI y XO. El oscilador interno del chip Propeller en su modo por defecto RCFAST es el que usa el chip Propeller si el programa no especifica otra fuente o modo. La frecuencia nominal del oscilador es 12MHz, pero es una frecuencia actual que puede caer en el rango de 8 a 20 MHz.
. (La herramienta Propeller acepta guión bajo, pero no comas, el números largos 2_500_000 para hacerlos más legibles) Cargue el objeto en la RAM del chip Propeller y verifique que el LED parpadea a 1 Hz. Después, cambia el multiplicador PLL a . Cargue el objeto modificado en la RAM del pll2x Propeller.
Página 56
(los 1’s se hacen 0’s, los 0’s se hacen 1’s). Por lo que el resultado de será %011110. !outa[4..9] Cargue cada objeto en la RAM del chip Propeller y verifique que son idénticos. Intente duplicar la frecuencia en cada objeto. ''Archivo: LedsOnOff50PercentAgain.spin ''Archivo: LedsOnOff50Percent.spin...
Asegúrese que no está más indentado que el primer repeat repeat Cargue el objeto BinaryCount en la RAM del chip Propeller y verifique que los LEDs encienden de acuerdo a la secuencia de valores binarios. Existen diferentes formas de modificar el ciclo para contar hasta cierto valor y parar.
Cargue IncrementUntilCondition.spin en el Propeller y verifique que cuenta hasta 20. Note que el ciclo se repite hasta 19 pero el programa de cuenta hasta 20. Otra forma de usar en la condición del ciclo...
Página 59
19 se suma 1 a haciéndolo 20. Como 20 no está en el rango “de 0 a outa[9..4] outa[9..4] 19” el código en el ciclo no se ejecuta. Kit Educativo de Practicas Propeller: Fundamentos · Página 59...
. Los Operadores de Comparación son útiles para probar condiciones en una elseifnot else declaración. Pagina 60 · Kit Educativo de Prácticas Propeller: Fundamentos...
Pruebe al cambiar el Segundo operando en la operación de mover a la derecha de 1 a 2 para hacer que el patrón en se mueva dos bits a la vez. Usted deberá estar viendo outa[9..4] parpadear cada dos LED de izquierda a derecha. Kit Educativo de Practicas Propeller: Fundamentos · Página 61...
ShiftRightP9toP4. En vez de repeat , la sentencia examina el contenido de la variable y si es cero la siguiente línea outa[9..4] pattern reasigna a el valor de pattern %11000000 Pagina 62 · Kit Educativo de Prácticas Propeller: Fundamentos...
, siempre y cuando se complete en waitcnt menos de un segundo. Así que el programa de la derecha nunca perderá ciclos de reloj y mantendrá Pagina 64 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 65
4: Práctica básica de E/S y tiempo una constante de 1 s basado en que será tan bueno como la señal que el chip Propeller obtiene de su cristal oscilador externo. Consejo: En TimeKeepingGood.spin, dos líneas: T += dT waitcnt(T) Pueden reemplazarse con esta línea:...
1) Cuantos procesadores tiene el micro controlador Propeller del kit PE? 2) Cuanta memoria global RAM tiene el micro controlador Propeller? 3) Cuál es el suministro de voltaje del chip Propeller? Como se relaciona esto al estado alto o bajo de los pins de E/S? 4) Donde almacena el código Spin el chip Propeller y como se ejecuta?
Página 67
16) Cual señal de reloj es más precisa, el reloj RC interno del chip Propeller o un cristal externo? 17) Que registros controlan la dirección y salida de los pins E/S? Si un pin E/S se coloca como entrada, que valor de registros cambiaran mientras corre la aplicación y como son los valores...
6 veces más rápido. Use P9 a P4 para desplegar el conteo binario de los minutos. 5) Extienda el proyecto 4 modificando el objeto para que tenga un contador regresivo que se programe con P21 y P23 y se inicie con el botón P22. Pagina 68 · Kit Educativo de Prácticas Propeller: Fundamentos...
. Esta es una versión Blink Main Blink pequeña de una llamada de método. Cuando el método termina de parpadear el LED 9 veces el Blink Pagina 70 · Kit Educativo de Prácticas Propeller: Fundamentos...
Cargue BlinkWithParams.spin en el chip Propeller y verifique que el resultado es el mismo que el objeto previo AnotherBlinker. Ajuste valores de parámetro en la llamada a método para ajustar el comportamiento de Blink Kit Educativo de Practicas Propeller: Fundamentos ·...
Página 72
Pruebe las dos versiones modificadas en discusión y asegúrese que hace sentido. BlinkTest Intente cambiar los parámetros para que el LED P4 parpadee 4 veces, P5 5 veces y así sucesivamente. Pagina 72 · Kit Educativo de Prácticas Propeller: Fundamentos...
5: Prácticas de Métodos y Cogs Arrancando métodos en los Cogs Todos los métodos en los objetos hasta este punto se han ejecutado en un solo Cog del chip Propeller, el Cog 0. Cada vez que el método se llamaba, era llamado en secuencia, por lo que solo un Blink LED parpadeaba a la vez.
Página 74
Objeto superior en un Cog, programa el registro de reloj del chip Propeller y otras tareas. La memoria roja almacena el código de programa Spin, el amarillo indica el espacio global variable (el arreglo de 30-variables long). Lo que sigue en azul es RAM no usada de la cual puede usarse para la pila del Cog 0.
Página 75
. Si el método llama al método habrá un tercero. Cuando el método regresa la pila se reducirá a dos grupos. Kit Educativo de Practicas Propeller: Fundamentos · Página 75...
Página 76
CON. Es una constante programable de una sola vez para especificar el espacio de pila de la aplicación. Lea más acerca de esto en la sección de referencia de Lenguaje Spin en el manual del Propeller. Llamada de Método y el Resultado Variable Cada método público y privado tiene integrada una local variable predefinida llamada...
Página 77
(Paso 4) como el valor a Blink (4, time, 10) pasar al parámetro del método (Paso 5). rate Blink Cargue ButtonBlinkTime en el chip Propeller. Kit Educativo de Practicas Propeller: Fundamentos · Página 77...
5: Prácticas de Métodos y Cogs Cargue CogStartStopWithButton.spin en el chip Propeller y use el botón P23 para iniciar el método en los otros seis Cogs. Blink Presione por diversos tiempos para que el LED obviamente parpadee a diferente frecuencia Asegúrese de presionar/soltar el botón P23 al menos 12 veces para iniciar y después apagar...
2) Escriba una llamada al método del ejercicio #1. Programe el Pin a 24, el tiempo en alto de 1/2000 de la frecuencia del sistema de reloj y el tiempo de ciclo 1/100 de la frecuencia del reloj. Almacene el resultado en una variable de nombre yesNo Pagina 80 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 81
Si incrementa el término tHigh tHigh decrementando el denominador entonces brillara mas. Asegúrese que es más pequeño tHigh , de otra forma el programa no trabajara como se pretende. Inténtelo. tCycle Kit Educativo de Practicas Propeller: Fundamentos · Página 81...
Página 82
Prácticas de Métodos y Cogs Pagina 82 · Kit Educativo de Prácticas Propeller: Fundamentos...
Propeller. El intercambio e objetos en obex.parallax.com y el foro del chip Propeller en los foros forums.parallax.com. Cada objeto tiene documentación típicamente que explica como incorporarlo en su aplicación junto con uno o más ejemplos de archivos superiores que demuestran como declarar el objeto y llamar su método.
Aun cuando el circuito es el mismo que se uso en prácticas anteriores hay algunos cambios. Primero, el esquemático mostrado en la Figura 6-1 se dibujo usando la fuente Parallax y la tabla de caracteres de la herramienta Propeller, lo cual es un importante componente en la documentación de objetos.
, y dar un apodo al archivo del objeto. 2) Use ObjectNickname.MethodName para llamar al método del objeto. Lo que se llama Notación Dot aquí se refiere como “referencia método-objeto” en el Manual Propeller. Kit Educativo de Practicas Propeller: Fundamentos · Página 85...
Ubicación de archivos: Un objeto tiene que estar ya sea en el mismo archivo con el objeto que lo está declarando o en el mismo archivo que el archivo Propeller Tool.exe. Los objetos almacenados con la herramienta Propeller comúnmente se refiere como librería de objetos.
Página 87
Después de cerrar la ventana de información la misma vista del objeto se podrá ver en la esquina izquierda superior de la herramienta Propeller (ver Figura 6-4). El objeto se puede abrir presionando sobre él. También puede ver un objeto en modo de documentación al presionar el botón derecho del ratón sobre la carpeta.
. Por Start Stop ejemplo el objeto Blinker, mostrado abajo, tiene el arreglo de variables necesarias en la pila del Cog Pagina 88 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 89
Al final como este valor es no-cero significa que el proceso se inicio con éxito. Si el valor es cero significa que el Cog no se inicializo. Esto sucede típicamente cuando los ocho Cogs del chip Propeller están en uso. El método del objeto Blinker.
Página 90
Una práctica común entre autores de bloques de objetos es copiar y pegar el ejemplo y de los Stop métodos del Manual Propeller o de este texto en los objetos que escriben. Después ajustan la lista de parámetros del método y la documentación necesaria. No solo hacen los ejemplos de los Start métodos...
El objeto podría también modificarse para monitorear estos botones en un Cog separado, pero en ese caso se deberían agregar los métodos Start Stop Kit Educativo de Practicas Propeller: Fundamentos · Página 91...
Cog para el objeto. Si usted usa un objeto de la librería Parallax o del intercambio de Objetos Propeller que inicia un Cog, este deberá tener los métodos que cuidan de estos detalles.
Página 93
Intente agregar un comentario de documentación de bloque justo abajo del método del objeto CogObjectExample y verifique que la documentación aparece ButtonBlinkTime debajo de la declaración del método en el modo de vista de documentación. Figura 6-6: Mas vista de documentación Kit Educativo de Practicas Propeller: Fundamentos · Página 93...
Práctica de Objetos Dibujando esquemáticos La fuente Parallax tiene símbolos para dibujar esquemáticos y deberán usarse para documentar los circuitos para los que los objetos fueron diseñados. La herramienta de caracteres se muestra en la Figura 6-7. Además de los símbolos para dibujar esquemáticos tiene símbolos para diagramas de tiempo , operadores matemáticos...
Especialmente si llamando a esos métodos en la secuencia incorrecta podría llevar a resultados indeseables, esos otros métodos deberían ser privados. Kit Educativo de Practicas Propeller: Fundamentos · Página 95...
No hay penalizaciones para el espacio de código por declarar múltiples objetos. El compilador de la herramienta Propeller los optimiza así que solo se ejecuta el código una vez por todas las copias de los objetos. La única penalización para declarar más de una copia del mismo objeto es que habrá más de una copia de variables globales que declara el objeto, un paquete por cada objeto.
Se da un ejemplo de cómo usando objetos de la Librería Propeller, Intercambio de Objetos Propeller y el foro del Chip Propeller hace posible hacer mucho con unas pocas líneas de código.
Página 98
Cuando presiona el botón Disable la terminal serial Parallax libera el puerto serial para que la herramienta lo pueda usar y cargar un programa en el chip Propeller. Mientras que la Terminal Serial esta deshabilitada el botón muestra Enable. Después que cargo el programa usted puede presiona el botón Enable para regresar a la comunicación entre la Terminal y el chip Propeller.
Página 99
Disable es el hecho de que usted presione en otra ventana Digamos que en vez de estar cambiando de ida y vuelta entre la Terminal Parallax y algún otro programa tal como una hoja de datos para análisis de medición de un sensor con el parámetro Automatically disable…...
Página 100
Baud Rate igual al que usa el programa Spin. Después de eso solo cargue la característica Load EEPROM de la herramienta Propeller para cargar el programa en la EEPROM del chip Propeller y presione el botón Enable de la Terminal Serial Parallax para ver los mensajes Abra HelloFullDuplexSerial.spin con la Herramienta de Programación Propeller Abra la Terminal Serial Parallax (presione dos veces en PST.exe para correrlo)
DTR que en su turno reinicia el chip Propeller. La solución para la versión DIP 40-Pin del kit PE es simple. Solo desconecte el Propeller de su conector de 4 pins para remover el convertidor serial del sistema. Esto previene la intención de enviar cualquier mensaje inadvertidamente a una Computadora ocasionando que el chip FTDI reinicie el chip Propeller.
Comunicación Serial y RS232 en Wiki pedía. Serial-sobre-USB: Para mayor información acerca de la forma en la que el chip FT232 en el Propeller Plug y el ProStick USB envía datos seriales sobre una conexión USB vea la versión de Programación y Prueba del PropStick USB.
Página 103
Propeller y los anexa con un cero para terminar la cadena. Aun si la documentación del método no lo incluye (En realidad debería!) espera un...
Que hace el 13? El 13 en Debug.str(String("This is a test message!", 13)) es un caracter especial que hace que la Terminal Parallax coloque un salto. Es por eso que “This is a text message!” aparece cada vez en su propia línea ya que el mensaje previo fue enviado con un salto. Vea la Figura 6-11 para ver la lista de caracteres de control de la Terminal Serial Parallax.
La Figura 6-16 muestra un objeto de prueba EnterAndDisplayValues con la Terminal Parallax. El objeto hace que el chip Propeller envíe un cursor que se muestra en la ventana de recepción de la Kit Educativo de Practicas Propeller: Fundamentos · Página 105...
Página 106
PE. Usted también puede reiniciar el chip Propeller al seleccionar y deseleccionar la línea DTR. Haga lo que pide el mensaje de la terminal Propeller. Comience con 131071 y verifique que muestra los valores que ve en la Figura 6-16.
FullDuplexSerialPlus guarda los caracteres que recibe de la Terminal GetDec Serial Parallax hasta que presiona la tecla Enter. Convierte el carácter en su correspondiente valor decimal y regresa ese valor. El comando del objeto EnterAndDisplayValues value := Debug.GetDec copia el resultado de la llamada de método...
Página 108
_clkmode = xtal1 + pll16x _xinfreq = 5_000_000 Debug: "FullDuplexSerialPlus" PUB TerminalPushbuttonDisplay ''Lee el estado de los botones P23 a P21 y los muestra en la Terminal Serial Parallax. Debug.start(31, 30, 0, 57600) waitcnt(clkfreq*2 + cnt) Debug.tx(Debug#CLS) Debug.str(String("Pushbutton States", Debug#CR)) Debug.str(String("-----------------", Debug#CR))
:= Debug.GetBin GetBin EL método regresa el valor correspondiente a los caracteres binarios (unos y ceros) que usted ingreso en la ventana de transmisión de la Terminal Parallax. El valor que el método regresa se asigna GetBin , lo cual hace encender el LED correspondiente.
Intente ingresar los valores mostrados en la Figura 6-19 en la ventana de transmisión y verifique que el LED correspondiente se enciende. TerminalLedControl.spin Ingresa el estado del LED en la Terminal Parallax. El Propeller chip recibe el estado y enciende las luces del LED correspondiente. LED SCHEMATIC ──────────────────────...
Página 111
Expandiendo la sección DAT y Accesando sus Elementos Aquí hay una sección modificada. El mensaje de texto tiene diferente contenido y diferentes etiquetas. Además hay un con elementos long en vez de elementos byte. ValueList Kit Educativo de Practicas Propeller: Fundamentos · Página 111...
El formato de precisión (32-bit) punto flotante IEEE754 es soportado por la herramienta Parallax y por los objetos de las librerías Propeller Float y FloatString. Este formato usa un cierto número de bits en una variable de 32-bit para un número significativo, otros bits para almacenar exponente y otro para almacenar el valor del signo.
6: Práctica de Objetos Para esta práctica solo es importante conocer que la librería Propeller tiene objetos que pueden usarse para procesar valores de punto flotante. TerminalFloatStringTest demuestra algunas operaciones básicas de punto flotante. Primero usan la habilidad del programa Propeller para a := 1.5...
Página 114
+ cnt) El objeto AddressBlinkerControl demuestra una forma de declarar variables asignando sus valores y pasando sus direcciones a un objeto que lo estará monitoreando, el objeto AddressBlinker en este Pagina 114 · Kit Educativo de Prácticas Propeller: Fundamentos...
Figura 6-20: Ingresando Pin y Tiempo en la Terminal Serial '' AddressBlinkerControl.spin '' Ingresa el estado del LED en la Terminal Parallax y lo envía al chip '' Propeller a través de la Terminal Serial Parallax _clkmode = xtal1 + pll16x...
'' seguido por un long que almacena el numero de ciclos de reloj entre '' cada cambio de estado de LED. Debe pasar la dirección del long que '' almacena el numero de pin E/S de LED al método Start. Pagina 116 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 117
Ponga atención en este alcance de los objetos que son AddrBlnk.start(@pin) diseñados para trabajar con listas de variables long en sus objetos padre. Kit Educativo de Practicas Propeller: Fundamentos · Página 117...
_clkmode = xtal1 + pll16x _xinfreq = 5_000_000 long pin, rateDelay Debug: "FullDuplexSerialPlus" AddrBlnk: "AddressBlinkerWithOffsets" PUB TwoWayCom ''Envía mensajes de prueba y valores la Terminal Serial Parallax. Debug.start(31, 30, 0, 57600) waitcnt(clkfreq*2 + cnt) Debug.tx(Debug#CLS) pin := 4 rateDelay := 10_000_000 AddrBlnk.start(@pin) dira[4..9]~~...
Página 119
. Este método requiere el parámetro (use 4). 3) Liste los valores decimales de los caracteres de la fuente Parallax que se requieren para escribir esta expresión en un comentario de documentación f = T 4) Declare un método privado llamado que acepte parámetros...
' Retrasa 0.1 s antes de repetir 2) Examine la longitud de de pila en la Librería Propeller, la longitud de pila en la carpeta Demo de la Librería Propeller. Haga una copia de longitud de pila Demo.spin, y modifíquela para probar el espacio de pila requerido para iniciar el método...
Página 121
6: Práctica de Objetos La Terminal Parallax se actualice por el objeto de abajo TerminalButtonLogger.spin. Hay dos llamadas al objeto TickTock. La primer llamada es , que inicia las Time.Start(0, 0, 0, 0) variables del objeto de TickTock . La segunda llamada de método...
Página 122
Práctica de Objetos BtnPrompt byte Debug#CLS, "Press/release P23 pushbutton periodically...", 0 Pagina 122 · Kit Educativo de Prácticas Propeller: Fundamentos...
7: Módulos Contadores y Aplicaciones de Circuitos Introducción Cada Cog Propeller tiene dos Módulos Contadores y cada modulo contador puede configurarse para desarrollar tareas repetitivas independientemente. Así que el chip Propeller no solo tiene la habilidad de ejecutar código simultáneamente en cogs separados sino que cada cog puede también orquestar hasta dos procesos adicionales con módulos contadores mientras el cog continúa ejecutando...
Spin y Ensamblador Propeller. Si esta práctica esta refiriéndose a un registro generalmente pero no importa si es contador A o B usara nombres genéricos PHS, FRQ, y CTR. Aquí se muestra como cada uno de los tres registros trabaja en un modulo contador: •...
¿Dónde está la resistencia en serie de limitadores de corriente? El pin E/S del chip Propeller puede controlar circuitos que no necesitan protegerse de un pico de corriente inicial que resulte cuando el pin E/S está tomando su salida baja o entrada alta. La capacidad de salida del pin E/S y límite de corriente previene de cualquier daño.
La Figura 7-3 muestra extractos de la Tabla de Modo de Contadores del Objeto CTR de la Librería Propeller. El Objeto CTR tiene información de un modulo contador y un ejemplo de código que genera onda cuadradas. La Tabla de Modo del objeto CTR lista las 32 opciones de modo, siete de las cuales se muestran abajo.
Página 127
:= %01000 La Tabla de Modos Contadores y el Mapa de Registro aparecen en el Objeto CTR de la Librería Propeller y también en el Manual Propeller en la sección CTRA/B localizada en el capítulo de Referencia Spin. APIN y BPIN son pins de E/S que el modulo contador puede controlar, monitorear o no usar dependiendo del modo.
Página 128
:= clkfreq/1_000_000 Esta expresión trabaja para el sistema de reloj del chip Propeller en frecuencias que normalmente son múltiplos de 1MHz. Por ejemplo trabajará bien con una entrada de cristal de 5 MHz pero no con una de 4.096 MHz ya que los resultados de la frecuencia del reloj no serán múltiplos exactos de 1 MHz.
Página 129
Abra el objeto TestRcDecay.spin. Llamara métodos en FullDuplexSerialPlus.spin, asegúrese de que están grabados en la misma carpeta. Abra la Terminal Serial Parallax y programe su Puerto COM para usar el mismo Puerto que la Herramienta Propeller usa para cargar programas en el chip Propeller.
Página 130
Práctica de Módulos Contadores y Aplicaciones de Circuitos PUB Init 'Inicia comunicación serial y espera 2 s para conexión a la Terminal Serial Parallax. Debug.Start(31, 30, 0, 57600) waitcnt(clkfreq * 2 + cnt) ' Configura el Modulo Contador. ctra[30..26] := %01000 ' Modo a "POS detector"...
Página 131
El capacitor en el circuito fototransistor es 10 veces mayor que el del circuito del potenciómetro y hay también una resistencia limitando la corriente de carga del capacitor, así que Kit Educativo de Practicas Propeller: Fundamentos · Página 131...
Página 132
' Espera a que terminen ambas mediciones. Estonces ajusta los ciclos ' entre phsa~ y dira[17]~. Repite para phsb. repeat until ina[17] == 0 and ina[25] == 0 Pagina 132 · Kit Educativo de Prácticas Propeller: Fundamentos...
999. Algún valor normalmente no sería acarreado de los cientos a los miles. La versión binaria de la suma con acarreo se aplica cuando el registro FQR se Kit Educativo de Practicas Propeller: Fundamentos · Página 133...
Configurando un Contador para modo DUTY La Figura 7-7 muestra más entradas del objeto CTR en la tabla del Modo Contador del Manual Propeller. Como se menciono previamente los dos tipos de modos DUTY son terminación sencilla y diferencial. Con modo DUTY de terminación sencilla el APIN es un espejo del estado del bit de acarreo. Así que si FRQ es programado a un valor de 1,073,741,824 calculado anteriormente el APIN deberá...
(3) Si usted está usando modo DUTY diferencial active el campo BPIN del registro CTR. (4) Active el pin(s) E/S a salida. (5) Active el registro FRQ a un valor que le de el porcentaje de la señal duty que desea Kit Educativo de Practicas Propeller: Fundamentos · Página 135...
Página 136
Esto es importante para señales que varían rápidamente tales como audio, lo cual será visto en otra practica. Señal duty ────────┳─── voltage C Pagina 136 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 137
0 a duty 255 repetidamente provocando que el LED en P4 incremente gradualmente en brillo y se apague. Cargue el objeto LedDutySweep en el chip Propeller y observe el efecto. ''LedDutySweep.spin ''Ciclo de LED P4 de apagado, brillo parcial, brillo complete.
SPR en el Manual Propeller. Observe en la sección de referencia de Lenguaje Spin del Manual Propeller y revise la explicación de y la tabla de arreglo de elementos SPR. Pagina 138 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 139
0 to 1 ' 0 es modulo A, 1 es B. apin := lookupz (module: 4, 6) spr[8 + module] := (%00110 << 26) + (apin) dira[apin]~~ Kit Educativo de Practicas Propeller: Fundamentos · Página 139...
+ module] := (%00110 << 26) + apin module] (%00111 (bpin apin. << << Agregue inmediatamente después de dira[bpin]~~ dira[apin]~~ Cargue la copia modificada de LedSweepWithSpr.spin en el chip Propeller y verifique que envía dos señales diferenciales duty. Pagina 140 · Kit Educativo de Prácticas Propeller: Fundamentos...
31 del registro PHS. Dada la frecuencia del reloj del sistema y una frecuencia NCO deseada para transmitir en el Propeller se puede calcular el valor de registro FRQ con esta ecuación: Eq.
FRQ. Sin embargo con modo NCO es el bit 31 del registro PHS el que controla el pin E/S lo cual resulta en una onda cuadrada cuya frecuencia es determinada por el valor almacenado en el registro FRQ. Pagina 142 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 143
(3) Active el pin E/S a salida: Como es P27 el que está enviando la señal conviértalo en salida: dira[27]~~ Después de iniciar el modulo contador corre independientemente. El código en el cog puede olvidarse y hacer otras cosas, o monitorear/controlar/modificar el comportamiento del contador si se necesita. Kit Educativo de Practicas Propeller: Fundamentos · Página 143...
:= 224_734 más alta. • Cargue el objeto modificado en el chip Propeller. Esta vez la nota deberá sonar a un tono más agudo. ''SquareWaveTest.spin ''Envía onda cuadrada de 2093 Hz a P27 por 1 s con el modulo contador.
Página 145
7: Práctica de Módulos Contadores y Aplicaciones de Circuitos Cargue Staccato.spin en el chip Propeller y verifique que suena a 15 Hz por 1 s. Haga dos copias del programa. Modifique una copia para que utilice el método 2 para iniciar y detener la señal.
Página 146
La Tabla 7-2 muestra cómo trabaja. Cada 1/8 de segundo el valor 4 se suma a una variable. Como resultado el bit 3 de la variable cambia dos veces cada segundo a 2 Hz. Pagina 146 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 147
Método Calculador NCO FRQ El objeto TerminalFrequencies.spin le permite ingresar frecuencias de onda cuadrada en la Terminal Serial Parallax y calcula y muestra el valor de registro FRQ y también toca el tono en el piezospeaker de P27 (ver Figura 7-11). El método del objeto es una adaptación del método...
Página 148
Cargue TerminalFrequencies.spin en EEPROM (F11) a inmediatamente después presione el botón Enable de la Terminal Serial Parallax. (Recuerde, no necesita esperar a que termine de cargar el programa) Cuando muestre el cursor ingrese la porción integra de cada valor de frecuencia (no los valores de registro FRQ) de la Tabla 7-1 en la pagina 139 en la ventana de transmisión de la...
Página 149
+ index] := (%00100 << 26) + pin dira[pin]~~ 'Busca tonos y duraciones en la sección DAT y los toca. repeat index from 0 to 4 frqa := SqrWave.NcoFrqReg(word[@Anotes][index]) frqb := SqrWave.NcoFrqReg(word[@Bnotes][index]) duration := clkfreq/(byte[@durations][index]) waitcnt(duration + cnt) Kit Educativo de Practicas Propeller: Fundamentos · Página 149...
Freq considerablemente simplifica el objeto TwoTones. Compare TwoTonesWithSquareWave (abajo) con el objeto TwoTones (arriba). Cargue TwoTonesWithSquareWave en el chip Propeller y verifique que se comporta igual que el objeto TwoTones. ''TwoTonesWithSquareWave.spin ''Toca notas individuales con cada bocina, luego toca notas con ambos al ''mismo tiempo.
El receptor IR del kit PE mostrado en la derecha de la Figura 7-12 tiene un filtro de 38 kHz. Un modulo contador en el chip Propeller puede usarse para generar la señal de 38kHz para el LED IR y transmitir para detección de objetos o un control de sistema de entretenimiento.
Página 152
5V a la entrada 3.3V del chip Propeller; una resistencia de 10 kΩ se usa entre la salida 5V del receptor IR y el pin E/S P0 del chip Propeller. Una resistencia de 1 a 2 kΩ...
Página 153
El estado debería ser 1 sin obstáculos o 0 cuando coloca su mano frente el Receptor / LED IR '' IrObjectDetection.spin '' Detecta objetos con LED IR y receptor y muestra en la Terminal Serial '' Parallax _clkmode = xtal1 + pll16x ' Reloj de Sistema →...
Página 154
│ ┌┐ (1) Detector IR └──┤│ (1) LED Protección P1 ──────────── P2 10 kω ┌──┤│‣ (1) LED Soporte 100ω LED IR P0 ──────┼──┤│ (misc) Cables │ └┘ PNA4602 o equivalente ────────────────────────────────────────────────────────────────────────── Pagina 154 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 155
:= %00110 ' Activa ctra a modo DUTY ctra[5..0] := cathode ' Activa ctra's APIN frqa := phsa := 0 ' Activa registro frqa dira[cathode]~~ ' Activa P5 a salida Kit Educativo de Practicas Propeller: Fundamentos · Página 155...
Página 156
El objeto TestIrDutyDistanceDetector obtiene medidas de distancia del objeto IrDetector y las muestra en la Terminal erial Parallax (Figura 7-17). Con la resistencia de 100 Ω en serie con el LED IR si el sistema detecta la altura de la mesa al techo o no dependerá de que tan alto y que tan reflectivo sea el techo y que tan sensitivo es el detector en particular.
Observe en las notas del extracto en la Tabla del Modo de Contadores en la Figura 7-18 que la suma de FRQ a PHS sucede un ciclo después del límite. Esto podría hacer la diferencia en algunos Kit Educativo de Practicas Propeller: Fundamentos · Página 157...
Página 158
2000 cambios. Cargue CountEdgeTest.spin en el chip Propeller y verifique que el contador de limites se puede usar para controlar la duración de un tono.
Página 159
Manual Propeller waitpeq Cargue BetterCountEdges.spin en el chip Propeller y verifique que toca la señal de 3 kHz por 1 s. Si usted tiene un osciloscopio asigne la señal para 10 ciclos en vez de 3000. Entonces intente incrementar la frecuencia y vea la máxima frecuencia que se entregan 10 ciclos.
Vamos a ver como se envía un pulso sencillo con un modulo contador. Este método preciso es tan bueno como el ciclo de Reloj del chip Propeller. Después de activar el contador en modo NCO solo active el registro PHS a la duración que se quiere que dure el pulso cargándolo en un valor negativo.
Página 161
Cargue SinglePulseWithCounter.spin en el chip Propeller y verifique que envía un pulso de 1 segundo. Este pulso durara exactamente 80,000,000 ciclos de reloj. Con el chip Propeller corriendo a 80 MHz el pin cambiara a alto nuevamente después de aproximadamente 26.84 segundos después. Verifique esto con una calculadora y esperando 27 segundos después de que la señal alta de 1 segundo término.
Página 162
(1/2 s de tiempo alto con contador A y 1/5 con contador B). Las señales del ciclo DUTY se transmiten en P4 y P6. Pagina 162 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 163
' Configura Contador A a NCO ctra[5..0] := 4 ' Activa salida de contador ' a P4 frqa := 1 ' Suma 1 a phsa con cada ' ciclo de reloj Kit Educativo de Practicas Propeller: Fundamentos · Página 163...
P4 y P6 probándolos con P8. La información de prueba se muestra en la Terminal Serial Parallax mostrado en la Figura 7-19. El esquemático en la Figura 7-19 mientras el pin E/S P8 probando P6. En otras palabras hay un puente conectando P6 y P8. Para probar P4 simplemente se desconecte P6 y conecte P4.
Página 165
El código agregado al objeto TestDualPwm monitorea y muestra el tren de pulsos en el objeto TestDualPwmWithProbes. La mayoría del código agregado es para mostrar los valores en la Terminal Serial Parallax todo lo que se necesita incorporar al objeto es: •...
Página 166
. Esta es una regla introducida por Parallax que s usa en la Librería stack Propeller y el Intercambio de Objetos Propeller. El objeto deberá declarar cualquier variable global requerida por el proceso que se inicia en un cog nuevo. (Esto fue revisado en la práctica de Objetos).
Página 167
' Puede usar longmove(@apin, @pin, 4) en vez de los cuatro comandos: apin := pin ' Clave 2, copia parámetros ' a variables globales thaddr := tHighAddr ' que usara el proceso. Kit Educativo de Practicas Propeller: Fundamentos · Página 167...
' Clave 1, Variables globales ' para cog y stack. long apin, thaddr, tladdr, pcntaddr ' Clave 1, Variables globales ' para el proceso. Pagina 168 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 169
1 a la variable start 2) Detiene el cog 3) Limpia el valor de para que el objeto sepa que no está a cargo actualmente de un proceso activo (cog) Kit Educativo de Practicas Propeller: Fundamentos · Página 169...
Página 170
:= phsb ' Guarda tlow, luego limpia. phsb~ waitpeq(0, |<apin,0) ' Espera por apin par air ' bajo. long[thaddr] := phsa ' Guarda thigh, luego limpia. phsa~ long[pcntaddr]++ ' Incrementa contador pulso. Pagina 170 · Kit Educativo de Prácticas Propeller: Fundamentos...
Configurando el Modulo Contador para Modos PLL La Figura 7-20 es el ahora familiar extracto del objeto CTR de la Librería Propeller, esta vez con la lista de modos PLL. Hay tres modos PLL. El primero PLL interno usado para sincronizar señales de video.
Página 172
) de 80 MHz y el código de abajo, calcule clkfreq la frecuencia PLL transmitida en el Pin E/S P15. 'Configura modulo ctra ctra[30..26] := %00010 frqa := 322_122_547 ctra[25..23] := 2 ctra[5..0] := 15 dira[15]~~ Pagina 172 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 173
80 MHz y quiere generar una señal de 12 MHz con PLL. Calcule clkfreq Ejemplo: el Registro FRQ y el bit de campo PLLDIV. (1) Use la tabla para calcular el valor a colocar en el bit de campo PLLDIV del registro CTR: Kit Educativo de Practicas Propeller: Fundamentos · Página 173...
Página 174
Figura 7-22: Calcular la frecuencia dando FRQA y PLLDIV Aun cuando el PLL puede generar frecuencias de 128 MHz el contador del Propeller solo detecta frecuencias hasta 40MHz con módulos contadores. Esto coincide con el rango de muestreo de Nyquist, el cual debe ser dos veces más rápido que la frecuencia más alta. También si considera que el modo detector NEGEDGE suma FRQ a PHS cuando detecta una señal alta durante un ciclo y una...
Página 175
Prueba frecuencias PLL hasta 40 MHz. Los valores del registro PHS y el bit de campo PLLDIV se ingresan en la Terminal Serial Parallax. El programa usa estos valores para sintetizar la onda cuadrada con el modo PLL usando el contador A. El contador del modulo B cuenta los ciclos en 1 s y los reporta.
Las simulaciones en esta sección se desarrollaron con el programa Demo OrCAD el cual está disponible gratuitamente en www.cadence.com Kit Educativo de Practicas Propeller: Fundamentos · Página 177...
Página 178
V(P15Step) en la grafica de arriba es la entrada de señal del circuito LC. V(P13) es la señal de salida, y V(Threshold) es una señal DC de disparo en el chip Propeller de 1.65V. La simulación no es realmente una respuesta típica porque una onda cuadrada de 50 MHz se aplico por 960 ns antes de...
Página 179
A 50 MHz la frecuencia de entrada coincide con la respuesta senoidal y como solo se repite la mitad de la onda senoidal Kit Educativo de Practicas Propeller: Fundamentos · Página 179...
Página 180
P13, pasara más tiempo sobre él la línea de disparo lógica de 1.65 V cuando la señal de entrada P15 esta mas lejos de la frecuencia resonante del circuito, ya sea arriba o abajo. El Propeller puede usar un contador en modo PLL para generar ondas cuadradas en el rango de las frecuencias mostradas en la Figura 7-27 y puede usar otro contador en modo detector POS para medir que tanto tiempo pasa el circuito arriba del voltaje de disparo 1.65 V del pin E/S P13.
L en la ecuación de resonancia, cambiara la frecuencia resonante del circuito LC. También como el chip Propeller puede detectar la frecuencia resonante del circuito al intercambiar frecuencia de onda cuadrada PLL en un pin mientras mide el numero de ciclos de la señal de salida del circuito cuando esta encima del punto de disparo, la aplicación puede detectar presencia o...
Página 182
Cargue CalibrateMetalDetector.spin en la EEPROM (F11) e inmediatamente después presione el botón Enable de la Terminal Serial Parallax. (Recuerde que ni siquiera tiene que esperar a que el programa termine de cargarse). Cuando el cursor esté listo ingrese la frecuencia comenzando por 48,000,000...
Página 183
Propeller. Si no hay respuesta del filtro, en otras palabras, ningún grupo de valores como en la Figura 7-30 quizá...
8) ¿Como indica la medición de descarga RC el estado de una variable ambiental? 9) Es una resistencia limitadora de corriente necesaria en una red RC conectada al chip Propeller 10) Es posible crear un circuito RC que empieza en 0V y acumula hasta 5 V durante la medición.
Página 185
4) Calcule las celdas vacías en la Tabla 7-1 de la pagina 139. 5) Asuma que el sistema de reloj del chip Propeller corre a 20 MHz, escriba el código para enviar una onda cuadrada aproximada de la nota Do7 en P16 que use el contador B...
Página 186
El pulso deberá entregarse aun a 20ms. En la práctica es bueno asegurarse que el servo no trate de moverse más allá de sus topes mecánicos. Para los servos estándar Parallax un rango seguro esta en el rango de 0.7 a 2.2 ms.
Página 187
:= clkfreq/1_000_000 ' <- Suma ctra[30..26] := ctrb[30..26] := %00100 ' Contadores A y B → NCO terminación sencilla ctra[5..0] := 4 ' Pins para contadores para control ctrb[5..0] := 6 Kit Educativo de Practicas Propeller: Fundamentos · Página 187...
Página 188
'Como ch[1] se activo a 180 en el paso 4, la salida P6 de DAC será ' 3.3V * (180/256) 6) Métodos y características en este objeto harán posible también: Pagina 188 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 189
- 0 = canal 1 = canal 1 attribute - el atributo DAC para actualizar 0 -> dacPin 1 -> resolution 2 -> dacAddr 3 -> dacValue value - el valor del atributo para ser actualizado Kit Educativo de Practicas Propeller: Fundamentos · Página 189...
Página 190
Práctica de Módulos Contadores y Aplicaciones de Circuitos Pagina 190 · Kit Educativo de Prácticas Propeller: Fundamentos...
Ver al final del archive para términos de uso. Este es el objeto FullDuplexSerial v1.1 de la carpeta de la Librería de la Herramienta Propeller con documentación modificada y métodos para convertir cadenas de texto en valores numéricos en diversas bases.
Página 192
=> 0 PUB rxcheck : rxbyte '' Verifica si recibió byte (nunca espera) '' rxbyte regresa -1 si no se recibió byte, $00..$FF si hay byte rxbyte-- if rx_tail <> rx_head Pagina 192 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 193
((char := byte[stringptr][index++]) == 0) if char => "0" and char =< "9" value := value * 10 + (char - "0") if byte[stringptr] == "-" value := - value Kit Educativo de Practicas Propeller: Fundamentos · Página 193...
Página 194
=> "a" and char =< "f") value := value * 16 + (10 + char - "a") if byte[stringptr] == "-" value := - value '******************************************* '* Controlador serial lenguaje ensamblador * '******************************************* Pagina 194 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 195
'listo siguiente periodo bit :wait jmpret rxcode,txcode 'corre pedazo de codigo tx, luego regresa t1,rxcnt 'verifica de completo periodo recibir bit t1,cnt cmps t1,#0 if_nc #:wait test rxmask,ina 'recibe bit en pin rx rxdata,#1 Kit Educativo de Practicas Propeller: Fundamentos · Página 195...
Página 196
'listo siguiente cnt :wait jmpret txcode,rxcode 'corre pedazo de código rx, luego regresa t1,txcnt 'verifica si termino periodo transmisión de bit t1,cnt cmps t1,#0 if_nc #:wait djnz txbits,#:bit 'otro bit para transmitir? Pagina 196 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 197
│CUALQUIER RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN│ │DE CONTRATO, AGRAVIO O DE OTRA DERIVADA DE O EN RELACION CON EL SOFTWARE│ │O EL USO PARA OTROS FINES DEL SOFTWARE │ └────────────────────────────────────────────────────────────────────────┘ Kit Educativo de Practicas Propeller: Fundamentos · Página 197...
'para mantener bits significativos if shift < 0 'mientras asegura resultado b <<= -shift repeat 32 'realiza división long de a/b f <<= 1 if a => b a -= b a <<= 1 Pagina 198 · Kit Educativo de Prácticas Propeller: Fundamentos...
E/S a su voltaje de 3.3V y cuando esta bajo se conecta a Tierra o 0V. 4) El código Spin se almacena en la RAM global del chip Propeller y el cog corriendo un programa interprete obtiene y ejecuta el código.
Página 201
13) Solución: PUB PushTwoStart dira[4]~~ repeat until ina[23..21] == %101 outa[4]~~ 14) Solución: PUB PushTwoCountdown dira[9..4]~~ repeat until ina[23..21] == %101 outa[4]~~ repeat outa[9..4] from 59 to 0 waitcnt(clkfreq + cnt) Kit Educativo de Practicas Propeller: Fundamentos · Página 201...
Página 202
' 5 MHz cristal multiplicado → 80 MHz T_LED_P4 = 2310 ' Constantes de incremento de tiempo T_LED_P5 = 1155 T_LED_P6 = 770 T_LED_P7 = 462 T_LED_P8 = 330 T_LED_P9 = 210 PUB Blinks | T, dT, count Pagina 202 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 203
' de lo contrario divide := 200 ' 200 ms entre incrementos 'Si uno de los ciclos de ms han pasado if counter // divide == 0 ' si paso un tiempo Kit Educativo de Practicas Propeller: Fundamentos · Página 203...
Página 204
' Marca el tiempo repeat while outa[9..4] ' repite mientras outa[9..4] no es 0 T += clkfreq ' Calcula el siguiente valor de segundos waitcnt(T) ' Espera por el... outa[9..4]-- ' Decrementa outa[9..4] Pagina 204 · Kit Educativo de Prácticas Propeller: Fundamentos...
FAdd 21) FloatString. 22) No, la herramienta Propeller empaca 1.5 en el formato de punto flotante al compilar y lo almacena con los códigos byte del programa. El comando copia el valor en una a := 1.5...
Página 208
Soluciones a los Ejercicios de la Practica de Objetos 1) Solución: led : "MyLedObject" 2) Solución: led.On(4) 3) Con la ayuda del mapa de Caracteres de la Herramienta Propeller: 102, 32, 61, 32, 84, 22. 4) Solución: PRI calcArea(height, width) : area 5) Solución: Uart[5] : "FullDuplexSerial"...
Página 209
Corra el objeto StackLenghtDemo para probar la pila requerida por el método Blink para iniciar otro cog. Después de que la herramienta Propeller ha completado la descarga tendrá 2 segundos para conectar la Terminal Serial Parallax. El resultado deberá ser 9 Como el resultado es 9 en vez del 10 predicho por el método en la práctica, este proyecto...
Página 210
Stop success := (cog := cognew(Blink(pin, rate, reps), @stack) + 1) PUB Stop ''Detiene proceso Blinking, si hay. if Cog cogstop(Cog~ - 1) PUB Blink(pin, rate, reps) Pagina 210 · Kit Educativo de Prácticas Propeller: Fundamentos...
:= myVar . Cada uno de estos registros tiene varios bits de campo que spr[8] ctra SPR[9] ctrb afectan el comportamiento del contador. El operador mover a la izquierda << puede usarse Kit Educativo de Practicas Propeller: Fundamentos · Página 213...
Página 214
' Set mode to "NEG detector" ' Charge RC circuit. ' Descarga Circuito RC ' dira[17] := outa[17] := 1 ' Set pin to output-high dira[17] := 1 ' Set pin to output-low outa[17] := 0 Pagina 214 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 215
Por el pulso 1.5 ms, 1.5 × 10 × 10) Active (es 20 ms). clkfreq/50 clkfreq aproximadamente equivalente a (1/667) × /667. Así, debe ser clkfreq clkfreq Kit Educativo de Practicas Propeller: Fundamentos · Página 215...
Página 216
1) Solución: Versiones comentadas y no comentadas de DAC 2 Channel.spin se muestran abajo. Note en la versión no comentada que realmente no toma mucho código para llevar a cabo la especificación del proyecto. ''DAC 2 Channel.spin Pagina 216 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 218
A este punto el código todavía tiene 15.6 ms en el ciclo , porque no agregar otros repeat servos y hacer un objeto servo control? Vea forums.parallax.com → Propeller Chip → Propeller Education Kit Labs → PE Kit Servo Control para un ejemplo. TestDualPWM (Project 2).spin Usando dos módulos contadores demuestra como enviar una señal dual PWM.
Página 219
-------- TestDualDac.spin para un ejemplo de aplicación. ' Variables globales long cog, stack[20] ' Para objeto long cmd, ch, pin[2], dacAddr[2], bits[2] ' Para intercambio de info en cogs Kit Educativo de Practicas Propeller: Fundamentos · Página 219...
Página 220
' Opciones 1 a 3 no requiere un comando para PRI DacLoop -> PRI ' DacConfig. ' Solo requiere actualizar ciertas variables globales. 1 : bits[ch] := |<(32-value) ' 1 = Cambia resolución. Pagina 220 · Kit Educativo de Prácticas Propeller: Fundamentos...
Kit de partes Proyecto Propeller, ver Tabla C-2 abajo 700-00077 Breadboard Set, ver Tabla 3-1 en página 24 32201 Propeller Plug con Cable retráctil USB A a Mini-B, ver Tabla 3-2 en página 24 110-32305 Caja de plástico Tabla C-2: Kit de partes Proyecto PE (#130-32000) # Parte Cant.
Página 224
350-00018 Fototransistor Infrarrojo 350-00029 Fototransistor 350-90000 Protector LED 350-90001 Malla LED 400-00002 Switch 451-00303 Conector 3-pin 602-00015 CI Amp-Op Dual IC, 8-pin DIP 800-00016 3" cable, bolsa de 10 900-00001 Piezospeaker Pagina 224 · Kit Educativo de Prácticas Propeller: Fundamentos...
Apéndice D: Diagrama de Bloque del Microcontrolador Apéndice D: Diagrama de Bloque del Micro controlador Kit Educativo de Practicas Propeller: Fundamentos · Página 225...
Substituyendo las constantes proporcionadas por la hoja de datos, la carga de corriente como una función de la temperatura máxima de ambiente para un voltaje de entrada fijo de 9V. ° − − ° ≤ − − ≤ − × Pagina 226 · Kit Educativo de Prácticas Propeller: Fundamentos...
Página 227
1000 µF en el kit PE no posee un riesgo de estabilidad a -25º C lo cual está muy por debajo del rango de temperatura del regulador LM2940CT-5.0 Kit Educativo de Practicas Propeller: Fundamentos · Página 227...