giovedì 16 giugno 2022

A.S. 2021/22 - Esercitazioni di laboratorio per la materia GESTIONE E PROGETTO E ORGANIZZAZIONE D'IMPRESA

A.S. 2021/22 - Esercitazioni di laboratorio per la materia SISTEMI E RETI

Sistemi e Reti/1
A - Le architetture dei sistemi di elaborazione
B - Virtualizzazione e installazione di sistemi operativi
ES01 - Installazione e configurazione di Raspbian su Raspberry PI
ES02 - Accesso remoto alla Raspberry PI
ES03 - WSL, Shell Ubuntu su Windows 10
ES04 - Installazione di Virtualbox e Debian
C - Il sistema operativo
D - Corso Linux Essential
ES01 - Luci smart auto

A.S. 2021/22 - Esercitazioni di laboratorio per la materia TELECOMUNICAZIONI


Telecomunicazioni/1
A - Componenti passivi
ES01 - La breadboard per la prototipazione di circuiti
ES02 - Classificazione delle resistenze e codice colori
ES03 - Circuiti con interruttori, pulsanti e relè
ES04 - Diodi Led
ES05 - Display a 7 segmenti

A.S. 2021/22 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE

TPSIT/1
A - Elettronica digitale
ES01 - Simulazione di circuiti digitali con Tinkercad
ES02 - Analisi del funzionamento delle porte logiche elementari
ES03 - Circuito digitale da funzione logica
ES04 - Sintesi di circuiti combinatori (Progetto di un sistema di allarme)
ES05 - Le porte logiche universali - Circuito per la rilevazione dei numeri primi
ES06 - Collaudo di un circuito digitale combinatorio con Arduino
B - VHDL
ES01 - EDA Playground e Progettazione in VHDL

lunedì 14 settembre 2020

A.S. 2020/21 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/1

ES01 - Simulazione di circuiti digitali con Tinkercad e il funzionamento della Breadboard
ES02 - Progetto di un sistema di allarme 
ES03 - Circuito per la rilevazione dei numeri primi
ES04 - EDA Playground e Progettazione in VHDL
ES05 - Rilevazione dei numeri primi in VHDL
ES06 - Realizzazione di un Sommatore a 8bit in Vhdl
ES07 - Realizzazione di un Sottratore a 8bit in Vhdl
ES08 - Realizzazione di un Comparatore a 8 bit in Vhdl
ES09 - Realizzazione di un'ALU in Vhdl
ES10 - I FlipFlop in Vhdl
ES11 - Contatori Asincroni in VHDL su EDA Playground
ES12 - Installazione dell’applicazione Vivado
ES13 - Progettazione VHDL con Vivado
ES14 - Display7Seg con Vivado

A.S. 2020/21 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/2

ES01 - AutomaParcheggio 
ES02 - Installazione e configurazione di Keil uVision 5
ES03 - Debug di semplici programmi Assembler con Keil
ES04 - Istruzioni di spostamento dati in Assembler con il Cortex-M4
ES05 - I diagrammi di flusso in Assembler con il Cortex-M4
ES06 - Le direttive dell’assemblatore e Algoritmi su vettori 

A.S. 2020/21 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/1

ES01 - Installazione e configurazione Raspbian su Raspberry PI
ES02 - Accesso remoto alla Raspberry PI
ES03 - Introduzione a Linux
ES04 - Command Line Skills
ES05 - Script saluti.sh 

A.S. 2020/21 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/2

ES01 - Tools coding C e struttura del codice
ES02 - Array
ES03 - Puntatori
ES04 - Stringhe
ES05 - I Processi nel SO UNIX
ES06 - I Thread nel SO UNIX
ES07 - Introduzione a Packet Tracer
ES08 - Sincronizzazione tra Thread POSIX

A.S. 2020/21 - Esercitazioni di laboratorio per la materia TELECOMUNICAZIONI/1

ES01 - Classificazione delle resistenze e codice colori 
ES02 - Il multimetro e la misura di resistenze
ES03 - Simulazione di circuiti con Micro-Cap
ES04 - Simulazione di circuiti elettrici con Microcap, Tinkercad e Breadboard
ES05 - Esercizi su reti elettriche in regime stazionario
ES06 - Esercizi su reti elettriche in regime stazionario con Microcap
ES07 - Verifica sperimentale del principio di sovrapposizione degli effetti
ES08 - Porte logiche fondamentali e circuiti per gli input e output digitali
ES09 - Circuito digitale da funzione logica
ES10 - Progetto di un sistema di allarme
ES11 - Collaudo di un circuito digitale combinatorio con Arduino
ES12 - Progetto di un ALU
ES13 - Il multimetro
ES14 - Esercizi su reti elettriche in regime stazionario con Breadboard
ES15 - Debounce pulsanti con Flip Flop SR
ES16 - Progetto di contatori asincroni
ES17 - Rilievo carica e scarica del condensatore con Arduino e senza strumentazione
ES18 - Il Display a 7 segmenti
ES19 - Carica e scarica del condensatore con Generatore di funzione e Oscilloscopio 
ES20 - Capacimetro con Arduino

A.S. 2020/21 - Esercitazioni di laboratorio per la materia TELECOMUNICAZIONI/2

ES01 - L'oscilloscopio 
ES02 - Il generatore di funzioni
ES03 - Gli alimentatori
ES04 - Comandare un servomotore con il generatore di funzioni
ES05 - Onda impulsiva con Arduino per comandare un servomotore
ES06 - Collegamento e gestione di pulsanti con i microcontrollori
ES07 - Rilievo della caratteristica del diodo
ES08 - Analisi di circuiti con diodi
ES09 - Il Bjt in funzionamento On-Off
ES10 - L'Amplificatore Operazionale in configurazione invertente

venerdì 1 maggio 2020

Version control con Git

Git è un sistema software di controllo di versione distribuito, creato da Linus Torvalds nel 2005 (wikipedia).

Un repository (in italiano deposito o ripostiglio) è un ambiente di un sistema informativo (wikipedia)

lunedì 26 febbraio 2018

A.S. 2018/19 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/2


ES01-LedsOn

-------------------------------------------------------------------------------------------------------------
LAB05 - Semaforo
Simulazione del funzionamento di un semaforo intelligente utilizzando led e pulsanti


-------------------------------------------------------------------------------------------------------------
LAB04 - Gioco Pong
Gioco di velocità utilizzando led e pulsanti collegati al microcontrollore

sabato 30 settembre 2017

A.S. 2017/18 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/1

ESERCITAZIONE 07 - Interruttore remoto con RPI (09/04/18)
Controllare da remoto un impianto di irrigazione comandato da RaspberryPI

OBIETTIVI / ARGOMENTI TRATTATI
- il comando wget
- il comando sleep
- RPi GPIO


A.S. 2017/18 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/1

ESERCITAZIONE 04: Display7seg (01.02.18)
Decoder da esadecimale a 7 segmenti

PROCEDIMENTO / SPECIFICHE INIZIALI
- consegnare il lavoro in formato 7zip indicando classe, cognome e nome progetto, es. 3I_Rossi_ES04-Display7seg
- Nel file zip inserire la relazione anche in formato pdf + la cartella src di vivado + il file bitstream .bit

A.S. 2017/18 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/2

ESERCITAZIONE 11 (10.04.18) Shell interattiva
Esecuzione di comandi multipli con le chiamate Exec e Scanf

venerdì 1 settembre 2017

I Diagrammi di Flusso [slide]

Permettono di rappresentare in modo efficace un algoritmo tramite dei modelli grafici che associano alle istruzioni del programma dei simboli grafici

Attenzione! I programmatori inesperti tendono a introdurre numerosi salti privi di regole (“spaghetti programming”)

Convenzioni per la scrittura di codice C nei sistemi embedded


Convenzioni di scrittura del codice per lo sviluppo di applicazioni web

- le pagine html statiche o generate da php, devono essere sintatticamente corrette, rispettano quindi le regole dei documenti xml
- definire uno o più fogli di stile esterni da usare per tutte le pagine dei siti realizzati
- In ogni pagina prevedere una parte che sovrascriva gli stili generali o definisca degli stili particolari
- In ogni pagina php deve essere presente una intestazione all'inizio della pagina
autore, versione, data, descrizione
- allegare una relazione tecnica
- descrivere sotto forma di commento il significato delle nuove istruzioni usate o di tecnologie adottate
- Nei blocchi if-else non trascurate alcuna valore/stato possibile

---------------
Versione 1.0 del 16/12/2014

Convenzioni per la progettazioni VHDL

I progetti vanno nella cartella:
D:\Lavori\<anno scolastico>\<classe>\<cognome>\<nome progetto>

Convenzioni per la scrittura di codice Bash nei sistemi embedded

Prima di imparare a scrivere programmi perfettamente funzionanti e performanti dovete imparare a scrivere codice chiaro e facilmente comprensibile, per voi e per le persone appartenenti al vostro gruppo di lavoro.
Diventa quindi importante rispettare, durante la scrittura del codice, stili e regole condivise.


La Relazione Tecnica

La relazione tecnica o datasheet è un documento rivolto a tecnici specializzati, i quali leggendo il documento saranno in grado di capire, modificare e replicare il progetto descritto.

La relazione va redatta parallelamente allo sviluppo del progetto.

Convenzioni per la scrittura di codice in assembler

1) Leggibilità del codice
  1a) Utilizzo attento dei nomi
  1b) Indentazione del codice
  1c) Documentazione del codice
2) Layering
3) Evitare l'utilizzo dei "magic numbers" all'interno del codice

http://users.ece.cmu.edu/~eno/coding/CCodingStandard.html
http://users.ece.utexas.edu/~valvano/EE345L/Labs/Fall2011/style.pdf

martedì 27 settembre 2016

A.S. 2016/17 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/3

------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 10_1 - Comunicazione seriale Bidirezionale tra schede Launchpad e/o PC
Trasmissione e ricezione di semplici comandi tra scheda e pc

A.S. 2016/17 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/2

ESERCITAZIONE 7_1 - Ricerca Max (14/12/16)
Ricercare il valore massimo all'interno di un vettore di byte caricato in rom

giovedì 9 giugno 2016

mercoledì 1 giugno 2016

Disegno di schemi elettrici e realizzazione di PCB con il software Eagle

PROGETTAZIONE SENZA L'AUSILIO DEL COMPUTER 
- Disegno su foglio bianco A4 con cartiglio
- Lo schema elettrico
    a. schema logico -> comprensione del circuito
    b. montaggio
    c. collaudo
- disegno tutto con  matita
- Simboli:
   - piedinatura all'esterno del simbolo
   - nome del segnale all'interno del componente
   - la dimensione dei componenti deve essere sempre la stessa (per le porte logiche 1 x 1,5cm)
- Prevedere la distinta componenti
- ogni componente deve avere un nome.
- indicare tutti i punti di giunzione delle net (junction)
- Dare il nome alle net più significative del circuito
- Tutte le scritte sono a stampatello e della stessa dimensione
- Se questo non compromette la leggibilità del disegno possiamo aggiungere
allo schema altre informazioni (ad esempio tabelle di verità)

UTILIZZO DEL SOFTWARE Eagle

IL NUOVO PROGETTO:
  • Creare una cartella per ogni nuovo progetto
  • Salvare lo schematic nella cartella creata e dando un nomi significativo al file (Save As..)
  • Fare dei salvataggi intermedi in modo da avere dei file di backup nella cartella del progetto.
LO SCHEMA:
  • tramite il pulsante add possiamo aggiungere i componenti allo schema: cartiglio (frames->dina4_l), resistenze (rcl->e_eu-> 0309)
  • Usare il comando Invoke per inserire nello schema altre parti di un integrato
  • Organizzare il layout in modo da migliorare la leggibilità dello schema, eventualmente rimuovere alcuni collegamenti fisici e collegare usando e visualizzando il nome della net.
  • Per i collegamenti elettrici usare il comando wire
  • Per migliorare il layout usiamo i comandi, group, split
  • Usare le giunzioni per unire net diverse 
  • Usare i comandi “Name e “Label” per assegnare e visualizzare i nomi delle net (collegamenti elettrici)
  • Ogni componente deve avere un valore
  • evidenziare i blocchi più significativi del circuito con una line tratteggiata
  • Se volete aggiungere dell'altro testo usate il layer info e il pulsante text
    IMPORTANTE: ripristinate il layer 91 quando completate l'inserimento del testo
  • evitiamo i nodi sui reofori dei componenti
CONTROLLO FINALE:
  • Usare il comando ERC (Eletrical Rule Check) per verificare lo schema disegnato
MODIFICA DELLE OPZIONI:
Configurazione del pannello di controllo:
- è possibile aggiungere delle cartelle di lavoro: options->directories-> aggiungere il percorso completo separato da un ; es. "$EAGLEDIR\lbr;C:\Users\mario.rossi"


REALIZZAZIONE DEL PCB
Regole e consigli per realizzare dei buoni PCB con il software "Eagle":
  • Realizzare in modo accurato lo schema elettrico e dopo averlo controllato (ERC) creare il PCB
  • Per non rischiare l'inconsistenza tra schematic e PCB lasciare sempre aperti entrambi i file. Altrimenti eliminare il file PCB e rifarlo da capo.
  • Impostare e salvare le griglie: Mil_100x1_50, Mil_50x2_25, Mil_25x4_10, Metric_10x1_1, Metric_5x2_1, Metric_1x5_0.5
  • Le griglie in millimetri vengono usate solo per le modifiche alla parte meccanica del progetto
  • Le griglie in pollici (mils) vengono usate solo per piazzare i componenti e lo sbroglio del circuito.
  • Prima imposiamo la griglia desiderata -> tasto dx su griglia -> new -> dare nome
  • Impostata la griglia a 100mil. Posizionare i componenti (Layout).
    • Curare funzionalità
    • Curare estetica
    • Raggruppare i componenti, dove possibile, in base allo schema elettrico.
  • Cambiare il colore del layer Unruted in rosso.
  • Durante il Layout, premere spesso il pulsante Ratsnest. Questo ci permette di ricalcolare il percorso migliore delle net
  • Usare il comando Route per fare i collegamenti: piste 45° (wire bend), layer bottom (blu), width 24-40, round (via), drill 31.49mil=0,8mm 39.37mil=1mm
  • Due tracce di rame appartenente a net diverse non si possono sovrapporre. (Errore di overlap)
  • COMANDI utili:
    • change -> package
  • Eseguiamo il comando DRC (Design Roule Check) per controllare eventuali errori presenti.
  • Usare DRC personalizzato modificando isolamento, ...
  • Ridurre al minimo il numero di piste sul top layer
  • Cercare di ridurre le dimensioni complessive del PCB
  • Per creare il bordo scheda (Scontornatura) usare la griglia in mm, il comando wire con width=0 e layer 20
  • E' utile creare e salvare diverse combinazioni di layer da visualizzare
    • "_All" sono visibili i layer più usati: none 1 16 17 18 19 20 21 22 23 24 25 26 39 40 41 42 43 45 48 49 51 52
    • "PCB_Top" per la stampa del pcb lato componenti: Layer 1 17 18 20
    • "PCB_Bottom" per la stampa del pcb lato rame: Layer 16 17 18 20
    • "Unruted" per controllare di aver fatto tutti i collegamenti: 
    •  "Serigrafia"
  • Per la stampa del PCB su lucido impostare le opzioni: mirror, black e solid per il PCB_Bottom; black e solid per il PCB_Top, ricordarsi di inserire sempre del testo nel pcb da stampare in modo da non sbagliare il posizionamento del lucido nel bromografo. Quando posizionate il lucido nel bromografo il testo deve essere leggibile.
  • Creazione del poligono di massa: dare nome GND, isolate 40
  • Per le dimensioni della scheda (Layer 20 - Dimension) usiamo la griglia in mm.
  • Nelle nuove versioni di Eagle è stato eliminato il comando taglia. Per ripristinarlo, digitare il comando "SET Cmd.Copy.ClassicEagleMode 1" nella casella di testo comandi.
  • Dalla versione 6.0 di Eagle (solo per le versioni standard o professional) è possibile unire in unico file più coppie esistenti di board/schematic usando la funzione importa. 
---------
Versione 1.0 del 25/01/2011
Revisione 1.1 del 14.12/2016

martedì 26 gennaio 2016

domenica 24 gennaio 2016

A.S. 2015/16 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/2

ESERCITAZIONE 5 - Competizione tra thread Linux (10/05/16)

OBIETTIVI / ARGOMENTI TRATTATI
- i semafori

PROCEDIMENTO / SPECIFICHE INIZIALI
- risolvere l'esercizio precedente utilizzando i semafori

venerdì 22 gennaio 2016

A.S. 2015/16 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/3

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 5 - La comunicazione tramite socket
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 4 - Esercitazione sulle VPN
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 3 - Implementazione dell'algoritmo di crittografia di Giulio Cesare
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 2 - Gestione di processi Unix (24/02/16)
Gestione dei processi Unix utilizzando la funzione wait(), exec..() e perror() nel linguaggio C

martedì 24 novembre 2015

A.S. 2015/16 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/3

ESERCITAZIONE 4_2 - Termostato


A.S. 2015/16 - Esercitazioni di laboratorio per la materia TELECOMUNICAZIONI/2

ESERCITAZIONE 6_2 - Filtri del 2° ordine
Analisi e progetto di filtri del 2° ordine

GRIGLIA DI VALUTAZIONE (consegna entro il 24/05/16):
[25 punti] - modello generale del filtro passa basso del 2° ordine e analisi della funzione di trasferimento
[25 punti] - progetto del filtro passa basso con una wn=2*3.14*5Khz e un coefficiente di smorzamento δ=0,1
[25 punto] - illustrare le 4 configurazioni canoniche dei filtri disegnando con TinaTI gli schemi e tracciare i diagrammi di bode
[25 punto] - Analisi delle variazioni del comportamento in frequenza sul filtro passa basso nell'intorno di wn al variare del coefficiente di smorzamento

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 5_2 - Filtro passa alto
Progetto di un filtro passa alto
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 4_2 - Amplificatori invertenti e non
Amplificazione invertente e non. con Amplificatori Operazionali (inizio 31/03/16)
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 3_2 - Amplificatori con bjt
Confronto tra le caratteristiche di funzionamento di amplificatori a bassa frequenza con montaggi a emettitore comune e collettore comune  (inizio 15/03/16)
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 2_2 - Driver motori
Progetto di un driver motori con il software Eagle (inizio 09/02/16)
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 1_2 - Progetto della rete di polarizzazione di un transistor bjt (inizio 07/01/16)

mercoledì 3 giugno 2015

A.S. 2014/15 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/2

ESERCITAZIONE 6 (Parallel IO ports)
1) Lampeggio dei tre led (white) presenti sulla scheda launchpad ad intervalli di 0,5 sec.
2) alla pressione del pulsante SW1 accendere i led con la sequenza RGB alla pressione del pulsante SW2 accendere i led con la sequenza CMY altrimenti accendere i tre led (white)

martedì 2 giugno 2015

A.S. 2014/15 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/1 [slide]


ESERCITAZIONE 7
Realizzare uno script che passato come parametro un indirizzo ip e/o una subnet mask visualizzi informazioni sul tipo di ip immesso

giovedì 14 maggio 2015

A.S. 2014/15 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/2 [slide]

ESERCITAZIONE 9
Realizzare un sistema che permetta il controllo (bidirezionale) dell'hardware da una qualsiasi postazione remota.
Es. comando di un sistema di irrigazione a tre zone da remoto, leggiamo i sensori di umidità del terreno, sensore pioggia

A.S. 2014/15 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/3

ESERCITAZIONE 8
Fare delle misure di distanza con il sensore ad ultrasuoni SFR05 (interrupt handler)

mercoledì 11 marzo 2015

A.S. 2014/15 - Relazione di laboratorio: Backup manager

Materia: Sistemi & Reti
Esercizio: 6 Backup manager
TITOLO: Pagina php per login, backup directory personale e download.

lunedì 9 marzo 2015

A.S. 2014/15 - Relazione di laboratorio: Autenticazione

Utilizzo un file di testo come database chiamato new.db in cui tutte le password sono crittografate per negare l'accesso a tutte le persone che possono accedere al filesystem, i nomi degli utenti sono scritti in chiaro. Questo sistema consente di mantenere le password nascoste anche allo sviluppatore dell'applicazione e utilizza le funzioni crypt per ottenere un hash della password dal quale non si può risalire alla stessa.

venerdì 6 marzo 2015

A.S. 2014/15 - Relazione di laboratorio: Backup Manager

PROJECT Backup Manager
AUTHOR Hamza Jahangir
OBJECTIVE

Create a PHP application that executes a backup script for the homepage and then permits a download of it after an initial user authentication.

ANALYSIS/THEORETICAL PREMISES

Data from the index file (username and password) is sent through the POST Method because it’s a method generally used when sending passwords and other sensitive data. POST variables are not shown in the URL therefore the parameters cannot be saved in the browser history. Compared to the GET method, POST is generally more secure. More information about POST and GET methods can be found at the following links:

lunedì 12 maggio 2014

A.S. 2013-14 - Programma del corso SISTEMI E RETI/1


Titolo del modulo

Contenuti Svolti


1

Virtualizzazione
Introduzione a Linux
- La virtualizzazione
- Introduzione ai Sistemi Operativi
- Introduzione al sistema operativo Linux
- Il kernel di Linux
- Le distribuzioni di Linux
- Creazione della macchina virtuale con il sw VirtualBox e avvio di Debian (Live, i386, ver 7.0.0, LXDE, immagine ISO)
- Installazione di Debian
- elementi principali dell'ambiente desktop: lxterminal, leafpad

martedì 14 maggio 2013

Prima esercitazione in assembler su ARM con la scheda "Stellaris® LM4F120 LaunchPad"

LaunchPad Call-Outs 


Come prima cosa installare i driver
Scaricare il template sul quale sviluppare l'esercitazione
Esercizio da consegnare per venerdì:
variazione del lampeggio del led blu alla pressione dei pulsanti

martedì 15 gennaio 2013

PIC16F628A e il Timer0

Ecco di seguito una traduzione delle parti più rilevanti del datasheet, viene descritto l'utilizzo del timer0 con collegamento al clock di sitema.

giovedì 3 maggio 2012

Template di un progetto MPLAB utilizzabile con diverse schede micro

PIC16F1939 e PIC16F1827

Scarica il progetto

Progetto compresso con il programma 7Zip 

Firmware per il collaudo della scheda PIC16F1939 con display e porta seriale scarica il fw

Utilizzo del DAC interno al PIC16F1827 per la generazione di un segnale sinusoidale

Leggendo il dasheet del PIC16F1827 troviamo due formule relative al DAC che semplificate ci permettono di calcolare la Vout dato DACCON1 oppure DACCON1 data la Vout
Vout = 5*DACCON1/32
DCCON1 = Vout*32/5

giovedì 8 marzo 2012

Errori da evitare nei progetti Mplab

Per raggiungere la sufficienza nei progetti consegnati vanno seguite le seguenti indicazioni:

- Ogni istruzione che opera sui i file register deve essere preceduta dalla istruzione di selezione del banco
- Le costanti vanno scritte in maiuscolo
- Il progetto deve avere tre livelli di commento:    a. nell'intestazione iniziale indicare obiettivi, premesse teoriche
    b. All'inizio di ogni routine deve essere presente l'intestazione compilata in ogni parte compresa una descrizione della stessa
    c. Spiegare gruppi di istruzioni che svolgono una funzione particolare. evitare di commentare istruzioni semplici.
- La compilazione del progetto non deve dare errori. Eventualmente commentare l'istruzioni che genera l'errore e che non riuscite a correggere.
- Indentazione corretta del firmware: label sulla colonna 0, istruzioni dopo 2 tab, commenti allineati, ...
- non usare banksel ma l'istruzione movlb per la selezione stampare la parte di datasheet contenente l'elenco dei fl register

venerdì 17 febbraio 2012

Il modulo PWM del PIC16F887

All' interno del pic16F887 sono presenti due moduli hardware chiamati CCP1 e CCP2 in grado di implementare le funzioni di Compare, Captue e PWM.

La funzione PWM è in grado di generare un segnale impulsivo modulato in ampiezza, dove è impostabile frequenza e duty cycle. Questo segnale può essere utilizzato nei protocolli di comunicazione dove l'informazione è codificata in base alla durata degli impulsi e al duty cycle oppure per generare una tensione media di ampiezza variabile per pilotare ad esempio dei motori.

Il segnale PWM viene generato sul pin CCPx (CCP1 o CCP2). Il duty cycle il perido e la risoluzione è determinata dai seguenti registri
• PR2
• T2CON
• CCPRxL (CCPR1L o CCPR2L)
• CCPxCON (CCP1CON o CCP2CON)

La risoluzione del segnale generato sul pin CCP può raggiungere al massimo 10 bit

Il modulo PWM per funzionare ha bisogno di utilizzare come risorsa esclusiva il modulo Timer2.



martedì 14 febbraio 2012

Gestione del Timer0 con il pic 16F1827

Struttura interna del timer0 dal datasheet della Microchip

Ecco di seguito una traduzione delle parti più rilevanti del datasheet, viene descritto l'utilizzo del timer0 con collegamento al clock di sitema: