Autor Tema: Configuracion módulo EUSART y SPI  (Leído 2053 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juanchin

  • PIC10
  • *
  • Mensajes: 8
Configuracion módulo EUSART y SPI
« en: 21 de Agosto de 2013, 09:04:04 »
Hola a todos,

Tengo una duda en cuanto a la configuración de los módulos EUSART y MSSP (SPI) del PIC18F45j50. La cuestión es que para no hacer un rediseño de todo el prototipo, necesito usar el modo SPI del módulo MSSP1 y por otro lado necesito usar solo la transmision del módulo EUSART1.

Para usar el modo SPI se utilizan 3 pines (SDO1, SDI1 y SCK1) y para usar la transmision del módulo EUSART1 necesito solo el pin, TX1. Pero la cosa es que el pin 1 del micro comparte la funcion de RX1 y SDO1, entonces he aqui mi pregunta, ¿podria usar ambos modulos? en la configuracion del módulo EUSART1 deshabilité la recepción (RCSTA1bits.CREN = 0; //Disables receiver) porque no la necesito, solo necesito enviar datos. ¿es eso suficiente para que ese pin pueda ser usado por otro módulo?

Desde ya, muchas gracias!!!

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Configuracion módulo EUSART y SPI
« Respuesta #1 en: 21 de Agosto de 2013, 09:45:11 »
En teoría sí. Podrías hacer un programita sencillo que utilice ambos módulos y simularlo en proteus
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Configuracion módulo EUSART y SPI
« Respuesta #2 en: 21 de Agosto de 2013, 11:18:27 »
Ese pic tiene PPS (peripherical pin select). O sea que podes elegir el pinout de los módulos. Por ejemplo podes poner el RX1 en cualquier otro pin y listo. No se en que lenguaje estas programando, pero te dejo un ejemplito en CCS de como cambiar los pines:

Código: C
  1. #include <18F26J50.h>  
  2.    #FUSES NOWDT,INTRC_PLL_IO,NODEBUG,NOXINST,STVREN,NOPROTECT,NOFCMEN,IESO,NOIOL1WAY,NOCPUDIV,LPT1OSC,T1DIG,PLL2
  3.    #use delay(clock=48M,INTERNAL)
  4.      
  5.    #PIN_SELECT U2TX=PIN_B0
  6.    #PIN_SELECT U2RX=PIN_B1
  7.    #PIN_SELECT SDO2=PIN_B5
  8.    #PIN_SELECT SCK2=PIN_B4
  9.    #PIN_SELECT SDI2=PIN_B2
  10.      
  11.    #use rs232(UART2, baud = 9600, STREAM = M95_STREAM)
  12.    #use rs232(UART1, baud = 9600, STREAM = RS232_STREAM)

Como verás, estoy poniendo la UART2 en los pines B0 y B1, y el módulo SPI en los pines B5 B4 y B2.
Espero que te sirva. Lee bien la hoja de datos, la sección de PPS.
Saludos!!
« Última modificación: 21 de Agosto de 2013, 11:21:04 por gera »

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado juanchin

  • PIC10
  • *
  • Mensajes: 8
Re: Configuracion módulo EUSART y SPI
« Respuesta #3 en: 21 de Agosto de 2013, 15:45:55 »
Gracias por sus respuestas!

Gera, ya habia visto la hoja de datos y los pines del módulo mssp1 no se pueden cambiar, solo los del módulo 2!!!!

Citar
pagina 150 de la hoja de datos del pic18f45j50

...
The PPS module is not applied to I2C, change notification inputs, RTCC alarm outputs or peripherals with analog inputs. Additionally, the MSSP1 and EUSART1 modules are not routed through the PPS module.
...

Y la interferencia que tengo es entre los pines del módulo MSSP1 y EUSART1!!

Voy a probar eso de hacer un programita sencillo configurando los modulos, pero no tengo tiempo para nada :S  :5]

Desde ya, muchas gracias!!

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Configuracion módulo EUSART y SPI
« Respuesta #4 en: 21 de Agosto de 2013, 15:58:53 »
Ese pic tiene PPS (peripherical pin select). O sea que podes elegir el pinout de los módulos. Por ejemplo podes poner el RX1 en cualquier otro pin y listo. No se en que lenguaje estas programando, pero te dejo un ejemplito en CCS de como cambiar los pines:

Código: C
  1. #include <18F26J50.h>  
  2.    #FUSES NOWDT,INTRC_PLL_IO,NODEBUG,NOXINST,STVREN,NOPROTECT,NOFCMEN,IESO,NOIOL1WAY,NOCPUDIV,LPT1OSC,T1DIG,PLL2
  3.    #use delay(clock=48M,INTERNAL)
  4.      
  5.    #PIN_SELECT U2TX=PIN_B0
  6.    #PIN_SELECT U2RX=PIN_B1
  7.    #PIN_SELECT SDO2=PIN_B5
  8.    #PIN_SELECT SCK2=PIN_B4
  9.    #PIN_SELECT SDI2=PIN_B2
  10.      
  11.    #use rs232(UART2, baud = 9600, STREAM = M95_STREAM)
  12.    #use rs232(UART1, baud = 9600, STREAM = RS232_STREAM)

Como verás, estoy poniendo la UART2 en los pines B0 y B1, y el módulo SPI en los pines B5 B4 y B2.
Espero que te sirva. Lee bien la hoja de datos, la sección de PPS.
Saludos!!

hola, estoy por empezar a ver lo mismo, lastima que no tengo tiempo para ponerme a full, asi que voy de apoco nomas, hice un pequeño proyectin con un pic 18f452, y tengo tambien el tema de los pines, asi que la condicion para poder cambiar de pines mediante un codigo similar al que haz puesto es verificar en el datasheet si el pic tiene pps?