En esta nota les traeré un proyecto completo que a mi me ha servido para realizar algunos proyectos de forma rápida y sencilla, al igual que para dar cursos de CCS y MCUs.
Se trata de una placa de desarrollo (similar a Arduino) en base a Microchip, en este caso estoy utilizando un 16F876A (porque este micro?, porque tenia muchos, pero sinceramente tendría que actualizarlo al 16F883 o 16F886 que el costo es menor y que poseen mas prestaciones).
La placa al igual que Arduino, posee el microcontrolador, una fuente de alimentación y un puente USB/UART.
El puerto USB se encuentra gobernado por el MCP2200 también de microchip y el mismo posee una salida UART Tx y Rx.
Para aprovechar este puerto se implementa un Bootloader (programa cargador de arranque que sirve para programar el microcontrolador desde el puerto serie en lugar de los pines dedicados para este uso).
Al utilizar Bootloader y cargar el programa desde el puerto UART, tenemos la posibilidad de usar el USB tanto como carga de programa como también para un monitor serial (De la misma forma que Arduino).
La carga del programa se realiza con un programa realizado en Delphi que no es mas que un lanzador del puerto serie virtual y el envió de los datos en hexadecimal (código compilado).
Para que comience la programación debemos presionar el botón Reset de la placa y luego se cargara el programa.
Esta placa puede ser programada en cualquier lenguaje, ya que solamente necesitamos el .hex para luego cargarlo en la misma. Aunque el microcontrolador requiere una única programación con un programador de microchip para cargarle por única vez el Bootloader en su memoria.
Los fuentes se encuentran disponibles en el siguiente LINK
La placa se alimenta directamente del puerto USB, por lo que no podremos extraer mas de 400mA para el uso de periféricos del mismo. En caso de necesitar mas corriente debemos utilizar una fuente externa y unir las masas.
A continuación dejare el Bootloader para copiarlo desde aquí (el mismo se encuentra a 9600bps), es necesario saber el baudrate ya que cuando descarguemos el driver para el MCP2200 lo debemos configurar a 9600bps.
En este link encontrara el driver para el MCP2200.
- :020000040000FA
- :0800000000008A150A16882E83
- :103D00008A150A16802E8A018A150A16832E00004B
- :103D1000031E832E903098008316181598161930BC
- :103D2000990083120330FA00113090000C14EC2635
- :103D3000EA3A031DAF2EFA01B62EEC26F900E33A5B
- :103D40000319B82E7908EA3A0319B62E7908ED3A24
- :103D5000031D9D2EE430E7260330FA00EC26900187
- :103D600098018316980183128C01832EEB30E52E87
- :103D7000EC26F600EC26F500EC26F100FB00EC2624
- :103D8000F300F20121308312031376020319D12EBE
- :103D900075080339FC00FD000310FC0D20307C0782
- :103DA000D22E20308400EC268000F207840AFB0B20
- :103DB000D32E72087306E830031DE52EE730E726A0
- :103DC000FE260038E4300319E530E7269D2E640016
- :103DD0000C1EE72E9900080064007A080319FA2ED9
- :103DE0000C1CFA2E1010FA0BF62E00340C103C307E
- :103DF0008F0010148C1EEC2E1A0808002130760259
- :103E00000319502F831603178C1783120313750899
- :103E1000FC3903178D000313760803178F00203039
- :103E2000840003137D080319282F831603170C142D
- :103E30000000000083120E088000840A0C08800035
- :103E4000840A8D0A0313FD03F503F10AF10A112F09
- :103E50007108FC00203E84000310FC0C7608031758
- :103E60008F000313750803178D0003137C080317D5
- :103E70008D0703198F0A03170D0803390319502FF3
- :103E800083160C140000000083120E088000840AC0
- :103E90000C088000840A8D0A0313F10AF10A3B2FF3
- :103EA0007508F7007608F800FB010230F40071088D
- :103EB0007B02031801347B08203E84002130780205
- :103EC0000317831603196E2F8C1783011E30780297
- :103ED0008030031977020318B62F702F8C138301DB
- :103EE000770803178D0003137808031D852F04300E
- :103EF00077020318852F031783168C1F822F8312D6
- :103F000084308D0783011E30862F780803178F00B9
- :103F100000088E00840A00088C0083160C155530AA
- :103F20008D00AA308D008C140000000083018316E0
- :103F300003178C1BBE2F8312031364000D1E9D2FCD
- :103F40000D12831603170C110C14000000008312CD
- :103F5000840300080E06031DB22F840A00080C0615
- :103F60000319B62F8301F40B572F00348312031368
- :103F70000230FB07F70A0319F80A552F83120313BF
- :103F80000D12831603170C11831203170D08033942
- :103F9000033C031DB62F03308D028312031304303C
- :103FA000FC00073084020000831603170C14000085
- :103FB000000000000000000000000008831203174A
- :103FC0000E06031DE82F840A00080C060319EF2FC4
- :103FD00083120313FC30F7050630FB02B22F831265
- :103FE00003178D0A840A83120313FC0BD32FB62FF9
- :084000000200010000000000B5
- :02400E00313F40
- :00000001FF
Al momento de soldar la placa, debemos tener en cuenta que el MCP2200 viene en encapsulado SOIC y debe soldarse del lado de abajo del mismo (Bottom), se ha realizado asi para usar un PCB de un simple layer.
Podremos ver esto en la vista 3D Top y Bottom.
Algunas fotos de la placa funcionando
hola, vendes el PCB?
ResponderBorrarHola Ezequiel, como estas?, por el momento te comento que no estoy manufacturando el pcb porque estoy trabajando en una versión 2 que es arduino shield compatible, para poder usar los mismos shields de arduino, ni bien la tenga subo el post y realizare los pcb en una empresa para su comercialización. Estoy estudiando también el tema de migrar el sistema a Pinguino (Es el arduino de Microchip basado en 18F con USB HID, ahorrando el USB Bridge de esta placa), pero eso sera otra version, por ahora estoy desarrollando una que es arduino shield compatible. Es el mismo hard que esta ya que la vengo usando hace un año y anda muy bien solo que con el pinout de los header compatibles. Si te interesa eso te mantengo al tanto! De todos modos lo voy a promocionar (a modo kit) en Facebook y acá mismo. Saludos!
BorrarHola Ezequiel, ya tengo andando el Bootloader para el PIC16F887/886 voy a desarrollar dos placas de desarrollo como esta para el 887 y 886. Ni bien las tenga te aviso. Todas van con Bootloader oficial de Microchip
BorrarExcelente, gracias... si vendes el PCB avisame, o el bootloader de donde se puede bajar.. (es libre) gracias
ResponderBorrarHola, te dejo un link de preview del proyecto, aun no lo tengo 100% disponible al publico, porque esta en fase de testing y no tengo la documentación/tutoriales para acompañar el proyecto (estoy trabajando en eso), pero están listos los Bootloaders, el programa para cargar el micro y el diagrama. Si queres échale un vistaso (actualmente esta andando así pero quiero testearlo un poco mas).
Borrarhttp://electgplboard.blogspot.com.ar/
Saludos.
Los PCB, estoy haciendo dos, uno para el 883/886 (que calculo que va a ser para el 886 porque cuesta lo mismo que el 883 y tiene mejoras) y otra para el 887.
BorrarEstoy evaluando del 887 usarlo en encapsulado TQFP para que pueda entrar en el mismo tamaño de placa que el otro (vendría a ser como el modelo MEGA de arduino). A menos que sea una placa diferente que no tenga mucho que ver con la compatibilidad de los shields, y ahí se puede usar el DIP40.
Como veras, aun esta en parte de desarrollo eso, y a discución. Voy a abrir en el grupo un tema sobre esto para charlarlo mejor. De todas maneras, el sistema ya lo he probado con el 887 (en protoboard) y funciona muy bien.
Saludos