No se pueden usar pines particulares en SAMD21 como salida digital

1

Me mudé a Atmel desde una carrera que tuve con la serie MSP430 y un poco confuso en este momento, ya que la configuración de los pines parece bastante diferente.

Mientras manejaba un dispositivo SPI, necesitaba un pin de E / S general para controlar la funcionalidad RESET del módulo de radio SPI externo y noté que del conjunto de pines que uso para fines similares, algunos no funcionan como deberían.

Escogí un pin vacío en el tablero de demostración SAMD21 Explicado y, en este caso en particular, estaban

  • Ext3_PIN_3, 4, 5, 6

Aquí están las definiciones de pin de samd21_xplained_pro.h

//name Extension header #2 pin definitions
#define EXT3_PIN_3                PIN_PA02
#define EXT3_PIN_4                PIN_PA03
#define EXT3_PIN_5                PIN_PB30
#define EXT3_PIN_6                PIN_PA15

Enganchando Ext3_PIN_4 (que es PIN_PA11) a un CRO y ejecutando los comandos a continuación justo al inicio para la prueba, no obtengo cambios entre 3.3 y 0 a diferencia de los otros 3 pines .

int main(void)
{
    struct port_config pin_conf;
    port_get_config_defaults(&pin_conf);

    /* Configure the pin as outputs */
    pin_conf.direction  = PORT_PIN_DIR_OUTPUT;
    port_pin_set_config(EXT3_PIN_4, &pin_conf);
    port_pin_set_output_level(EXT3_PIN_4, 1);
    port_pin_set_output_level(EXT3_PIN_4, 0);
    port_pin_set_output_level(EXT3_PIN_4, 1);
    port_pin_set_output_level(EXT3_PIN_4, 0);
}

Obtuve puntos de interrupción en cada línea pin_set y alternando manualmente al avanzar una sola línea ya que no quería inicializar delay_ms , etc. ¿Hay algo obvio que me esté perdiendo aquí?

    
pregunta Mehrad

0 respuestas

Lea otras preguntas en las etiquetas