Autor Tema: Microcontrolador Pic18f45k22 y modulo USART  (Leído 2016 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado EdlvPa

  • PIC10
  • *
  • Mensajes: 2
Microcontrolador Pic18f45k22 y modulo USART
« en: 04 de Agosto de 2015, 23:40:15 »
Hola a todos,

Estoy intentando realizar comunicación serial entre el PC y un Pic18f45k22 que contiene dos módulos USART de los cuales estoy usando el modulo 1, pero al momento de simularlo en proteus puedo enviar datos al pc pero no recibo datos del pc hacia el PIC. En el programa que adjunto no esta configurado la transmisión PIC-PC ya que esta si funciona bien. Si alguien puede ayudarme a ver que estoy haciendo mal les quedaria muy agradecido. Por cierto estoy usando asembler y lo que estoy intentando hacer es del pc enviar un dato al pic y que lo muestre en el puerto B.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Microcontrolador Pic18f45k22 y modulo USART
« Respuesta #1 en: 05 de Agosto de 2015, 04:51:07 »
Segun el datasheet te equivocaste en un paso:

Citar
Set the RXx/DTx and TXx/CKx TRIS controls to ‘1’.

Es decir ambos, pero vos tenes pusiste como entrada a RX y salida a TX. Y el datasheet dice que ambos deben estar como entradas. Si te causa dudas el por que , tambien dice:

The EUSART and MSSP peripherals override the TRIS bit to make a pin an output or an input.

No me fije en el tema de las interrupciones, imagino que esta bien acomodado eso.

Una ayuda que podes poner es hacer que ponga a 1 una salida en la interrupcion de alta prioridad, y baja prioridad. Ademas de poner a 1 una salida en el loop principal, eso poder verlo con un osciloscopio para ver si varia ( si se esta reseteando constantemente) o para ver a donde entra. tambien asegurarse que este llegando algo.
« Última modificación: 05 de Agosto de 2015, 05:23:06 por KILLERJC »

Desconectado EdlvPa

  • PIC10
  • *
  • Mensajes: 2
Re: Microcontrolador Pic18f45k22 y modulo USART
« Respuesta #2 en: 05 de Agosto de 2015, 17:06:46 »
Segun el datasheet te equivocaste en un paso:

Citar
Set the RXx/DTx and TXx/CKx TRIS controls to ‘1’.

Es decir ambos, pero vos tenes pusiste como entrada a RX y salida a TX. Y el datasheet dice que ambos deben estar como entradas. Si te causa dudas el por que , tambien dice:

The EUSART and MSSP peripherals override the TRIS bit to make a pin an output or an input.

No me fije en el tema de las interrupciones, imagino que esta bien acomodado eso.

Una ayuda que podes poner es hacer que ponga a 1 una salida en la interrupcion de alta prioridad, y baja prioridad. Ademas de poner a 1 una salida en el loop principal, eso poder verlo con un osciloscopio para ver si varia ( si se esta reseteando constantemente) o para ver a donde entra. tambien asegurarse que este llegando algo.

He probado colocando a 1 los dos bits del registro TRISC RC6 y RC7 pero la verdad sigue con el mismo problema, también he puesto un led de prueba tanto en el programa principal como en la interrupción de baja prioridad que es donde esta configurada la interrupción del USART1 pero solo el led de  la interrupción no se enciende cuando le envío un dato de la PC, el led del programa principal si se enciende. Estoy primero haciendo la simulación a través de proteus 8.1 SP1 ya que el programador que tengo no reconoce este pic así que no se si es el proteus o algo en la configuración del USART1 porque lo único que hice fue pasar un programa que tenia hecho para el pic18f4550 que si funconaba a este pic que estoy usando, haciendo las modificaciones necesarias en la numeración del puerto USART