Atmega 1284P

Su questa MCU sono presenti 2 linee UART.....ho la necessità di una 3° UART che posso fare con la "Software serial".
Quali PIN mi consigliate di usare?

Grazie a chi mi risponde.....

Quale "core" stai utilizzando?

Perché, la SoftwareSerial originale non mi sembra supporti il 1284P, e, nei vari "cores", ce ne è sempre una fatta apposta ... normalmente basta andare a leggere il sorgente della libreria per vedere quali pin in RX supprta (il problema è solo su RX che ha bisogno di un qualche genere di interrupt, non per il TX).

Guglielmo

Comunque, invece della pessima “SoftwareSerial”, ti consiglio l’ottima AltSoftwareSerial di Paul Stoffregen, di cui trovi QUI la descrizione e su GitHub l’implementazione (l’ultima versione supporta il 1284P con il Mighty core).

Attenzione che questa libreria, per ragioni di efficienza, ha i pin prefissati … per il 1284P sono TX pin D13 e per il RX pin D14 (leggi il file config/AltSoftSerial_Boards.h per tutte le configurazioni in funzione delle varie MCU).

Guglielmo

gpb01:
Quale "core" stai utilizzando?

Uso il "MightyCore"
Mi aiuteresti a risolvere questo problema....grazie

gpb01:
Comunque, invece della pessima "SoftwareSerial", ti consiglio l'ottima AltSoftwareSerial ...

i pin che dichiari sono riferiti allo Standard Pinout?
Grazie ancora

red69:
Uso il "MightyCore"

Ok, con il Mighty non ci dovrebbero esse problemi ... tutti i pin di I/O del Atmega1284P supportano PCINT e quindi, teoricamente, la SoftwareSerial che è inclusa con il Mighty dovrebbe andare con qualsiasi pin ... da verificare ... ::slight_smile:

Guglielmo

red69:
i pin che dichiari sono riferiti allo Standard Pinout?

Scusa, non vedi che li ho chiamati D13 e D14 ? ? ? :o ... sono i nomi dei pin Arduino ... altrimenti li avrei chiamati, rispettivamente, PD5 e PD6 che sono su pin fisici dipendenti dal case (PDIP o TQFP).

Comunque, come ti ho detto, occorre sempre studiarsi i sorgenti delle librerie che si usano ...
... da file che ti ho indicato:

...
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega1284__)
 #define ALTSS_USE_TIMER1
 #define INPUT_CAPTURE_PIN		14 // receive
 #define OUTPUT_COMPARE_A_PIN		13 // transmit
 #define OUTPUT_COMPARE_B_PIN		12 // unusable PWM
...

Guglielmo