Proiectarea cu Microprocesoare Scurt exemplu de...
Transcript of Proiectarea cu Microprocesoare Scurt exemplu de...
Proiectarea cu MicroprocesoareScurt exemplu de proiect
Universitatea POLITEHNICA Bucures,ti
Aprilie 2016
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 1/16
Introducere
I Am ales sa va facem un exemplu de proiect simpluI Vom vedea pas, ii prin care trebuie trecutI Implementarea lui dureaza sub o ora
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 2/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335
I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335
I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335
I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Outline
Hardware
Software
Concluzii
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 5/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:
I Care este pinout-ul pentru capsula pe care am ales-o?I Cum se leaga piesa ın schema electrica?I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:I Care este pinout-ul pentru capsula pe care am ales-o?
I Cum se leaga piesa ın schema electrica?I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:I Care este pinout-ul pentru capsula pe care am ales-o?I Cum se leaga piesa ın schema electrica?
I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:I Care este pinout-ul pentru capsula pe care am ales-o?I Cum se leaga piesa ın schema electrica?I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Lista de piese - Milestone 3
Piesa Valoare Pret,
LCD text 20RONRezistent, a 1K Ω 0.16RONRezistent, a 10K Ω 0.24RONRezistent, a 2K Ω 0.24RONLM335 LM335A 4.32RON
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 8/16
Schema electrica - Milestone 4
I In EAGLE CAD, introducemurmatoarele componente:
I O rezistent, a:resistors/R-EU_-
/R0204/7I Ground: GNDI Conector bareta pini:
con_lstb/MA03-1I Senzor temperatura:
lm35/lm35 (gasimbiblioteca separata,cautam lm35 eagle lbr penet)
I Fizic, conectorul nostru SV1 va fi legat cu 3 fire la5V,PA0,GND
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 9/16
Outline
Hardware
Software
Concluzii
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 10/16
Considerente Software
I Trebuie sa facem o masurare de doua ori pe secunda → timercu ıntrerupere
I Trebuie sa adaptam codul de LCD text din laborator (pentruca nu avem aceeas, i pini ca placa de laborator)
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 11/16
Adaptare LCD text
// l c d . h// P i n i i de date a i LCD−u l u i#d e f i n e LcdD4 PC6#d e f i n e LcdD5 PC5#d e f i n e LcdD6 PC4#d e f i n e LcdD7 PC3
// Po r t u l pe ca r e conectam p i n i i de c o n t r o l a i LCD−u l u i#d e f i n e LcdCTRL DDR DDRA#de f i n e LcdCTRL PORT PORTA#de f i n e LcdCTRL PIN PINA
// P i n i i de c o n t r o l a i LCD−u l u i#d e f i n e LcdRS PA5#d e f i n e LcdRW PA6#d e f i n e LcdE PA7
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 12/16
Cod main
i n t main ( )
// i n i t i a l i z a r e LEDDDRD |= (1 << PD7) ;// i n i t i a l i z a r e t ime rOCR1A = 7812 ;TCCR1B = (1 << WGM12) | (5 << CS10 ) ;TIMSK1 |= (1 << OCIE1A) ;// i n i t i a l i z a r e ADCADMUX = (1 << REFS0) ;ADCSRB = (1 << ADEN) | (7 << ADPS0) ;
s e i ( ) ;
wh i l e (1 ) ;
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 13/16
Cod ISR
ISR (TIMER1 COMPA vect )
// s t a r t c o n v e r s i ePORTD |= (1 << PD7) ;ADCSRA |= (1 << ADSC) ;l o o p u n t i l b i t i s c l e a r (ADCSRA, ADSC) ;
// t e rm i n a r e c o n v e r s i ePORTD &= ˜(1 << PD7) ;
cha r s [ 1 0 ] ;// \xDF e s t e s imbo l u l pen t ru grades p r i n t f ( s , ”%7.2 f \xDF C” ,ADC ∗ 5 / 1023 .0 f ∗ 100 − 273 .15 f ) ;
LCD pr intAt (0 , s ) ;
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 14/16
Outline
Hardware
Software
Concluzii
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 15/16
Concluzii
I Variante ale codului
I while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)
I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADCcomplete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16