Non indovinare, non pregare, non provare, segui semplicemente la scheda tecnica e trattala come il tuo Dio.
Anche se sono d'accordo che può essere un po 'esoterico, ogni spilla o categoria di pin avrà le correnti massime consigliate (sia di origine & / o affondante). È probabile che ci siano anche limiti massimi per l'intera porta di 8/16/32 pin e / o un source / sink massimo per i pin i / o dell'intero chip. Leggi la scheda tecnica, fai i conti, ottieni la risposta. Solo per complicare ulteriormente le cose, alcuni MCU ti consentono di programmare la quantità di corrente massima di sink / source a cui funzioneranno (ad esempio, i / o su un MCU TI di BeagleBone). Tutte le piattaforme / MCU che menzioni sono diverse.
Esiste il pericolo nel collegare semplicemente diversi pin di i / o insieme e utilizzare la loro capacità combinata di sourcing o sink di corrente, e non è per porta o per chip massimi che ho citato sopra; Gli MCU non sono pensati per essere dispositivi di shunt di potenza, ecco perché sono chiamati microcontrollori. È:
(a) cosa succede a quegli i / o quando il chip è in RESET? La maggior parte andrà in ingresso ad alta impedenza, il che probabilmente è OK, ma a volte un pin avrà uno scopo speciale che potrebbe entrare in gioco durante o immediatamente dopo un reset, nel qual caso, cosa farà il tuo circuito in quel momento, & come molta corrente attraverso quel pin?
(b) la tecnica con cui si impostano / cancellano quei pin di i / o: hai usato solo i pin da 1 porta, nel qual caso puoi scrivere un byte / parola nel registro i / o e impostare / azzerare tutti in una volta, quindi inizieranno tutti a dirigere tutti in una volta - fantastico. Ma se distribuisci il carico tra i pin di più porte i / o (ad es. Porta A & Porta B), allora ciò richiede più scritture di registro, che avviene in sequenza, il che significa che il primo pin / porta che viene scritto conduce per primo e trasporta il totale corrente, quindi non sarà fino a quando non verrà scritta la prossima / ultima porta che la corrente sarà condivisa più o meno equamente tra tutti i pin a cui ti sei collegato. Se stai facendo questo i / o scrivendo un singolo pin alla volta (es. "DidtalWrite (Pin, State)" di Arduino, allora quel primo pin condurrà la corrente COMPLETA fino a quando il secondo pin successivo di & non sarà scritto. Questo è tutto BAD e probabilmente ucciderà l'MCU, se non immediatamente, quindi entro il suo tempo di vita previsto.
La soluzione è semplice. Procurati un transistor NPN o un MOSFET N-ch di specifica adeguata, collega la sua base / gate al pin i / o dell'MCU (e calcolare un resistore in serie appropriato tra i due), collegare il suo collettore / drenaggio a qualunque cosa si desidera accendere / spegnere e collegare il suo emettitore / sorgente a terra.1 pin i / o , 1 transistor, buono per qualsiasi cosa, da decine di mA & oltre. Ci saranno altre domande su SE su come farlo in dettaglio.