función de pinout PIC

2

Mi dispositivo controla el motor mediante PWM y lee datos de serie (uart). Anteriormente estaba usando 40 pines y ahora solo 14 pines. Pasó que el "RX" y el CCP1 (PWM) están en el mismo pin. RC5, pin 5. Hay otro "RX" en RA1, pin 12. Pero no logré que funcionara.

Estoy usando mikroC Pro.

Al establecer TRISA = 1, ¿esto hace que el Pin 12 sea una entrada? ¿Podría alguien ayudarme en esto?

¡Gracias de antemano!

Las hojas de datos y otros detalles se pueden encontrar aquí: detalles de PIC16F1824

    
pregunta mlam

1 respuesta

5

Cita de la hoja de datos:

  

El control de función de pin alternativo 0 (APFCON0) y   Registros de control de función de pin alternativo (APFCON1)   Se utilizan para dirigir entradas y salidas periféricas específicas.   Funciona entre diferentes pines. El APFCON0 y   Los registros APFCON1 se muestran en el registro 12-1 y   Registrarse 12-2. Para esta familia de dispositivos, los siguientes   Las funciones se pueden mover entre diferentes pines.

     
  • RX / DT / TX / CK
  •   
  • SDO
  •   
  • SS (Slave Select)
  •   
  • T1G
  •   
  • P1B / P1C / P1D / P2B
  •   
  • CCP1 / P1A / CCP2
  •   

Estos bits no tienen efecto en los valores de ningún TRIS   registro. Las anulaciones de PORT y TRIS se enviarán a la   pin correcto El pin no seleccionado no se verá afectado.

Y para el registro APFCON0:

  

bit 7   RXDTSEL: Pin Selection

     
  • Para dispositivos de 14 pines (PIC16F / LF1824)
  •   
    • 0 = La función RX / DT está en RC5
    •   
  •   
    • 1 = La función RX / DT está en RA1
    •   
  •   
  • Para dispositivos de 20 pines (PIC16F / LF1828)
  •   
    • 0 = La función RX / DT está en RB5
    •   
  •   
    • 1 = La función RX / DT está en RC5
    •   
  •   

Por lo tanto, establecer RXDTSEL en 1 moverá el RX al mismo pin que RC5

Y al establecer TRISA en 1, se configurará la salida de todo el puerto A, excepto RA0, que se ingresará.

Establézcalo en 2, o configure TRISA1 en 1, para establecer RA1 como entrada.

EDIT:

Algunas otras cosas de la hoja de datos a tener en cuenta:

  

Si la función RX / DT está en un pin analógico, el bit ANSEL correspondiente debe estar desactivado para que el receptor funcione.

... así que para usar RA1 tienes que configurar ANSEL correctamente para asegurarte de que RA1 cambie a entrada digital no analógica (por defecto es analógica IIRC)

    
respondido por el Majenko

Lea otras preguntas en las etiquetas