Per eliminare i disturbi del modulo GSM, sul bus SPI, devo aggiungere dei 22pF
Però, se il MISO rimane squadrado, MOSI e SCK si arrotondano esageratamene.
Mi fa strano che il SAMD21 non riesca a pilotare 22pF a 12Mhz.
Nel dubbio che per un bug della libreria, stesse usando il pullup al posto di definire output i pin, ho provato a forzare i pin output ma la libreria SPI si disabilita.
12MHz corrispondono a un periodo di 80ns; accettando un tempo di arrotondamento del 10% sono 8ns. Poiché, in prima approssimazione, VC=IT (supponendo una corrente costante, che in realtà non è): I=VC/T=5*22p/8n=5*22/8000[A]=5*22000/8000[mA]=5*22/8 circa uguale a 5*2,7=13,5mA (22 è circa uguale a 24-10%).
In realtà la corrente diminuisce durante la carica, perciò occorre una corrente iniziale circa 4 volte superiore.
Secondo il datasheet:
a pag. 876 con 3,3V di alimentazione la corrente massima in uscita a livello basso va da 2,5 a 10mA (secondo lo stato di PORT.PINCFG.DRVSTR, che non ho indagato che cosa sia) e a livello alto da 2 a 7mA, perciò mi sembra proprio che non ce la possa fare.
Infatti servirebbero 13,5x4=54mA, mentre il D21 può dare 2...10mA, mediamente 10 volte di meno.
La sonda x10 probabilmente aggiunge 10...15pF. Non hai usato una sonda x1, vero?...
Però il paragrafo 37.8.1 dice che con quel bit a uno lo pilota 20pf
Devo solo studiare se è un solo bit per tutte le porte e com'è adesso
Dice che non è leggibile per cui bo, come lo mette l'IDE ?
Dice che ci mette 15ns (dal 10% al 90%, suppongo), comunque il doppio degli 8ns che avevo accettato io, quindi 20%, che mi sembra proprio ciò che si vede sull'oscilloscopio. Forse per brevi impulsi riesce a fornire una corrente doppia rispetto a quella massima dichiarata. Considera anche che hai la capacità della sonda in parallelo, che non so se è 10x o 1x...