Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

3
voti

La temperatura condizionata II parte...

Accetti ogni dettame... senza verificare... ti credi perspicace... ma sei soltanto un altro dei babbei e ti bei …..e ti bei. ( Sogno eretico - Caparezza )



Sviluppare un firmware o un qualsiasi progetto embedded necessita di particolari competenze e di una spiccata qualità da problem solver. Il micro mette a disposizione del programmatore una serie di opcode che permettono alcune funzionalità logiche di base. Questi opcode sono il suo linguaggio di programmazione. In realta ad essere precisi, il linguaggio di programmazione si chiama Assembly e gli opcode del microcontrollore sono ,nel particolare, il “dialetto” di programmazione del micro. Quello che in molti firmwaristi imberbi ha creato fallimentari stati di frustrazione è stato il tentativo di implementare algoritimi seguendo personali e spesso disordinati sviluppi logici. Le cose in effetti sono un po’ complicate, ma forse lo sarebbero molto meno se solo si capisse che il linguaggio Assembly, è del micro e non del firmwarista. Una parte del segreto sta nel cercare di avere una qualità che non saprei descrivere con una parola, direi che come concetto si avvicina all’empatia; bisognerebbe cercare di mettersi al posto (?!) di quel micretto e ragionare così come ragiona lui (?!?!?).

Le ntc sono termistori e sono un l’acronimo di Negative Temperature Coefficient. Questo vuol dire che la resistenza aumenta con il diminuire della temperatura. Le ntc si distinguono per il valore di resistenza a 25°, ad esempio ci sono ntc da 10K da 15 K o da 4K7 e cosi via.

Come abbiamo visto la lettura della misura analogica viene implementata leggendo i tempi di carica e scarica del condensatore. Il rapporto fra i due tempi è un valore proporzionale alla resistenza della ntc e quindi della temperatura. I condensatori ceramici hanno un grosso errore percentuale le misure devono essere per tanti motivi molto accurate. Il test del firmware sulla scheda opportunamente modificata poteva essere fatto sul banco attraverso l’emulatore della Microchip. Ma poi si doveva fare il test, vero, sulla scheda e in quel caso si doveva programmare dei micro OTP che erano i microcontrollori effettivamente utilizzati per la produzione. L’emulatore aveva una porta bruciata perchè in un progetto precedente era stata utilizzata come ingresso per la lettura del sync di rete e la scheda per la prova non era stata disaccoppiata.... Il pic ha dei robusti diodi di clamp in ingresso al micro, ma non abbastanza per la 220 volt e tanto meno per un rimbambito.
Squillava il telefono con la solita chiamata interna che arrivava dalla segreteria o da qualche altro ufficio dello stabilimento perchè i fax gli scanner e in generale tutto ciò che era alimentato con la corrente doveva essere gestito dalla progettazione...

Robert alzò la cornetta. Era Arnaux il responsabile della Ariete, di evidenti origini francesi che parlava quel tipico italiano erremosciato d'oltralpe. Non posso parlare con chi ha cadenze o particolarità nel linguaggio, dopo pochi minuti li aquisisco e inizio a parlare come lui.... con l’erre moscia con i francesci, con la elle con i cinesi...( e rischiando sempre di prendere dei pattoni... ). Arnaux gli disse che ormai i dubbi non c’erano più ( beato lui ), aveva visto con i propri occhi la partenza spontanea di un ciclo di raffredamento senza che la batteria esterna fosse minimamente ghiacciata. Robert si alzò e attraversò tutto il laboratorio come se fosse Il_miglio_verde.
C’era poco da dire, discutemmo, un poco, per riuscire a capire, pensando e ripensando a tutti i nostri test operativi in laboratorio ma non avevano mai visto una cosa di questo tipo nei due mesi precedenti. Un falso contatto ? L'ntc aprendosi avrebbe mandato in overflow la procedura di lettura, e avrebbe mandato la macchina in uno stato di errore funzionale. Un corto sulla ntc ? Dubitavo fortemente, una resistenza bassa vuol dire temperature altissime perché mai dovrebbe sghiacciare.... Un baco nella macchina stati ? Anche in questo caso era molto poco plausibile, il modulo era provato e collaudato in numerosi progetti. Nel pic lo stack è hardware così non possiamo avere degli overflow, non ci sono interrupt e nessuna interruzione del programma è implementabile. E se la macchina resettasse ?
E così via ipotizzando le varie possibilità che si potevano creare. I test che avevamo effettuato erano abbastanza consistenti gran parte li avevo fatti io ed ero convinto di aver verificato tutto il verificabile.
I tre prototipi installati in Ariete impostati in modalità pompa di calore, avevano dopo qualche decina di minuti attivato le fasi di raffreddamento senza che la batteria esterna fosse ghiacciata. I tempi ovviamente non erano ripetibili e cambiavano di volta in volta, i nostri due prototipi in laboratorio avevano attivata la funzione in pompa di calore da una settimana e non si era mai vista la fase di sghiacciamento della batteria esterna.
Erano le 17:30, spensi il monitor Trinitron della Sony e scrissi nel foglio sotto la tastiera “Ariete problema attivazione spontanea ciclo di sghiacciamento”. Cercavo un qualche appiglio in quelle parole come se potessero essere la chiave per inferire da dove provenisse il problema. Ma basta pensare è ora di tornare a casa...

Risolvere i problemi è quella caratteristica che accomuna i professionisti in genere ed è quella tendenza che gli americani chiamano “problem solver”. Questa caratteristica attraversa le professioni ed è particolarmente ricercata negli ambienti manageriali. Con molta probabilità il mio macellaio è più “problem solver” del sottoscritto e con molta probabilità potrebbe continuare ad essere migliore di tanti general manager all’interno dei gruppi industriali nazionali ed extranazionali.
Il re Salomone è fra i personaggi storici che si distinsero nella qualità della saggezza e della perspicacia, fra i racconti biblici celebre è la risoluzione del figlio conteso dalle due mamme che indubbiamente gli ha permesso di consolidare la sua già nota fama di problem solver ... ma lui era saggio per divina provvidenza.

Lavorare in Assembly significa lavorare con un micro nudo e bisogna implementare tutto, anche cose semplici come una somma o una sottrazione. Come si può notare l'operazione di sottrazione è implementata usando sempre quella della somma ma complementando il dato da sottrarre.

;----------------------------------------------------------------------------------------------------------------------
; H_SUB        : DIFFERENZA in HIGH PRECISION
; INPUT     : RB3_(1,2,3,4)-RB0_(0,1,2,3)
; OUTPUT    : RB3_(1,2,3,4)in 2'S compl.
; Comment    : Accetta in input solo numeri <EFFFFFFF!!!!!!
;----------------------------------------------------------------------------------------------------------------------
; complemento a 2 il dato e lo passo in ingresso ad H_Add.
P_H_sub
         comf        RB0_0,Same    ;complemento il dato da sottrarre
         comf        RB0_1,Same
         comf        RB0_2,Same
         comf        RB0_3,Same
         incf        RB0_0,Same    ;aggiungo uno
         skpnz
         incf        RB0_1,Same    ; eventuale riporto
         skpnz
         incf        RB0_2,Same    ; eventuale riporto
         skpnz
         incf        RB0_3,Same    ; eventuale riporto

;----------------------------------------------------------------------------------------------------------------------
; H_add        : somma in HIGH PRECISION
; INPUT     : RB3_(1,2,3,4) + RB0_(0,1,2,3)
; OUTPUT    : RB3_(1,2,3,4) in 2'S compl.
;----------------------------------------------------------------------------------------------------------------------
P_H_add  
; Low nibble di fsr utilizzato come flags che contengono i vari riporti.
       movlw        0f0h        ; maschera
       andwf        Fsr,same    ; resetto flag
       movfw        RB0_0
       addwf        RB3_1,same    ; sommo il primo byte
       clrw
       skpnc
       movlw        01h
       addwf        RB0_1,w    ; sommo il primo riporto
       skpnc
       bsf          Fsr,0        ; salvo il primo riporto
       addwf        RB3_2,same    ; sommo il secondo byte
       skpnc
       bsf          Fsr,0        ; se ho il riporto me lo salvo
       clrw
       btfsc        Fsr,0        ; test riporto precedente
       movlw        1
       addwf        RB0_2,w        ; somm+o il riporto
       skpnc
       bsf          Fsr,1        ; salvo il secondo riporto
       addwf        RB3_3,same    ; sommo terzo byte
       skpnc
       bsf          Fsr,1        ; salvo riporto
       movfw        RB0_3
       addwf        RB3_4,same    ; sommo quarto byte
       btfsc        Fsr,1        ; test sul riporto precedente
       incf         RB3_4,same
       retlw        0h


L’autunno era inoltrato, faceva fastidiosamente freddo fra quei paesi di media montagna. La nebbia saliva dal paese sottostante per cercare il maggior fresco dell’altura. Le strade curvilinee attraversavano piccoli agglomerati di case grigie, con finestre illuminate, di cucine movimentate dalla colazione nei piccoli tavoli con vicino piccole stufette elettriche accese per stemperare l’aria. Agli incroci gente assonnata che attraversava il mondo per andare a lavorare o per affari propri, che magari ti guarda, fumandosi filtri di sigarette finite 10 minuti prima, in completo stato catatonico o che invece non ti guarda per nulla intenta a rispondere al cellulare a genitori figli zii o cugini. Kirkegaard passava silenzioso su una Wolkswagen Polo anni 90 con gli U2 sempre a palla... distratto e solitario come ogni buon Nerd che si rispetti.

Il giorno dopo, entrai in laboratorio e raggiunsi la scrivania. Sull’attacapanni c’era la mia “cappa”, una specie di soprabito che il grande capo, desiderava fortemente far indossare a tutti. La misi velocemente e mi sedetti accendendo il pc, messo sotto la scrivania per risparmiare spazio. A fianco avevo la scheda prototipo sopra un tappetino antistatico di protezione. La sonda di batteria e quella dell’aria ambiente interna erano messe di lato e distanziate con meticolosa cura, l’oscilloscopio carrellato era pronto all’uso ma spento.

Di lato alla mia postazione era appena arrivata una macchina per il test della crimpatura cablaggi. Era una lunga scrivania con tanto di micro fresa, bagno acido e alla fine microscopio con interfaccia digitale su pc e un software di rilevamento ottico per la misura della superficie di contatto tra il filo conduttore e l'amp... Il cablaggio era stato il core business aziendale per molto tempo ma ora i margini si stavano sempre più assottigliando.
Osservavo quella maledetta sonda di batteria arrotolata come una serpe velenosa sulla scrivania, il corpo della NTC era affogato in una resina all’interno di un cappuccio di rame. In produzione avevano una macchina artigianale che attraverso una decina di ugelli riempivano di resina array di cappucci in rame con dentro la ntc e tutta l'operazione veniva effettuata all’interno di una camera depressurizzata.

Quel Martedì un po’ alla disperata pianificammo di effettuare una trasferta per raggiungere l’azienda cliente. E così il Giovedì stesso partimmo all’alba percorrendo velocemente i trecento chilometri che ci separavano dal cliente, attraversando le pianure emiliane su monotone autostrade per raggiungere le grigie zone industriali lombarde. Passammo il tempo raccontando stupidaggiani, aneddoti, storie passate, in quella Audi A8 diplomatica da 330 cavalli con aria condizionata, e l’avveniristico GPS integrato....

2

Commenti e note

Inserisci un commento

di ,

Vedi, schumy91, quello che hai letto non ha proprio lo scopo di spiegare i concetti della programmazione o della realizzazione di un hardware.
E' un racconto che cerca di trasferire al lettore sensazioni, riflessioni, atmosfere di chi svolge professionalmente un determinato lavoro: in questo caso progettista di sistemi embedded.
La comprensione effettiva del contenuto è diversa a seconda del lettore.
Chi fa lo stesso tipo di lavoro, o lavori simili, si sintonizza bene con terminologia tecnica, problemi e soluzioni, a vari livelli a seconda del grado di vicinanza della sua attività con quella dell'autore.
Chi invece sta iniziando, o sta pensando a quel tipo di lavoro, o svolge lavori diversi, può intuirne le problematiche, avere un'idea delle persone, degli ambienti che ne sono la necessaria cornice, ma, fondamentalmente, vedere o sentire come il lavoro diventi parte integrante della vita del protagonista, come lo è, o diventerà, il suo. E magari avvertire che, pur nella diversità, in tutti lavori c'è uno stesso filo che unisce le persone che interagiscono attraverso le cose.
Quindi se anche non si è compreso appieno il progetto descritto, si può ad esempio, chissà, come Kirkegaard aver attraversato silenziosi il traffico osservando, da una Polo anni' 90 con gli U2 a palla, gli altri, sulle loro automobili, attraversati come lui da pensieri, forse molto diversi nelle specifiche, ma simili ai suoi per la composizione del quadro disegnato da quel filo che traccia la vita di ognuno di noi.
E magari cogliere nel Nerd Kirkegaard, il bisogno di una confessione che stemperi una solitudine indotta da opcode che, assorbendo forse troppa parte della sua vita, si rincorrono nella sua mente alla ricerca di un inesistente programma perfetto, confuso a volte con il mondo reale.

Rispondi

di ,

Peccato che queste cose sono un pò difficili da capire per me :(

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.