Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Benvenuti al blog elettrico di Kirkegaard. Visita il suo
Foto Utente

L'enigma dell'ora esatta

Anche i sistemisti embedded nel loro piccolo si sbagliano


Gli ultimi articoli di Kirkegaard

pubblicato 10 anni fa, 250 visualizzazioni

Se nella vita pensi che sbagliando si impara, ecco ….allora il paracadutista non fa per te. ( anonimo )

La premessa sulle macchine combinatorie scritta nel capitolo precedente era necessaria per cercare di spiegare il metodo generale per la risoluzione dei problemi nei sistemi embedded. In tutti questi sistemi elettronici si crea un flusso di dati che nasce dagli ingressi e finisce con le uscite. All’interno di esso la logica sviluppata dal firmwarista interviene macinando triturando, scomponendo e aggregando quelli che sono gli elementi base di questo flusso e che sono i dati. In realtà esistono due ulteriori moduli virtuali nel nostro sistema e che sono la parte condizionatore dei segnali in ingresso e la parte degli attuatori delle uscite. Questi moduli raggruppano tutto quell’insieme di circuteria elettronica che interfaccia il microcontrollore con il mondo esterno. Gli errori si riveleranno solo nelle uscite ( ovviamente ) alcuni saranno bloccanti altri saranno tollerati molto dipenderà dal grado di aspettazione che abbiamo del sistema.

[...]

pubblicato 10 anni fa, 309 visualizzazioni

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 (?!?!?).

[...]

pubblicato 10 anni fa, 352 visualizzazioni

"Ho sentito dire che questa mattina un rinoceronte è fuggito lungo il missisipi in un pallone rosa. Che ne pensi ? Il computer potrebbe rispondere in modo misurato. " Mi sembra piuttosto ridicolo ". Fin qui tutto bene .

- La mente nuova dell'imperatore - Roger Penrose -

Il firmware, in particolare, ma tutti i software in generale, possono essere considerati come delle gigantesche macchine combinatorie. Molti, ritornando indietro nel tempo, ricordano quelle vecchie lezioni universitarie quando questo termine veniva utilizzato nelle lezioni di architettura dei calcolatori per identificare oscure reti logiche. Una macchina combinatoria a seconda dello stato di certi ingressi predispone le uscite seguendo percorsi di linee logiche indipendenti nel tempo. Ma questa definizione è solo in alcuni casi associabile ad un firmware, nella maggior parte dei casi nello sviluppo di sistemi embedded medio complessi non è proprio applicabile. Così, forse,sempre prendendo spunto da quella teoria dei calcolatori, i sistemi embedded e i software si possono considerare come macchine combinatorie ma di tipo sequenziale e cioè complesse reti logiche dipendenti nello stato dal Tempo. ( tipo.... la Macchina di Turing per intenderci ).

[...]

pubblicato 10 anni fa, 224 visualizzazioni

"Embedded in the mud, glistening green and gold and black, was a butterfly, very beautiful and very dead. “Not a little thing like that! Not a butterfly!” cried Eckels. "

A Sound of Thunder by Ray Bradbury

Le temporizzazioni interne per un controllo motore sono vitali, di solito avvengono attraverso gli efficaci interrupt sul timer, ma visto che ne ero sprovvisto implementai un uKernel per gestire delle pseudo task cooperative ( che a me piace dire di tipo Round Robin). Questo tipo di ausilio mi ha permesso di avere delle sezioni di codice che venivano richiamate con tempi predefiniti e che per esempio mi permettevano di gestire la macchina a stati per eseguire le rampe di velocità e nello stesso tempo di tenere sotto controllo il segnale di tachimetrica che doveva essere letta in polling dal core del uKernel.

[...]

pubblicato 10 anni fa, 336 visualizzazioni

Cara Roberta Sparrow, ho letto a fondo il suo libro e ci sono molte cose che vorrei chiederle. A volte ho paura di quello che lei potrebbe dirmi. E a volte ho paura che lei mi dica che non è tutto frutto della fantasia. Posso solo sperare che la risposta mi arrivi nel sonno. E spero anche, quando il mondo finirà, di poter tirare un sospiro di sollievo, perché ci sarà tanto da contemplare avidamente.

[Lettera di Donnie Darko a Roberta Sparrow]

Cosa significa lavorare con un micro senza interrupt? Se devo essere sincero all’inizio ero pure contento perché gli interrput, le interruzioni, sono l’elemento di disturbo nel flusso del programma. Il firmware lo vedevo ancora come se fosse un programma basic monolitico e gli interrupt erano la fastidiosa eccezione. Ma il pic aveva altre sgradite sorprese che lo distinguevano dagli altri micro. La struttura interna è di tipo Harvard modificato e a differenza della architettura Von Neumann questo micro ha i bus della memoria dati e quello della memoria programma separati.

[...]

pubblicato 10 anni fa, 185 visualizzazioni

Le domande di un folle sono più numerose delle risposte di 1000 savi ( anonimo )

I sistemi di controllo PID come abbiamo già detto sono utilizzati in prevalenza nei processi industriali. Il tipo di controllo dove il pid viene utilizzato maggiormente è quello di temperatura. Questo tipo di sistema è però fra i più “semplici” ( le virgolette sono d’obbligo) da implementare. Questa facilità è dovuta sostanzialmente dal fatto che le derivate di un controllo in temperatura sono poco ripide e in genere in questi casi il parametro derivativo risulta quindi inutile, rendendo possibile la sua omissione e facendo diventare questi controlli da complessi PID a “semplici” PI.

Uno dei primi progetti firmware che ho sviluppato è stato il più difficile mai affrontato. In questo caso il modulo doveva controllare in velocità un motore asincrono monofase. Che detta così sembra una cosa cosmica, ma per molto tempo fra gli amici ero quello che faceva girare i cestelli delle lavatrici....

[...]

pubblicato 10 anni fa, 315 visualizzazioni

Questa storia è stata molto importante nel mio percorso lavorativo. Proprio in quel periodo iniziai a capire che l’approccio avuto sino a quel momento verso la risoluzione dei problemi non era quello giusto. Ritenevo che i sistemi embedded fossero una sorta di complessi layer sovrapposti che partivano dall’hardware per arrivare alle astrazioni a stati grafici come quelli proposti dalla IAR con il VisualSTATE. Pensavo che ognuno di questi layer necessitasse di competenze particolareggiate da affrontare con application note e studi specifici. Tentavo così infatti di racchiudere tutto il mio lavoro all’interno di quelle pagine di editor della Norton, spendendo molto tempo nello sviluppo di multipli livelli logici che mi potessero svincolare da tutto il resto, non solo dall’hardware, creando appunto moduli driver il più efficenti possibili ma anche dalle tipiche estenuanti richieste del cliente.

[...]

pubblicato 10 anni fa, 290 visualizzazioni

Per riacquistare la giovinezza basta solo ripeterne le follie. Oscar Wilde

La scheda era abbastanza semplice. Monoprocessore, Microchip, PIC 16C65 con risuonatore ceramico, montato su una delle due schede pcb monofaccia ( costano poco... ). Il software doveva prevedere un driver per un motore passo passo ( per il deflettore), uno per il controllo velocità di una ventola con triac a taglio di fase, una interfaccia seriale IR di comunicazione con un telecomando, la lettura di una tachimetrica prevista con frequenze sino a 3/4 kHz, la lettura di un paio di sonde ntc e infine il consueto zero cross della rete. Visto che c'eravamo abbiamo pensato bene di implementare anche un piccolo sistema operativo per gestire meglio tutti i driver, considerandoli come delle task separate e una ulteriore interfaccia seriale di diagnostica. Tutto il progetto era rigorosamente sviluppato direttamente in assembly perché questo tipo di microcontrollore ha caratteristiche poco digeribili per un compilatore C. Considerate anche che stiamo parlando di un vecchio 16C65 e che a quel tempo era un ricco microcontrollore con 4K di ROM e ben 192 byte di RAM tutte impaginate, come potete ben capire ogni byte risparmiato era un successo progettuale.... Abbiamo terminato il prototipo alla fine dell'inverno e prodotto la prima preserie. Numerosi i test funzionali e le verifiche hardware implementate. La commessa doveva garantire produzioni da 10000 pz l’anno (uno scherzo in confronto alle produzioni richieste dai lavatriciari ). Questo prodotto, era uno delle decine di progetti sviluppati in una prolifica azienda nel settore dell’elettrodomestico in generale, nel particolare, questa scheda era prevista invece per il controllo di un condizionatore, completamente progettato e sviluppato in Italia. Una vera scommessa industriale a quel tempo.

[...]

pubblicato 10 anni fa, 102 visualizzazioni

Il gioco degli scacchi è un insieme di mosse sbagliate

Andy Soltis

La fase di test dei componenti, utilizzati nel progetto è particolarmente delicata perchè devono essere comunque verificate tutte le funzionalità che i datasheet declamano e molte volte ostentano. Ovviamente in un progetto nuovo la parte proporzionalmente più delicata è sempre quella hardware. Molti project manager hanno creato veri disastri ai "firmwareisti" perchè ad esempio la scheda era stata sviluppata con un micro che risolveva brillantemente le problematiche hardware primarie ( tipo i bassi counsumi di esercizio ), per poi accorgersi che magari quello stesso povero micretto avrebbe dovuto anche sostenere complessi protocolli di comunicazione con ad esempio flussi di dati da centinaia di kilobyte in multiframe con gestione multipla dei protocolli su diverse linee seriali; ecco questo tipo di prestazioni non possono essere sostenute con solo 2K di memoria interna, magari confidando in una ricca ferroram seriale esterna da 64 kb. Sono tipiche problematiche della progettazione embedded ed è piuttosto comune finire invischiati in qualche piccolo incubo. Queste cose evidenziano per altro una certa miopia progettuale generalizzata che si amplifica proporzionalmente a seconda della smisurata considerazione che abbiamo di noi stessi. Sono tipiche le frasi "cosa ci vuole... tanto è scritto in c... se va bene qui va bene la... se resetta meglio cosi riparte tutte le volte... ". Il vero segreto di questo mestiere è in primo luogo l'essere in grado di ridurre i danni il più possibile poi alla fine è come nel gioco degli scacchi... vince chi sbaglia di meno.

[...]

pubblicato 10 anni fa, 117 visualizzazioni

Mi dispiace, non potro essere più me stesso dopo aver visto il grafico di Cipolla ( anonimo al bar )

Sono in ufficio da solo. Ho il pc acceso con aperto l’editor della iar, ma non ricordo quale modulo del progetto era aperto; ma non stavo guardando il monitor bensì quel foglio anzi “il foglio” che tengo sempre sulla scrivania. Lo uso per scrivere note che sono il più delle volte senza senso, ma spesso sono disegni ghirigori vari. Ripensavo alla seconda trasferta che feci. Flavio, dopo qualche ulteriore prova, mi chiamò, e per la prima volta da quando lo conoscevo, mi chiamò piuttosto agitato. La macchina era entrata nello stato caotico. Devo ammettere che mai come in quel momento, pensai di avere qualche chance in più. Ma il peggio doveva avvenire, quando mi accorsi cosa causava quel disastro nel pid. Inserii l’interfaccia USB, scaricai la configurazione dei parametri PID e non potei fare altro che riconoscere che erano stati aggiornati con valori assurdi.

[...]

Chi sono

Kirkegaard - profilo

Nome: Kirkegaard Winkler

Reputation: 7.415 1 7 10

Bio: Sistemista embedded esperto di programmazione su microcontrollori. Mi piace la musica, la fotografia, la cucina, lo sport, leggere la bibbia, suonare, cantare, viaggiare, le automobili, i microcontrollori ... ovviamente in ordine sparso e non per importanza...

Web: http://www.lulu.com/spotlight/Kirkegaard

I miei ultimi post dal forum

  • Presa elettrica Smart

    Si si SerTom :D ... guarda se ti piace così: questi oggettini radio fanno tutti parte dell'IOT e la domotica che li sfrutta ne è un sottoinsieme.... 11:23

  • Presa elettrica Smart

    SerTom :lol: Si appunto, c'è molta confusione la percezione è la solita i prodotti in giro sono tanti incompatibili non adeguati, domotica non... 11:23

  • Presa elettrica Smart

    Ciao a tutti... non so perché ma è un periodo che sto pensando ad una presa elettrica smart. C'è qualcuno che potrebbe interessare ? 11:23

  • Problema PIC16F876A e LM35

    Se utilizzi l'ingresso analogico AN3 la configurazione dei registri non è corretta. Da datasheet del micro leggo che I primi 4 bit del registro... 19:32

  • Estrazione programma da PIC12C672

    Si, avete ragione, ma è pure vero che programmini semplici e aperti a tutti sono utili per apprendere e addirittura migliorare le loro funzioni.... 11:26

  • Timer 1 e 3 indipendenti ?

    solo per curiosità qual'è il registro con il bit che associa il pin del micro come ingresso al timer ? 21:29

  • Compilatore per ARM: Keil o IAR o Atollic o cosa?

    ciao... non ho esperienze dirette... conosco soggetti che lavorano con gli Arm della Texas e altri con gli Arm della Nxp.. in entrambi i casi... 13:42

  • Sondaggio: Microcontrollori

    .... poi ci sarebbe anche un altro storico micro il COP della National. Lo z80 é un mcroprocessore che si é evoluto nel microcontrollore Rabbit ma... 19:52

  • Sondaggio: Microcontrollori

    Ci sarebbe anche la Ubicom... ( ex scenix che faceva dei Pic al peperonicno... ) poi la Nec con la serie d78, per rimanere nel campo 8 bit, anche... 19:52

  • Sondaggio: Microcontrollori

    Be... Be sicuramente c'é ad esempio la NXP (ex philips... ) ..C'e però una casa che produce un micro veramente ineressante che é la Cypress e il... 19:52

Vai al Forum


Cerca nel blog di Kirkegaard