TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: manwenwe en 21 de Noviembre de 2012, 16:26:24

Título: Bus CAN con dsPIC33E: ¿cómo hacerlo funcionar?.
Publicado por: manwenwe en 21 de Noviembre de 2012, 16:26:24
Hola,

estoy en un proyecto con dsPIC33EP64GP506 en el que utilizo bastantes periféricos. He configurado todos menos uno: me falta el bus CAN.

No tengo casi experiencia: hace años conseguí poner a trabajar un PIC18F+MCP2551, pero ya no recuerdo casi nada.

Me he bajado el código de ejemplo de Microchip,C30, pero no consigo hacerlo compilar ya que este código es para dsPIC33F: no hay forma de portarlo. También he copiado codigos de ejemplo de la nota de aplicación de bus CAN para dsPIC33E pero el hilo de ejecución se me queda parado chequeando el flag de transmisión: en el osciloscopio digital veo una señal digital con muy mala pinta a la salida de TX y nada en CANH y CANL a la salida del MCP2551. Además me lió bastante configurando el bit rate y para postre no tengo ni idea de qué hace el código que configura la DMA.

¿Alguién sabe de algún código de ejemplo que esté testeado?. El de la nota de aplicación ni compilaba de primeras: había faltas de ortografía y se notaba que no lo habían probado. Hay veces que me planteo cambiar de Microchip a NXP, ATMEL o Freescale para lo que no sea 8bits: la mitad de librerías no funcionan  :5].

Un saludo!
Título: Re: Bus CAN con dsPIC33E: ¿cómo hacerlo funcionar?.
Publicado por: MerLiNz en 17 de Marzo de 2013, 16:58:42
Pasate por el post del can-bus ahi podras ver como funciona y etc, luego portarlo es tan simple como cambiar los registros que se utilizan en el dspic33e. Primero debes saber como funciona, como se configura, parametros, velocidad... y luego no tendras problema alguno en utilizarlo en cualquier pic.

El DMA sirve para acceder directamente al periferico sin tener que utilizar la CPU del micro, es decir, una transferencia directa de memoria-periferico y viceversa sin tener que recurrir a comandos para hacer la transferencia.