È sicuro collegare due pin MCU direttamente tra loro?


10

Sto lavorando a un progetto MSP430 che mi richiede di indirizzare l'output di una periferica nell'input di un'altra periferica. Pertanto, ho due pin MCU collegati direttamente tra loro. Questo mi sembra sospetto poiché esiste la possibilità di un errore di programmazione che causa l'output di entrambi (possibilmente in conflitto). Inoltre, esiste il problema degli stati di avvio e programmazione.

Nel peggiore dei casi, se un pin sta guidando HI, l'altro sta guidando LO, i pin GPIO hanno generalmente molto più capacità di dissipazione rispetto alla capacità di sorgente ... quindi sarà un po 'come prendere un'uscita HI e metterla in cortocircuito verso quasi- terra. Il che è male ... ma quanto è cattivo? È probabile che causi danni all'MCU?

Vedo spesso esempi sulla rete di persone che usano Arduinos per accendere un LED tra due pin senza un resistore, e non ho mai sentito parlare di storie di persone che friggono qualsiasi cosa tranne il LED. Chiaramente non vorresti farlo in un prodotto, ma i produttori in genere cercano di proteggere l'MCU dai pin GPIO in caso di sovraccarico?

Pensandoci in retrospettiva, mettere un resistore che limita la corrente tra i due pin avrebbe evitato qualsiasi preoccupazione, ma anche una piccola modifica dell'hardware è una cosa molto difficile da fare a questo punto.

Per riferimento futuro e il beneficio dei posteri, qualcuno ha altre idee sul modo corretto di minimizzare i rischi di collegare due pin MCU insieme e, più in generale, minimizzare i rischi che derivano dalla possibilità di sovraccaricare un pin GPIO?


Anch'io uso i controller msp430 se usi entrambi i pin come output c'è la possibilità di cortocircuito, ma se configuri un pin come output e un altro come input non creerà problemi. Ma qual è la periferica con cui vuoi collegarti?
Yogece,

Sto collegando un'uscita timer a un ingresso timer diverso. La domanda riguarda interamente la possibilità di corto circuito. Non sto pensando di usarli entrambi come output, ma c'è sempre la possibilità che entrambi (almeno momentaneamente) vengano emessi accidentalmente, a causa di fattori al di fuori del mio controllo.
Dmitri,

Risposte:


6

Non è un problema, ma se sei preoccupato che ci sia un conflitto di uscite, collegale con una resistenza da 1k ohm. Ciò limiterà la corrente di conseguenza.

Se tuttavia, l'ingresso ha bisogno di bordi molto veloci, allora quando sei sicuro che funzioni, colma 1k ohm con un corto o 100 ohm forse.

Il vantaggio aggiuntivo di avere il resistore è che se si ha il design commesso su PCB, si ottiene un'opzione di ricablaggio semplice.

È lo stesso problema con gli ingressi non utilizzati: collegali a terra o Vcc e rischi di assorbire corrente pesante dal dispositivo senza alcun modo semplice per capire cosa sta succedendo: legami tramite un 1k se non utilizzato o forse 10k.

La limitazione del sovraccarico viene eseguita su alcuni chip, ma solo in virtù del fatto che i transistor non possono intrinsecamente fornire "amplificatori", ma questo può funzionare contro di te perché se hai diversi pin di O in cortocircuito verso terra (o tra loro) e ognuno si limita con grazia, potresti comunque superare la potenza massima della corrente nei pin di alimentazione del dispositivo.

Per la serie MSP430 2, la pagina 21 di questo documento dice: -

inserisci qui la descrizione dell'immagine

Questo mi dice che se le correnti di uscita combinate di più pin raggiungono un certo limite, le capacità di uscita di qualsiasi altro pin (anche quelle che possono essere leggermente caricate) potrebbero essere compromesse dalla stessa quantità o forse peggio.


Ho esaminato electronics.stackexchange.com/questions/50539/… e gli altri in quel gruppo di almeno tre duplicati. Hai un ottimo punto riguardo alla sovracorrente del pin PSU: penso che sia probabilmente il più grande pericolo di collegare pin inutilizzati a GND / PSU. Quindi ... il transistor sul pin GPIO probabilmente non condurrà abbastanza per danneggiarsi (a meno che non sia cortocircuitato a qualcosa che non rientra nell'intervallo dell'alimentatore).
Dmitri,

Perché gli input non utilizzati (considerati High-Z) porterebbero ad un assorbimento di corrente pesante?
Passante dal

@passerby Se li colleghi a una guida PSU come piace a qualcuno e diventano accidentalmente uscite. Vedi le domande nella stringa a cui ho collegato, discussione piuttosto interessante.
Dmitri,

@passerby l'OP stava suggerendo che "la possibilità di un errore di programmazione che causa entrambe le uscite (forse in conflitto)" e presumo che ciò si applichi agli errori di programmazione sui pin non utilizzati.
Andy aka

È solo che la linea così com'è fa sembrare che gli ingressi non utilizzati collegati a una guida senza alcun tipo di errore di programmazione causino un forte assorbimento.
Passante dal

2

Il problema più grande è, come hai detto, errori di programmazione. Esistono potenziali problemi, quindi è necessario codificare attentamente. A parte questo, fintanto che i pin non sono entrambi uscite con livelli diversi, va bene.

L'uso di due pin per pilotare una singola sorgente non è raro (combinando l'uscita corrente).

Anche l'uso di due pin per pilotare un led (o due) non è raro. Anche se non si utilizza un resistore non è consigliabile, è possibile cavarsela. Se la tensione di uscita è relativamente vicina alla tensione diretta del led, l'assorbimento di corrente potrebbe non essere un problema. E c'è la caduta di tensione del pin. Man mano che la corrente aumenta, la tensione su quel pin diminuisce (da Vcc a Vcc - da 0,3 a -1, ecc.). All'aumentare della corrente, la tensione aumenta (da Gnd a Gnd da + 0,3v a + 1v, ecc.). È un po 'una benedizione auto-correttiva, ma non dovrebbe essere invocata.

E come hai già detto, potrebbe essere usato un semplice resistore di limitazione della corrente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.