Possibili cause dello sfarfallio LED a 7 segmenti


11

Sto lavorando con un fornitore all'estero per rinnovare un prodotto esistente. Stiamo cercando di contenere i costi.

Attualmente il prodotto è composto da:

  • 4 pulsanti grandi
  • 4 LED a 7 segmenti a doppia cifra. (ogni pulsante ha una doppia cifra sotto di esso)
  • 1 LCD (8 caratteri ... ogni display di caratteri è composto da una griglia 3x8 di punti LCD)
  • un oratore
  • un microcontrollore
  • Driver LCD

Nel rinnovamento, il fornitore desidera risolvere un problema con il prodotto corrente. Tutti e 4 i LED a doppia cifra presentano uno sfarfallio evidente.

Il venditore ci sta fornendo un preventivo che include l'utilizzo di un nuovo microcontrollore, una riprogettazione del circuito e la ripetizione dell'intero programma! (vogliamo solo scambiare file audio e correggere lo sfarfallio ... Non penso che la logica generale del prodotto debba cambiare affatto)

Non sono sicuro di come sia stato progettato il circuito precedente, ma potenzialmente il flickr potrebbe essere dovuto al fatto che la MCU non è abbastanza veloce da PWM quando si accendono i LED.

In generale, in base all'esperienza, quali potrebbero essere alcune altre cause di sfarfallio dei LED a 7 segmenti. Voglio solo capire il problema in modo da poter capire se il fornitore sta pianificando un lavoro aggiuntivo quando non è necessario.


2
Hail-Mary hack: raddoppia (o più) la frequenza dell'oscillatore MCU. Probabilmente non funzionerà, ma, ehi, perché no?
tyblu,

Risposte:


18

Lo sfarfallio è il risultato di un aggiornamento troppo lento. È necessario aggiornare ciascun segmento con un minimo di almeno 100 Hz. Tuttavia, ci sono alcuni trucchi che possono ridurre lo sfarfallio apparente senza effettivamente eseguire un aggiornamento più veloce. L'approccio ingenuo è quello di aggiornare le cifre in ordine. Ma, se li alternate un po ', l'intero numero sembrerà sfarfallare meno. Ad esempio, digita le cifre 1, 3 e 5, quindi torna indietro e digita le cifre 2, 4 e 6.

Senza conoscere il processore e vedere il codice sorgente, è impossibile dire se il fornitore stia cercando di metterti insieme o se il casino deve davvero essere riscritto. Tieni presente che il 99% degli ingegneri del firmware scrive un firmware orribile. Potrebbe esserci una costante codificata in tutto il luogo che fa ipotesi sulla frequenza di clock, la frequenza di aggiornamento dei LED, ecc. Con un firmware ben scritto, aumentare la frequenza di aggiornamento supponendo che il processore abbia già i cicli necessari dovrebbe essere facile. Con un firmware scritto male, potrebbe essere molto più difficile che abbandonare il caos e scriverlo nel modo giusto.

Come mai il designer originale non ha affrontato lo sfarfallio? Forse il firmware è così mal progettato che semplicemente aumentarlo non è stato possibile? Se lo sfarfallio è così evidente, allora perché il prodotto è mai stato creato così com'è? Questo da solo rende probabile che il designer originale abbia fatto un casino. Se avesse potuto risolverlo facilmente, probabilmente lo avrebbe fatto.

La cosa davvero divertente è che ora lo stai facendo di nuovo. Stai andando all'estero perché vuoi mantenere bassi i costi. Un buon design costa soldi veri, ma un cattivo design costa molto di più. Anche se sei stato morso da quello, apparentemente non l'hai ancora imparato. Con un buon design in primo luogo non saresti in questa posizione, e anche se lo fossi, dovrebbe essere facile cambiare. Non ci sono scuse per cambiare l'audio memorizzato non essendo un'operazione semplice.

Come fai a sapere se è una cattiva idea o non cambiare il microcontrollore e il circuito se non sai cosa sono? L'acquisto di ingegneria rigorosamente sul prezzo è il modo più costoso per andare.

Aggiunto in risposta ai commenti:

Non ricordo dove ho sentito parlare di cifre rinfrescanti in modo non sequenziale, ma l'ho provato e l'ho trovato utile. Penso che funzioni per lo stesso motivo per cui la TV interlacciata sembra tremolare alla frequenza di campo anziché alla frequenza dei fotogrammi. Per NTSC, l'intera immagine è stata ridisegnata a 30 Hz, ma lo sfarfallio apparente era di 60 Hz a causa dell'aggiornamento dell'interlacciamento. Non otterrai 2: 1 in questo modo intrecciando le cifre, ma aiuta.

No, 60 Hz non è abbastanza veloce, nemmeno vicino. 60 Hz è dove la maggior parte delle persone non vede più lo sfarfallio di un'onda quadra. Qualcuno che fissa direttamente un LED guidato il 50% delle volte a 60 Hz potrebbe non vedere lo sfarfallio, ma non è l'unico modo in cui le persone lo percepiscono. A meno che tu non abbia solo due cifre, i LED rimarranno accesi per una frazione minore del tempo, il che rende lo sfarfallio più evidente. Il centro della retina è il più lento a rispondere. Noterai uno sfarfallio maggiore alla periferia della tua visione. Tuttavia, la vera parte discutibile è quando muovi gli occhi. Lo sfarfallio è facilmente evidente a 60 Hz. Non è possibile rendere invisibile lo sfarfallio a causa di questi fenomeni, quindi il problema è renderlo meno fastidioso. 60 Hz è ancora abbastanza fastidioso per la maggior parte delle persone. Come ho detto, vuoi almeno qualche 100 Hz.

Per quanto riguarda la buona ingegneria, questo è un argomento a sé stante. Non c'è nulla di intrinsecamente sbagliato nell'andare all'estero. Le persone competenti vivono in vari luoghi. Il problema è innanzitutto riconoscere che un cattivo design costerà molto di più che assumere un ingegnere di prim'ordine per farlo proprio in primo luogo. In secondo luogo, è necessario rendersi conto che la ricerca e il controllo del talento ingegneristico richiedono un po 'di lavoro. Spendi 1000s di $, probabilmente 10s di 1000s di $. Trattalo come altre decisioni di acquisto di tale portata. Chiedi in giro, intervista, ottieni referenze e segui le indicazioni.

Finché sei serio e il lavoro è reale, direi che hai il diritto di aspettarti circa 2 ore dalla consultazione iniziale prima di assumere qualsiasi impegno. Tieni presente che va in entrambe le direzioni. Parte di questo tempo è per te valutare l'ingegnere, ma ovviamente anche l'ingegnere sta valutando te. Stanno cercando di decidere se questo lavoro è in linea con quello che vogliono fare, se stai per essere un dolore per il cliente di testa, ecc. Ad ogni modo, ci dovrebbe essere un sacco di tempo per entrare nei requisiti e parlare sulle impressioni iniziali di quale percorso persegue l'ingegnere verso la soluzione. Questo dovrebbe dirti molto su come pensano, su quanto implementano semplicemente ciò che hai detto invece di approfondire e cercare di risolvere il problema reale e assicurarsi che sia risolto, suggerendo soluzioni alternative, ecc.

Niente di tutto ciò afferma che l'ingegnere non possa essere supervisionato, ma rende difficile la logistica e una buona valutazione. Se hai un paio di raccomandazioni forti da persone di cui ti fidi, allora questo aiuta molto. Se la tua logica è solo che Bob a Boston vuole $ 130 / ora e sta valutando 4 settimane mentre Naresh a Bangalore vuole $ 35 / ora e può farlo in 2 settimane, sei diretto per guai seri.


5
+1 per tutti intorno. Inoltre, non ho mai saputo che aggiornarli in modo anomalo può ridurre lo sfarfallio, una buona curiosità. Una rapida ricerca su Google non ha in realtà restituito alcuna informazione a tale proposito. Hai un link / riferimento che spiega questo fenomeno? Sono curioso di sapere perché il cervello si comporterebbe in quel modo.
Kris Bahnsen,

refresh each segment at a few 100 Hz minimum 60 Hz (frequenza di aggiornamento di giochi, LCD ecc.) Non sarebbero sufficienti?
m.

Olin: Hai un buon punto su come ottenere una buona ingegneria. Che cosa suggeriresti? Ingegnere nazionale e quindi produrlo all'estero?
miglia il

@ m.Alin: vedi aggiunta alla risposta.
Olin Lathrop,

@kris: vedi aggiunta alla risposta.
Olin Lathrop,

1

Concordo con una frequenza di aggiornamento minima di 100Hz. Dovrebbe essere abbastanza facile da fare nel codice per qualsiasi uC. Altri sintomi di orologio basso f? come un tono basso nell'altoparlante?

Tutti i display Mux'd presuppongono un ciclo di funzionamento% fisso = tempo di accensione / ciclo, quindi la corrente media è costante indipendentemente dal tempo di aggiornamento. Quindi come comprendere il tempo di accensione e il tempo di ciclo quando si apportano modifiche.

Se sai come, è banale. In caso contrario, è davvero molto costoso.


0

Capisco che lo sfarfallio può essere visto in tutte le unità dello stesso modello di prodotto, quindi non è che qualcosa sia stato danneggiato. Direi anche che devi solo aumentare la frequenza di aggiornamento e, ovviamente, non cambiare l'intero programma.

Potrebbe essere il caso che l'MCU non sia abbastanza veloce per aggiornare quelle doppie cifre a un ritmo più elevato, ma ne dubito. Puoi dirci che cos'è MCU?

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.