Alternative a un classico DIP switch


10

Sto cercando una parte che consenta a un utente di cambiare frequentemente una configurazione. In questo momento sto utilizzando un DIP switch SMD collegato a un espansore I / O I2C.

Ciò che mi preoccupa è la grande impronta di questi componenti (DIP switch combinato con IO expander IC) e all'interfaccia utente piuttosto noiosa. Ci sono interruttori DIP o qualcosa che ha la stessa funzione con cui posso parlare su un bus digitale come I2C per leggerne lo stato?

Sono anche aperto a approcci completamente diversi. Tutto ciò di cui ho bisogno è qualcosa che possa essere modificato meccanicamente in modo permanente e che consenta almeno 64 stati diversi. È importante che la configurazione possa essere effettuata quando il circuito non è acceso e fornisce all'utente un feedback visivo dell'esatta configurazione. L'unico modo in cui sarebbe opportuno alimentare il circuito è se la configurazione e il feedback visivo sono autonomi senza la necessità di controllo da un microcontrollore o SoC.

La domanda è in qualche modo collegata a questa domanda di 6 anni fa: sostituzione dell'interruttore DIP

Modifica: ci sono alcuni ottimi suggerimenti nelle risposte e penso di lasciare questa domanda senza risposta, i voti della comunità dovrebbero decidere cosa è utile e cosa no. Se hai lo stesso problema che ho io, guarda tutte le risposte.


Se vuoi che sia fantasia, colpisci nel modulo bluetooth e imposta tutti gli interruttori tramite smartphone.
Chupacabras,

8
Il mio primo pensiero è che non è l'orma effettiva che rende grande un dip switch; sono gli interruttori reali. Passare a un protocollo seriale non lo renderebbe necessariamente più piccolo.
pipe

3
Potrebbe insegnare agli utenti a contare in esadecimale e utilizzare uno o due di questi ?
brhans,

Bene, vorrei sbarazzarmi del multiplexer / espansore di porte I2C. Se è solo il DIP switch andrebbe bene. Quindi, se esiste qualcosa come "DIP switch digitale", sarebbe fantastico.
PTS,

4
Quanto più piccolo di un piccolo pacchetto a 6 switch ti aspetti che possa essere realizzato prima che non sia più manipolabile meccanicamente?
Phil Frost,

Risposte:


19

È possibile utilizzare uno switch SIP anziché un DIP. Il salvataggio nell'area della scheda ti darebbe lo spazio per la tua interfaccia I2C (o un'interfaccia più semplice come un registro a scorrimento con latch in ingresso):

inserisci qui la descrizione dell'immagine

L'immagine lo mostra in orizzontale ma in realtà si monta in verticale.


Sono davvero belli e li sto prendendo in considerazione per il mio design anche se in una scheda SMD multistrato è un po 'difficile usare uno di questi senza bloccare una grande area per il routing.
PTS

1
Potrebbero esserci versioni SMD. I pacchetti SIP SMD di solito hanno piedi sfalsati.
Passante dal

SMD potrebbe essere una sfida, Apem (che crea quello nella foto) non li fa, non ricordo di averli visti altrove. Normalmente li avrei vicino al bordo del PCB dove il routing non è sempre così cruciale.
Finbarr,

9

Interruttore "DIP"

Prima di tutto, un interruttore "DIP" non deve essere grande. Ecco uno switch SMD a 6 bit con pin J-hook e passo 1,27 mm:

CHS-06TAinserisci qui la descrizione dell'immagine

potenziometro

Se stai cercando disperatamente di ridurre il footprint e puoi creare un po 'di disagio all'utente, potresti usare un potenziometro collegato a un convertitore A / D. Poiché sono necessarie 64 impostazioni, un convertitore a 12 bit dovrebbe avere un margine di risoluzione più che sufficiente per distinguere tra i passaggi, dati alcuni filtri e soglie elettrici e software. Ecco una soluzione da 2 per 2 mm:

PVF2A

Tuttavia, non ho mai visto un potenziometro analogico con 64 fermi fisici. Ciò significa che non avrai alcun feedback tattico affidabile per l'utente durante la configurazione del dispositivo. È anche difficile trovare in modo affidabile l'impostazione corretta all'avvio, poiché può essere lasciato a destra su una soglia tra due impostazioni: memorizzerei l'impostazione precedente in una EEPROM e se il potenziometro è abbastanza vicino al valore memorizzato all'avvio, I li considererebbe uguali.

Inoltre, probabilmente non userei quel rifinitore da 2 per 2 mm, ma ci sono migliaia di trimpot differenti.


Idea interessante con il potenziometro. Anche se il feedback visivo dell'impostazione esatta sarebbe importante.
PTS,

Sono disponibili mini encoder rotativi, profilo simile a un potenziometro ma con uscite binarie, di solito a 4 bit / 16 passi contrassegnati 0-F con fermi chiari.
John U

@JohnU Ne hai bisogno due, portando a una soluzione più ampia.
pipe

Due di questi (forse in posizione verticale piuttosto che piatta) potrebbero facilitare l'imballaggio.
Giovanni U

@PTS Se sul tuo dispositivo è già disponibile una sorta di display, puoi abusare del software per leggere il valore e visualizzarlo. Supponendo che sia già stato caricato un qualche tipo di menu di configurazione, neanche questo richiede molto lavoro. Naturalmente, non sarai in grado di leggere il display mentre il dispositivo è spento.
Albero

9

Hai un ADC di riserva?

Se si dispone di un ADC di riserva a 8 bit su un microcontrollore vicino, probabilmente si potrebbe abbandonare l'espansore IO a favore di una rete di resistori: una scala R-2R o una scala ponderata binaria. Ciò codificherebbe le posizioni degli interruttori come livello analogico. Le scale resistive sono disponibili in pacchetti molto piccoli, ma non so se ne otterrai uno più piccolo del tuo expander I2C.

Quante general purpose IO linee ne hai?

Se riesci a cavartela con un minor numero di linee IO, forse puoi abbandonare l'espansione IO e usare quelle che hai? È possibile multiplexare gli interruttori su meno di sei linee IO. In effetti, se hai spazio per 3 diodi e il tuo microcontrollore ha pin tristati, puoi gestirlo con solo 3 pin.

I tuoi utenti possono gestire qualcosa di un po 'tecnico?

Se i tuoi utenti possono seguire le istruzioni e la configurazione cambia solo raramente, potresti avere terminali aperti in cui possono inserire un resistore. Misureresti la resistenza con un ADC, o misurando la costante di tempo che fa contro un condensatore. Dovresti essere in grado di distinguere 64 valori di resistori, il che potrebbe essere complicato da quest'ultimo approccio. E ovviamente i tuoi utenti dovrebbero avere a portata di mano i valori dei resistori / gli stili di caso corretti.


Con i resistori, potresti anche fare 2 resistori, quindi hai solo bisogno di un convertitore A / D a 4 bit e hai bisogno di una quantità minore di resistori da distribuire, in modo da risparmiare il prezzo
Ferrybig

Ho riformulato la mia domanda. Non è necessariamente la dimensione del DIP switch che mi riguarda, ma la necessità del componente aggiuntivo sotto forma di un espansore I / O. Oltre al mio bus I2C mi restano solo 3 IO.
PTS

Tre linee IO tri-state sono sufficienti per indirizzare sei switch. In generale è possibile indirizzare n ^ 2-n switch con n linee IO e n diodi. Devo aggiungere uno schema?
Jack B,

7

Uno o più interruttori rotativi codificati sono ciò che stai cercando.

I jumper teorici offrono più configurazioni quando hai bisogno di centinaia di opzioni perché gli utenti possono cortocircuitare un numero qualsiasi di loro in diverse configurazioni, aggiungere resistori, condensatori, diodi, ecc. Ma questo è molto tecnico per gli utenti e per la decodifica della scheda!


Scusa se devo aver perso la risposta quando ho aggiunto la mia. In effetti sono un'ottima alternativa ai DIP switch!
PTS

4

NFC NTAG da smartphone NXP +. È fondamentalmente una EEPROM I2C, che può anche essere letta e scritta su NFC senza alimentazione di sistema.


2

Molte ottime opzioni qui! Un altro un po 'oscuro: utilizzare un ricevitore IR, quindi utilizzare un telecomando TV o un computer per trasmettere le impostazioni. Ecco come lo fanno le luci RGB.


1
L'IR fornisce un po 'di energia, quindi potrebbe funzionare solo quando il dispositivo stesso non è alimentato, ma come lo realizzeresti nell'hardware?
MSalters,

2

Durante la ricerca di questo ho ricevuto una raccomandazione per gli interruttori codificati a rotazione. Il loro ingombro è paragonabile a un DIP switch con passo da 1,27 mm equivalente. Anche se a mio avviso offrono interfacce utente di gran lunga superiori rispetto agli switch DIP / SIP.

Invece di dover convertire un numero decimale o esadecimale in binario e capovolgere una tonnellata di piccoli interruttori puoi semplicemente girare 1 o 2 di questi interruttori rotanti e lavorare con numeri esadecimali. Molto più facile dire a un utente di "inserire" E6 piuttosto che istruirlo a far girare molti interruttori in uno schema specifico.

inserisci qui la descrizione dell'immagine


1

Un approccio diverso potrebbe essere un encoder rotativo, una EEPROM e 6 piccoli LED.

Lo stato viene salvato nella EEPROM e i LED indicano la modalità corrente selezionata.

Ruotando l'encoder si passerà da una modalità all'altra.

Probabilmente non risparmierà molto spazio: il tuo tipico encoder ha un albero da 6 mm e quindi hai bisogno di spazio anche per i LED.

Il solo utilizzo di un singolo interruttore rotante non sembra promettente. Con 64 posizioni, finiresti con poco meno di 6 ° per posizione, sentendo che o l'etichettatura diventerà difficile.


Leggi il tuo commento alla risposta di @Trevors, quindi anche questo approccio è inutile.


Grazie comunque, la tua idea non richiederebbe almeno l'avvio dell'intero sistema. L'ho aggiunto come un modo accettabile alla domanda.
PTS,

Un piccolo pulsante con i LED per il ciclismo potrebbe funzionare però. Scommetto che è il modo in cui usano per riprogrammare i tricorder in Star Trek TNG
PlasmaHH,

1

Tre opzioni.

  1. Analogico. Un divisore di tensione regolabile. L'utente fornisce i propri resistori di gamma standard al 5% per impostare il valore.

  2. PWM. Un circuito PWM o RC optoisolato con 64 passaggi che il dispositivo legge. Possono essere alimentati separatamente o dalla stessa fonte, ma poiché è optoisolato il tuo dispositivo non sarà acceso. È possibile disabilitare il circuito PWM dopo l'avvio.

  3. Digitale. Un potenziometro digitale con controllo a pulsante. Ancora una volta, il circuito può essere alimentato indipendentemente dal tuo dispositivo.


1

Encoder a rotella? Questi vanno da 0 a 9, sono impilabili e hanno uscite binarie:

Encoder a rotella


2
È davvero più piccolo di un DIP-switch SMD?
pipe

Ahi no. È grande quanto la mia incapacità di leggere una semplice domanda ... Per favore, vota come ritieni opportuno. Ci scusiamo per aver perso tempo.
Pietro,

0

Puoi sempre mettere in evidenza I2C o un'altra interfaccia, forse USB, e consentire all'utente di collegare il suo telefono con un'app personalizzata che ti consente di configurare un indirizzo EEPROM interno.

Tuttavia, l'utilizzo di un'applicazione telefonica può essere abbastanza problematico. Dovresti supportare l'app e tenerti aggiornato con le ultime tecnologie e dovrai supportare molti venditori di telefoni.

Oppure potresti fornire un "dongle" personalizzato che si collega e ti consente di fare simili.

Ma dubito che ti farebbe risparmiare molto spazio.

Se si dispone di altri input utente, ad esempio due o tre pulsanti e una sorta di indicatore, è anche possibile, con l'input dell'utente appropriato sui pulsanti (tenere premuto il tempo ecc.), Impostare il dispositivo in una modalità di programmazione e configurarlo quel modo. La stessa cosa che vedi su elettrodomestici come termostati, addolcitori, computer, ecc.

Puoi fare molto con due o tre pulsanti e un LED.

Se deve essere configurato quando non è alimentato, sei praticamente bloccato con interruttori o ponticelli.


3
L'uso di un'applicazione del telefono può essere piuttosto problematico, poiché i telefoni sono piuttosto volatili. Un sistema incorporato può facilmente sopravvivere da 5 a 10 generazioni di telefoni e fornire supporto per l'intero periodo di tempo può essere problematico.
AndrejaKo

@AndrejaKo buon punto .. buon enuf per un'aggiunta :)
Trevor_G

3
Sfortunatamente l'applicazione richiede che l'utente possa modificare la configurazione senza che il circuito sia acceso, quindi perché ho bisogno che sia configurabile meccanicamente. Alcune idee interessanti però.
PTS,

2
@PTS allora sei praticamente bloccato con interruttori o ponticelli.
Trevor_G,
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.