Arduino UNO R3, in certi casi SPI non funziona ...

Salute a tutti,

ho un problema strano che non riesco a risolvere... :confused:
Ho interfacciato ad un Arduino UNO R3 una serie di pannelli P10 32x16 LED, per l'esattezza 15 pezzi.
I panelli hanno un interfaccia SPI (HUB12) e la comunicazione funziona correttamente, utilizzo le librerie DMD freetronics. Ho in oltre implementato una comunicazione seriale USB con un PC, anche questa funziona correttamente... velocità 115200 bps, circa 20 byte in ricezione e una manciata in trasmissione.

Poi si è presentata la necessità di ampliare il pannello led, da 15 a 20 pannelli, da 5 di larghezza per 3 di altezza, a 5 di larghezza per 4 di altezza. Sembrava facile, ma purtroppo non funziona, i pannelli non si accendono, sembra che l'SPI non fa uscire il clock (ma devo verificarlo ancora con l'oscilloscopio). Ho provato ad escludere alcune parti del programma ed ho riscontrato che scrivendo un programma più semplice i 20 pannelli si accendono correttamente. Non appena ripristino la parte relativa alla comunicazione seriale USB, immediatamente i pannelli non si accendono più. Anche se non includo la seriale ma lascio il programma più complesso (quello che funziona con 15 pannelli variato per 20), i pannelli non si accendono.

La memoria di programma è al 36% mentre quella dinamica è al 30%.

Qualcuno ha un idea?

Senza vedere il codice, soprattutto la differenza tra programma "semplice" e "più complesso" è difficile dare una risposta.
Inoltre cosa intendi per "Anche se non includo la seriale" ?

Ciao nid69ita,

grazie della risposta :slight_smile:
certo capisco che senza codice non si può rispondere, solo che mi sembra troppa roba postarlo tutto e poi ci sono anche le librerie ecc. ecc. ... purtroppo adesso sono occupato ma nei prossimi giorni cercherò di postare due versioni sintetizzate (effettivamente testate) in modo da cercare di individuare il problema.
Per quanto riguarda la mia affermazione, intendo quando includo il codice relativo alla seriale, la parte che gestisce la ricezione e la trasmissione dei dati verso il PC.

Grazie ancora per l'attenzione buona giornata.