PDA

Ver la versión completa : ¡¡¡ Un monstruo !!!



Dedalo
12/07/2010, 22:20
Estoy trasteando en un nuevo proyecto y me he encontrado con un par de 16F88 en un cajon. Los compré para un trabajo hace un par de años y finalmente no los utilicé.

Despues de unos dias trasteando me he dado cuenta del tremendo PIC que es este bicho. Tiene de casi todo, creo que no utilizaré ni la mitad de los recursos.

Aunolose
13/07/2010, 03:30
Pues animo con él. A ver con que nos sorprendes.

Si quieres monstruos baratos y fáciles de programar, el 18F2550 (también el 2455, el 4455 y el 4550) tienen de todo dos veces y además USB, con lo que puedes cargarle un bootloader y después programarlo con un simple portátil sin tener que quitarlo del zocalo.

navegante 420
13/07/2010, 10:22
Joer chicos no me digais estas cosas en público..... que yo todavia me estoy peleando con un misero 16f84a jejejejejeje y queria este verano ponerme con el 16f877 pero despues de lo que acabo de leer del bootloader ese....

cuenta, cuenta que coñe es eso del bootloader????

y barato??? pa ti que es ???? pues yo compre un 18f4550 para el pickit 2 y me costo 10 €

Dedalo
13/07/2010, 18:13
Bootloader es:
Boot = programa de inicio.
loader = cargador de programas.

Algunos procesadoresn traen un programa de fabrica que se inicia solo en ciertas condiciones. Ese programa se comunica con un PC a traves del puerto serie o USB y descarga del PC el programa de usuario, se auto-programa y despues lo reinicias y ¡voila! ya esta listo para funcionar. Eso te ahorra sacarlo del circuito para poder programar alguna modificacion.

Un Ejemplo: Yo tengo ya mi centralita terminada, pero quiero cambiar algo del programa, en este momento tendria que desmontarla, sacar el procesador, borrarlo, programarlo de nuevo con el programa modificado, instalar la centralita y a funcionar. Con un bootloader yo habría dejado un conector oculto con las señales del port serie del micro y un pulsador de boot, Si enciendo la centralita con el boton pulsado y conecto un portatil al port serie el bootloader se comunica con el PC, recoje el nuevo programa, graba el micro y se inicia de nuevo con la modificacion hecha.


A eso se le llama ISP, In System Programming, puedes programar sin tocar nada del sistema.

Aunolose
13/07/2010, 19:46
Exacto, Dedalo.

Tengo que decir que también se puede hacer por el puerto serie "normal", pero los portátiles ya no vienen con él...

Navegante, que no te asuste los PIC "grandes", las instrucciones son las mismas, solo cambian los periféricos, así que muchas veces el programa queda más pequeño, porque no tienes que hacerlo por software. Aún te digo más, si no te has pasado al C, deja el 16F876 y vete al 18F2550, lo digo por los bancos de memoria, que son los más puñeteros a la hora de trabajar en ensamblador. Lo único que va a cambiar de uno a otro es la programación del reloj, que tienes más posibilidades (de hacerlo mal :( ) pero una vez que lo tienes, ya te funciona siempre. Esto si lo haces en ensamblador, en C no tienes ningún problema con ninguno, ya encarga el compilador.

Dedalo
13/07/2010, 21:38
Yo siempre lo he dicho "Burro grande ande o no ande".

Para el diseño de la centralita me pasé a un Atmel 89C51.

Si abandonas los PICS y te pasas a cualquiera que tenga un core MCS51 tienes la garantia de un sistema para el que hay millones de lineas de codigo escritas en Internet en cualquier lenguaje que te imagines, pues ese core tiene ya 20 años. Hay compiladores para MCS51 de Basic, Pascal, C, C++, Assembler, hasta un mini-sistema operativo parecido al CPM y sistemas multi thread y de tiempo real.

El 89C51RD2 tiene 2 Kb de RAM, 8 Kb de EEPROM, puertos de color que pidas(I2C etc), tres timers y SPI.

navegante 420
13/07/2010, 23:40
Osea que para el proyecto de scalextric que os comente me recomendais que en vez de hacerlo con el 16F877 me meta directamente con el 18F4550??? y así de paso aprovecho eso del boot loader por usb????

Ya me direis como va, lo del boot loader.....


Por cierto, todo esto que sabeis vosotros se aprende en la uni????? Joer que envidia me dais con vuestros conocimientos.....

navegante 420
13/07/2010, 23:45
Estoy trasteando en un nuevo proyecto y me he encontrado con un par de 16F88 en un cajon. Los compré para un trabajo hace un par de años y finalmente no los utilicé.

Despues de unos dias trasteando me he dado cuenta del tremendo PIC que es este bicho. Tiene de casi todo, creo que no utilizaré ni la mitad de los recursos.

Y a todo esto, en que estas pensando?????

navegante 420
14/07/2010, 01:23
Ya tengo más claro que es el boot loader,Taringa! - BootLoader para 18F2550 (http://www.taringa.net/posts/ebooks-tutoriales/5770962/BootLoader-para-18F2550.html)

Ahora me falta que con detenimiento me lea bien como se hace para cargar el programita....

que pasada....

y por lo que dice dedalo, tambien cabe la posiblidad de hacelo con la serie 16 y puerto serie.... yo tengo ese puerto en el portatil....

Dedalo
14/07/2010, 10:25
El 16F88 no tiene posibilidad de instalar Bootloader, pero es un simple chip de 18 patas, no necesita cristal externo para funcionar y tiene todo lo que necesito para mi proyecto.

El Bootloader creo que es solo para la serie 18xxx. De todas formas, planteate la posibilidad de serle infiel a MICROCHIP y pasarte a ATMEL, que tiene una gama enorme de MCU's con y sin Bootloader. Yo lo he hecho con algunos proyectos y tambien funciona muy bien.

El proyecto en el que estoy metido es quitar la PAL que puse para el reparto de carga de las baterias por un PIC. He metido un PIC16F88. El puerto B esta dedicado por entero a pegar 8 reles.

Dos de estos reles unen la bateria del motor a las dos baterias de vivienda. De esta forma, cuando arranque el motor, estas baterias pueden cargar del alternador.

Otros tres reles conectan la placa solar a una de las tres baterias (motor y dos de vivienda).

Los tres reles restantes conectan el cargador de 220V a las tres baterias.

Los primeros 5 bits del puerto A estan activados como entradas analogicas, internamente el PIC selecciona uno de estos 5 pines y lo conecta al convertidor ADC. Con la rutina adecuada puedo medir el voltaje de las tres baterias y el voltaje del cargador y la placa solar.

El sexto bit del puerto A esta conectado a traves de un optoacoplador al terminas D+ del alternador para saber cuando esta rodando.

Los dos bits restantes del puerto A son RXD y TXD de un puerto serie que conecta este micro al micro de la centralita para informar del estado de carga de las baterias. La centralita reclamará datos a este micro del voltaje de las baterias, estado de la placa solar y presencia de corriente 220V externa, si el cargador de 220 esta cargando o ya esta en flotacion, etc.

Tambien he previsto un modo extendido de las respuestas, de forma que yo conecto mi PC con hiperterminal al micro y le puedo hacer preguntas del tipo "?B1" que me darian como respuesta algo asi: "Voltaje B1 = 13,4 V" o "?P" nos daria la respuesta "Placa solar 17,3 V cargando bateria 2"

Aunolose
14/07/2010, 17:15
El principio del bootloader sirve para cualquier pic que admita la autoprogramación de la memoria flash, los 16F87X la admiten, por eso solo tienes que currarte una manera "serie" de meterle los datos, puede ser USB, RS232, I2C, SPI, o un terminal software en cualquier pata, lo que no sirve es un bootloader de USB para uno 232 o para un I2C, pero eso es por la entrada de datos, si el 16F88 admite la autoprogramación, se puede hacer.

Para proyectos personales lo fácil es apostar por los "grandes", porque la diferencia de coste es irrisoria, si la centralita de Dedalo hubiera que construirla a millones, entonces compensaría usar el más pequeño, porque una diferencia de 2 euros suponen 2 millones, pero para su centralita ¿que más da que cueste 7 que 9?

Una cosa que suele pasar es que te especializas en una familia, Dedalo parece muy familiarizado con la del MCS51 como yo lo estuve, cuesta cambiar entonces, yo lo hice cuando "no tuve más remedio", es decir cuando mi programador de C51 no tenía drivers para Windows 2000, entonces descubrí que los PIC se programan con "una piedra" y fue una razón, luego el C gratuito ya fue la repera, parece que vendo "C" pero es que el ensamblador que aprendas solo te servirá para una familia, te ayudará a pensar "ensamblador" que viene muy bien para depurar, pero una vez que aprendes C, se te abren las puertas de todos los micros y cuando cambias solo tienes que aprender lo concreto de ese micro, y seguramente ya habrá una función muy parecida a lo que buscas en alguna parte, aunque esté en pascal, o en basic, pasarla a C será coser y cantar.

Lamento decirte que esta "soltura" no se aprende en la uni, :( en informática de sistemas (antes "de sistemas físicos") te enseñan "Programación", y te sirve para cualquier programación y lenguajes (son sus limitaciones de memoria y demás) si no han cambiado mucho, también te enseñan los microcontroladores, (un modelo "universal" tipo PIC, MCS51, ARM...) en industriales te enseñan algo de electrónica, pero solo principios básicos, solo en la técnica de electrónica o en una rama de comunicaciones es donde más se aprende, o debería, pero hasta que no te metes tu a saco, todo es teoría, y no esperes aprender a soldar allí...
Lo que si te dan es una base muy solida, que te hace entender (o debería hacerte entender) porque pasan ciertas cosas, por ejemplo, la cargabilidad de una salida, o la corriente de entrada.
Me he encontrado a alumnos que le metían la salida de un PLC (que es de 24V) a un integrado lógico (que solo admite 5)... "este integrado es una mierda, se quema en dos usos, pero el circuito está bien porque antes de quemarse funciona" :scratch: otros diferentes lo hacían al revés, metían la salida de un integrado lógico (ó 0V ó 5V) a la entrada de un PLC (que es de 24V) no se rompía nada, pero "este PLC es una mierda, el circuito va perfectamente porque lo medimos y va bien, pero el autómata no se entera"... otros querían mover un motor de 40W con la misma salida lógica... y lo peor, controlar un triac conectándolo directamente a la salida de un PC, sin optoacoplador ni na... "he probado el circuito con un pulsador y si funciona ¿porque aquí saltan los plomos?", los plomos, la tarjeta de adquisición, el PC..., y tu no porque el teclado es de plástico...

En fin, que la soltura la da el estar "todos los días" con el tema, después de quemar unos cuantos, ya vas aprendiendo más cosas...

Ah, que se me olvidaba "Bolonia" ahora todas las carreras son de 4 años, así que no hay técnica y superior, así que infórmate bien. Que conste que yo soy de los que animan, si empiezas alguna y piensas que no vas a poder con todo, por trabajo, por tiempo... coge una fácil y una difícil, si dejas las difíciles para el final, nunca acabas...

Dedalo
14/07/2010, 18:00
El principio del bootloader sirve para cualquier pic que admita la autoprogramación de la memoria flash...

...si el 16F88 admite la autoprogramación, se puede hacer.

Ahi esta, el 16F88 no tiene esa capaciodad de autoprogramarse...



Lamento decirte que esta "soltura" no se aprende en la uni...

...hasta que no te metes tu a saco, todo es teoría, y no esperes aprender a soldar allí...

...Lo que si te dan es una base muy solida...

...En fin, que la soltura la da el estar "todos los días" con el tema, después de quemar unos cuantos, ya vas aprendiendo más cosas...


Amen.

Aunolose
14/07/2010, 18:49
... coge una fácil y una difícil, si dejas las difíciles para el final, nunca acabas...

Quise decir "...coge una asignatura fácil y una difícil..."




Ahi esta, el 16F88 no tiene esa capaciodad de autoprogramarse...



Entonces no...





Amen.

:oops: También puede servir para animarle: se puede aprender esto sin necesidad de ir a los estudios superiores.

navegante 420
14/07/2010, 19:08
Pues a eso me refiria yo, que por lo menos me den la teoria, para saber por donde tirar, tener recursos, o simplemente para poder segiros cuando hablais, la practica y las ganas, creo que ha quedado claro que las tengo, que solo con un modulo, en el que los profes no es que pongan muchas ganas, y ya habeis visto lo que intento hacer.... y maginaros con los conocimientos de Grau d'Enginyeria Electrònica Industrial i Automàtica.

pero por lo que comenta aunolose, posiblemente tenga que convinar un par de ellas....

navegante 420
14/07/2010, 19:14
Más concretamente esta es la que estaba pensando hacer el año que viene con el modulo ya en el Bolsillo. Si el tiempo y el trabajo me lo permite.....
Grado de IngenierÃ*a Electrónica Industrial y Automática - URV (http://www.urv.cat/cae/graus/es_graudenginyeriaelectronicaiautomatica.html)

Aunolose
14/07/2010, 19:18
No te desanimes, esto es la punta del iceberg de lo que puedes aprender en una ingeniería. Aplicar toda la teoría que aprendas dependerá del tiempo de que dispongas. :D
En informática (de sistemas, que es la que conozco) te enseñan a construir un ordenador completo, incluso a programar un sistema operativo para él, si es que no es compatible con los actuales...

Esto también lo pongo para que se valore a la gente, no solo en EEUU o Alemania se aprenden esas cosas. Simplemente allí se venden mejor.

Aunolose
14/07/2010, 19:20
Más concretamente esta es la que estaba pensando hacer el año que viene con el modulo ya en el Bolsillo. Si el tiempo y el trabajo me lo permite.....
Grado de IngenierÃ*a Electrónica Industrial y Automática - URV (http://www.urv.cat/cae/graus/es_graudenginyeriaelectronicaiautomatica.html)


Tiene muy buena pinta... poco a poco...

navegante 420
14/07/2010, 19:22
Para proyectos personales lo fácil es apostar por los "grandes", porque la diferencia de coste es irrisoria, si la centralita de Dedalo hubiera que construirla a millones, entonces compensaría usar el más pequeño, porque una diferencia de 2 euros suponen 2 millones, pero para su centralita ¿que más da que cueste 7 que 9?



Pero en el caso del proyecto para el concurso, tengo que tener en cuenta eso y justificarlos, si me pasais vuestros mails por privado os voy pasando lo que tenemos hecho, haber que os parece y obiamente estaremos encantados con las aportaciones que nos hagais....

Aunolose
14/07/2010, 19:25
ah bueno, entonces no se trata de un proyecto "personal", es como si fuera "comercial" ¿no?

navegante 420
14/07/2010, 19:41
Más o menos, por lo que pude ver este año, se valoraron varias cosas, la idea sobre todo (y creo que la nuestra es buena).
La realización y consecución del proyecto. (para eso cuento con vuestra colavoración jejejeje)
Y claro para marcar la diferencia, ha salido mi vena de vendedor, para hacer un pack justificandolo todo, dando un razonamiento, etc...

Dedalo
14/07/2010, 20:07
Supongo que un concurso de una empresa comercial se tendrá en cuenta muchisimo el coste de produccion del proyecto. Diseñalo con componentes de aparicion reciente o que persistan en el tiempo.

Los MCS51 se utilizan desde hace casi 20 años y hay produccion de compatibles asegurada para el futuro, ATMEL se encarga de eso.

Los ARM estan ahora de moda, y el soft del Z80 le sirve todo, asi que tiene 30 años de soft para el solo y es un producto con muchisimo futuro.

El 16F84 ya esta en caida libre al desuso, pero los nuevos PICS 16xx y 18xx estan en pleno desarrollo y cada dia los hay con mas prestaciones.

Los MC68 de Motorola ya no se fabrican, pero hay segundos fabricantes que los estan poniendo en su catalogo porque hay mucho soft escrito para ellos. La gama 68HC705 es una pasada, los hay para todos los gustos.

Te envio un privado...

Aunolose
14/07/2010, 20:37
Supongo que un concurso de una empresa comercial se tendrá en cuenta muchisimo el coste de produccion del proyecto. Diseñalo con componentes de aparicion reciente o que persistan en el tiempo.

Los MCS51 se utilizan desde hace casi 20 años y hay produccion de compatibles asegurada para el futuro, ATMEL se encarga de eso.

Los ARM estan ahora de moda, y el soft del Z80 le sirve todo, asi que tiene 30 años de soft para el solo y es un producto con muchisimo futuro.

El 16F84 ya esta en caida libre al desuso, pero los nuevos PICS 16xx y 18xx estan en pleno desarrollo y cada dia los hay con mas prestaciones.

Los MC68 de Motorola ya no se fabrican, pero hay segundos fabricantes que los estan poniendo en su catalogo porque hay mucho soft escrito para ellos. La gama 68HC705 es una pasada, los hay para todos los gustos.

Te envio un privado...


Todos los grandes fabrican alguno, que se ponga "de moda" tiene algo de suerte, como los PIC que llegaron sin precedentes hace "nada" y ya compiten como el que más.


Los PIC "viejos" están cayendo por coste, no porque no sirvan: los nuevos incluyen todo lo anterior y mucho más, por ejemplo poder funcionar con 2V, que los anteriores no podían, y por el mismo precio, así que se apuesta por los nuevos, incluso con 8 ó 6 patas...que creo que es el unico fabricante que apuesta por algo así, el resto es al revés, venga patas, venga periféricos, venga encapsulados "imposibles"...

Dedalo
15/07/2010, 01:29
Los PIC "viejos" están cayendo por coste, no porque no sirvan: los nuevos incluyen todo lo anterior y mucho más, por ejemplo poder funcionar con 2V, que los anteriores no podían, y por el mismo precio, así que se apuesta por los nuevos, incluso con 8 ó 6 patas...que creo que es el unico fabricante que apuesta por algo así, el resto es al revés, venga patas, venga periféricos, venga encapsulados "imposibles"...

Ciertamente. Recuerdo cuando programaba los 8748 de Intel, que no tenian competidor, porque estaban solos en el mercado, te costaban 3.000 Ptas, vamos, como una comida para cuatro... y apenas tenian los puertos paralelo y algun timer, ni siquiera tenian sistema de prioridad de interrupciones. Encapsulados en 40 patas ceramico. Ahora los PIC de 6 y 8 patas tienen tres timers, sistema de prioridad de IRQ, varios Kb de RAM y EEPROM, etc, y cuestan dos o tres euros, eso viene a ser un par de cafes.

navegante 420
16/07/2010, 00:53
Supongo que un concurso de una empresa comercial se tendrá en cuenta muchisimo el coste de produccion del proyecto. Diseñalo con componentes de aparicion reciente o que persistan en el tiempo.



Si y no, porque tambien tiene en cuenta el curricular del módulo, o sea el 16f84, ensamblador, simulacion en proteus, esquemas en orcad....

navegante 420
16/07/2010, 01:04
El sexto bit del puerto A esta conectado a traves de un optoacoplador al terminas D+ del alternador para saber cuando esta rodando.

Un dia de estos me tendreis que dar una clase magistral del optoacoplador, que es, para que sirve, y sus virtudes, que ya he oido hablar de ellos, pero no se exactamente para que sirven... pero ¡¡¡un terminal d+ en el alternador!!! que me estas contando??? y por donde para ese terminal??? me acabas de descubrir un mundo nuevo....



dos bits restantes del puerto A son RXD y TXD de un puerto serie que conecta este micro al micro de la centralita para informar del estado de carga de las baterias. La centralita reclamará datos a este micro del voltaje de las baterias, estado de la placa solar y presencia de corriente 220V externa, si el cargador de 220 esta cargando o ya esta en flotacion, etc.



esto de la conunicación entre pics me tendrás que dar una orientacion sobre lo que os pasare por mail en breve...