OpenOCD ha un driver sysfsgpio generico e ha avuto uno specifico driver Raspberry Pi BCM2835 per un bel po 'di tempo, e AFAICT la velocità va bene (ad esempio, il flash di STM32F1 è limitato dalla velocità del suo flash) - circa 4 MHz sono facilmente ottenibili e per molti casi non è necessaria alcuna circuiteria esterna. C'è anche il supporto per SWD, ma non è ancora upstream.
Dovresti clonare l'attuale Git HEAD e compilarlo in modo nativo con --enable-bcm2835gpio
, quindi usa la configurazione da interface/raspberrypi-native.cfg
.
Per le specifiche, fai riferimento al manuale README e Texinfo ufficiale.
Per quanto riguarda la parte hardware della domanda: se la tensione di destinazione è uguale o molto vicina a 3,3 V puoi collegare i pin del Raspberry Pi direttamente all'interfaccia di destinazione, altrimenti potresti (non sempre sono necessari tanti moderni i microcontrollori hanno pin "5 V-tolerant", quindi possono essere collegati a sorgenti con tensioni superiori alla loro V cc senza alcun danno, ma controlla prima la documentazione!) è necessario aggiungere una conversione di tensione appropriata buffer.
Per fornire una migliore corrispondenza dell'impedenza, si consiglia di avere resistori in serie da 47-100 ohm su ogni linea di segnale, vicino al connettore Raspberry Pi. Per maggiori dettagli, consulta la spiegazione dettagliata di Michael Schwingen, Re: capacità di azionamento ad alto rendimento in Raspberry Pi .