Preview only show first 10 pages with watermark. For full document please download

Document Iv. Project Budget - Iit

   EMBED


Share

Transcript

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL WIRELESS MONITORING FOR SOLAR SYSTEMS Autor: Francisco Kaiser Manzano Director: Faramarz Vaziri Madrid Junio 2011 ! ! ! !"#$%"&' " " #$%&'()*+%*" ,-./&0" 1" 23-45/&0" 1'" +-" 0-+" (-0" *0%6+.'3*0" .*" $-)&+5$'$57+" 5+.&0%35'(8" ('0" 3*.*0" 9%:*3+*%" :'+" $&/5*3%-" *0%'0" +*$*05.'.*0" .*" $-)&+5$'$57+;" 90%'0" 3*.*0" $-)<'3%*+" &+'" 0*35*" .*" .*0=*+%'>'0" 5)<-3%'+%*0?" $'/(*'.-@".50%'+$5'"1"(5)5%'$57+"*+"$&'+%-"'"$-0%*0;"A-.'0"*0%'0".*0=*+%'>'0":'+" '(*+%'.-" '" ('" 5++-='$57+@" /&0$'+.-" &+'" )'1-3" .50%'+$5'@" 1" 4(*B5/5(5.'.@" &%5(5C'+.-" ('0" $-)&+5$'$5-+*0" 5+'(6)/35$'0;" D+'" .*" *0%'0" $-)&+5$'$5-+*0" *0" E(&*%--%:"F-G"9+*3H1"-"3*$5*+%*)*+%*"((')'.'"E(&*%--%:"I;J@"K&*"*0"*)<(*'.'" <'3'"*B<'+.53"('0"<-05/5(5.'.*0".*"&+"$-+%3-('.-3"<'3'"050%*)'0"0-('3*0;"" 9(" -/>*%5=-" *0" $3*'3" &+" 050%*)'" .*" $-)&+5$'$57+" 5+'(6)/35$'@" K&*" .*" ('" <-05/5(5.'." '(" $-+0&)5.-3" .*" %*+*3" &+'" )-+5%-35C'$57+" 5+'(6)/35$'" <'3'" 0&" 050%*)'" 0-('3@" <-05/5(5%'+.-" 1" 4'$5(5%'+.-" ('" '050%*+$5'" *+" *(" )'+%*+5)5*+%-" 1" '$%&'(5C'$5-+*0;"9("!"!#$%&'(&)*+,"LLMNIJ".*"A*B'0"!+0%3&)*+%0"*0"*)<(*'.-"*+" *(" .*0'33-((-" .*" &+'" $-)&+5$'$57+" .*" .-0" $'+'(*0" /'0'.'" *+" *(" <3-%-$-(-" E(&*%--%:"I;J;"D+")5$3-$-+%3-('.-3"OJNP"*0%6"5+$(&5.-"*+"*("050%*)'@"<-3"(-"K&*" ('" $-)&+5$'$57+" QRMSM" *+%3*" *(" $-+%3-('.-3" 0-('3" 1" *(" 0*3=5.-3" E(&*%--%:" *0%6" H'3'+%5C'.';" 9(" 050%*)'" $3*'.-" *0" /'3'%-@" 36<5.-@" <*K&*T-@" 1" )*>-3" K&*" -%3-0" 050%*)'0"5+'(6)/35$-0"<-3K&*"$-+0&)*")&1"<-$'"*+*3HU'@"'(H-")&1"5)<-3%'+%*" <'3'" &+'" '<(5$'$57+" K&*" $-+((*='" *+*3HU'" 0-('3;" 9+" ('" 45H&3'" P" 0*" )&*0%3'" ('" $-+*B57+"QRMSM"1"E(&*%--%:;" " V5H&3'"P?"#3K&5%*$%&3'".*("050%*)'"5+'(6)/35$-;" "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!! ! "#$%&'( )#( *+,( -+&+-%#&.,%/-+,( 01,( /02'&%+$%#,( )#( 34#( )#5#( -402*/&( #*( ,/,%#0+(,'$(#$%&#('%&+,6(2#&0/%/&(4$+(-'04$/-+-/7$(-'$(4$(&+$8'()#(+*(0#$',( 9::( 0#%&',( '( ,42#&/'&;( $'( )#5#( ,#&( 4$( ,/,%#0+( -'02*#<'( )#( 4%/*/=+-/7$;( *+( /$>'&0+-/7$( )#5#( ,#&( 0',%&+)+( )#( >'&0+( ,/02*#( ?( -*+&+( #$( 4$( /$%#&>+=( )#( 4,4+&/'@( A*( ,/,%#0+( )#5#( #,%+&( 2+&+)'( 2+&+( ,'&%#+&( 4$+( ,#&/#( )#( '5,%1-4*',( -'0'(,'$6(%&+$,0/%/&()#,)#(#*(/$%#&/'&()#(4$+(-+<+(0#%1*/-+(34#(,'2'&%#(#*(>&.'(?( *+,($#B+)+,;(2'&(*'(34#(#,($#-#,+&/'(2&'B##&(+*(,/,%#0+()#(4$+(+$%#$+(%/2'(!"#$% -'$( #*( >/$( )#( 2')#&( -402*/&( #,%#( "/,/%'@( C+05/D$( )#5#( 2&#,#$%+&( *'( 2',/5/*/)+)()#(2')#&(-'$#-%+&,#(+()/,%/$%',(,/,%#0+,()#(0'$/%'&/=+-/7$;(#$(#,%#( -+,'(#*(2&'%'-'*'(#02*#+)'(EC(F@:(2&#,#$%+(*+,(-+&+-%#&.,%/-+,($#-#,+&/+,(2+&+( 2')#&( &#+*/=+&(4$+( &#)( %/2'( &'(")%34#( 2#&0/%#(4$+( -'04$/-+-/7$(-'$()/,%/$%',( )/,2',/%/B',()#,)#(#*(0/,0'(,#&B/)'&(G#$(#,%#(-+,'('&)#$+)'&(2#&,'$+*@H( I+( 0#%')'*'8.+( ,#84/)+( #$( *+( &#+*/=+-/7$( )#( #,%#( 2&'?#-%'( J+( ,/)'( *+( -*1,/-+(2+&+(4$(2&'?#-%'()#(#,%#(%/2';(-'$(#*('5<#%/B'(>/$+*()#(&#)4-/&(#*(&/#,8'()#( >+**',;( /$-�#$%+&( *+( #>/-/#$-/+( ?( 2&')4-%/B/)+);( 0#<'&+&( *+( -+*/)+)( )#( *',( ,#&B/-/',( +$%#&/'&#,( ?( 0#<'&+&( *+,( -'04$/-+-/'$#,( #$%&#( #*( ,/,%#0+( ,'*+&( ?( 4$( '&)#$+)'&(2#&,'$+*@(( K+&%/#$)'( )#( %')+,( *+( #,2#-/>/-+-/'$#,( "#&/)+,( ,#( #,%+5*#-/7( #*( 2&'%'-'*'( +( #02*#+&( #$( *+( -'04$/-+-/7$( /$+*105&/-+;( #$( #,%#( -+,'( ,#( #*/8/7( #*( 2&'%'-'*'(!AAA(L:M@9N@9(E*4#%''J(F@:('(%+05/D$(-'$'-/)'(-'0'(E*4#%''%J(I'O( A$#&8?@(I+(/02*#0#$%+-/7$()#(#,%#(2&'%'-'*'()#(-'04$/-+-/7$(,#(&#+*/=+(8&+-/+,( +*( ,?,%#0P'$P-J/2( QQMNF:( )#( C#R+,( !$,%&40#$%,@( C#$/#$)'( #$( -4+$%+( *+,( */0/%+-/'$#,( #$( -'$,40'( )#( #$#&8.+( #,%/24*+)+,( 2'&( *+( #02&#,+( 2+&+( #,%+( +2*/-+-/7$;(,#(&#+*/=+&'$(*',(-1*-4*',()#(*+(2'%#$-/+(-'$,40/)+(2'&(#*(,/,%#0+;(#$( %')',(*',(0')',(2',/5*#,;(+,.(-'0'(*+,(2',/5*#,(+*%#&$+%/B+,(2+&+(&#)4-/&()/-J'( -'$,40'@( S#( 2*+$%#+&'$( %+05/D$( 2',/5/*/)+)#,( 2+&+( +40#$%+&( #*( +*-+$-#;( #02*#+$)'(4$(,/,%#0+(*+,-./0-1@( A*(,/,%#0+()#(0'$/%'&/=+-/7$()#5#(-'04$/-+&,#(-'0'(?+(,#(J+(/$)/-+)'( -'$(+$%#&/'&/)+);(2&/0#&'(+(4$(-'$%&'*+)'&(,'*+&(B.+(-'04$/-+-/7$(,#&/#(TSMUM@( V( 2',%#&/'&0#$%#( +*( '&)#$+)'&( 2#&,'$+*( 4( '%&'( )/,2',/%/B'( 0#)/+$%#( #*( 2&'%'-'*'(E*4#%''%J(F@:@(( I+(-'04$/-+-/7$(,#&/#(,#(&#+*/=+(#$%&#(#*(-'$%&'*+)'&(-'$#-%+)'(+(*+(2*+-+( ,'*+&;(?(*+(2'34,5(2#&%#$#-/#$%#(+*(W/%()#()#,+&&'**';(#,%+(2'34,5(#,(#*(#,-*+B'(#$(*+( >4%4&+( -'04$/-+-/7$( B.+( E*4#%''%J@( I+( 2&'8&+0+-/7$( >4#( &#+*/=+)+( #$( QXX( #02*#+$)'(#*(-'02/*+)'&(!YT(Z'&W5#$-J(,40/$/,%&+)'(2'&(C!@(I+(-'04$/-+-/7$( ,#&/#;(J+(,/)'(8+&+$%/=+)+(8&+-/+,(+*(0/-&'-'$%&'*+)'&(L:N9(/$%#8&+)'(#$(#*(-J/2( "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!! ! ##$%&'()*+),-./)0/-,)-,)1,/2345),2),-67,8/),2,9.15+39:);)!"##$%&$'()*+"(#,-() ?+/)@,4)9:+-,A73B/)2/)9:87+39/935+)CD$E$F),-)+,9,-/13:)38<2,8,+./1)2/) 9:87+39/935+) 3+/2G8H139/) ,+.1,) 7+) :1B,+/B:1) <,1-:+/2F) ,8<2,/+B:) 7+) >I) &(') .%/0#*F) 67,) 1,/234/) 2/) ./1,/) B,) 8/,-.1:) ;) ,2) ,-92/@:) 9:+,9./B:) /2) 9:+.1:2/B:1) -:2/1) JK,;0:H(L) *2) 3+.,10/4) B,) 7-7/13:) ,8<2,/B:) M/) -3B:) ,2) <1:<:193:+/B:) <:1) I,N/-)!+-.178,+.-F)>I::2()O,-B,),2)97/2)-,)<7,B,),-./H2,9,1)7+/)9:87+39/935+) B,) B:H2,) @P/F) ,-.:) ,-) 7+/) @,4) 1,/234/B/) 2/) 9:+,N35+) 9:+) ,2) ,-92/@:F) -,) <7,B,) ,+@3/1) ;) 1,93H31) 3+0:18/935+) B,) 8/+,1/) 3+/2G8H139/() Q/) <1:A1/8/935+) M/) -3B:) 1,/234/B/) ,+) #RR) ,8<2,/+B:) ,2) 83-8:) 9:8<32/B:1) 67,) ,+) ,2) 9/-:) B,) 2/) 9:87+39/935+)CD$E$() #78<23B/-) .:B/-) 2/-) ,./()) *2) -3-.,8/) B,) 9:87+39/935+) 38<2,8,+./B:) 27,.::.M) &('F) >27,.::.M) Q:W) *+,1A;F)1,B)'*,1F))CD$E$F)9:87+39/935+)?UCIF)#M3<)I!)##$%&'F)/+.,+/)XM3<() ! ! ! ! ! ! ! "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!"! ! ! ! "#$%&"'%! " " #$%$"&'()("*+,)"-./&'("$0/"12.3+&'("$2)"0."*.04)2"%5)"/)"3$6%."(%$0/$2/" 3.2" +0/'(%2+$*" 6.77'0+6$%+.0(8" 9%5)20)%" 5$(" .:)2%$,)0" &.%5;" <+2)/" 9%5)20)%" (5$2)(" .0)" (+40+3+6$0%" /2$=&$6," =+%5" .%5)2" =+2)/" +0/'(%2+$*" 0)%=.2,+04" $>>2.$65)(?"6$&*+04@"/+(%$06)"$0/"6.(%"*+7+%$%+.0(;"A5)()"5$2/=+2+04"/2$=&$6,(" 5$:)"*)/"7$0B"%."()),"$"*.04)2"2$04)"$0/"7.2)"3*)C+&*)"$*%)20$%+:)"+0"=+2)*)((" 9%5)20)%;" D0)" .3" %5.()" =+2)*)((" 6.77'0+6$%+.0(" +(" E*')%..%5" F.=" 90)24B" .2" 2)6)0%*B" 6$**)/" E*')%..%5" G;H@" =5+65" +(" '()/" %." )C>$0/" %5)" 6$>$&+*+%+)(" $0/" 3)$%'2)"()%".3"$"(.*$2"(B(%)7"6.0%2.**)2;"" A5)" 4.$*" +(" %." /):)*.>" (.7)" %B>)" .3" =+2)*)((" /):+6)" %5$%" =.'*/" 4+:)" 6'(%.7)2(" %5)" .>%+.0" %." 5$:)" $" =+2)*)((" 7.0+%.2+04" (B(%)7" 3.2" %5)+2" (.*$2" (B(%)7(" %5$%" =.'*/" $((+(%" +0" 7$+0%)0$06)" $0/" (%$%'(" '>/$%)(;" A5)" (B(%)7" .0" 65+>" IIJKGH" 32.7" A)C$(" L0(%2'7)0%(" +(" '()/" %." /):)*.>" $" %=.M=$B" 6.77'0+6$%+.0" (B(%)7" &$()/" .0" E*')%..%5" G;H" >2.%.6.*;" N0" OHKP" 7+62.6.0%2.**)2" +(" +06*'/)/" .0" %5)" 65+>" (." QRJSJ" 6.77'0+6$%+.0" &)%=))0" %5)" (.*$2"6.0%2.**)2"$0/"%5)"E*')%..%5MR)2:)2"+("4'$2$0%))/;"A5)"(B(%)7"62)$%)/"+(" 65)$>@" 3$(%@" (7$**" $0/" &)%%)2" %5$0" $0.%5)2" =+2)*)((" >2.%.6.*(" &)6$'()" +%" 6.0('7)("*.=")0)24B@"(.7)%5+04"2)$**B"+7>.2%$0%"3.2"$"(.*$2">.=)2"$>>*+6$%+.0;"" L0"T+4'2)"P"+%"+(">2)()0%)/"%5)"QRJSJ"6.00)6%+.0"$0/"E*')%..%5"6.77'0+6$%+.0(" 0))/)/;"" " T+4'2)"P?"RB(%)7"N265+%)6%'2);" "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!! ! # $%&# '()*# +',(-*./*# 0&.*1-&)# *%.*# '1)*# '&&*# *%&# )2)*&'# .-&# .'(/3# (*%&-)4# .# 1)&-# )%(156# 7&# .75&# *(# 8+-&5&))52# 9(''1/+9.*&# 8+*%# *%&# )+3/# 1,# *(# :;;'<#"*#)%(156#7&#&.)2#0(-#.#/(/=*&9%/+9.5#5.2=,&-)(/#*(#6(8/5(.6#(-#-&*-+&>&# 6.*.<#?.*.#)%(156#7+),5.2&6#95&.-52#+/#)('&#*2,&#(0#1)&-#+/*&-0.9&<#$%&#)2)*&'# '1)*# 7&# ,-&,.-&6# *(# .>(+6# .# /1'7&-# (0# ,+*0.55)# )19%# .)4# +*# 8+55# 7&# .75&# *(# *-./)'+*# *%-(13%# ./2# ,%2)+9.5# (7)*.95&)# /# ,5.9&@# '.+/52# '&*.5# 7(A<# $%&# 95+&/*# '1)*# 7&# .75&# *(# 6+)*+/31+)%# 7&*8&&/# )&,.-.*&# )(5.-# )2)*&')# +/# -./3&# ./6# 1/+B1&52#9(''1/+9.*+*%#&.9%@#+/#*%+)#9.)&#*%&#,-(*(9(5#1)&6#C$#D<;#%.)#*%&# 9%.-.9*&-+)*+9)# /&&6&6# *(# '.E&# .# '&)%# /&*8(-E# *%.*# .55(8)# 9(''1/+9.*+(/# 8+*%#(*%&-#6&>+9&)#0-('#*%&#).'&#)&->&-#F+/#*%+)#9.).#.#5.,*(,+*2@# +',-(>&# *%&# B1.5+*2# (0# ,.)*# )&->+9&)# ./6# +',-(>&# 9(''1/+9.*+(/)#7&*8&&/#)(5.-#)2)*&'#./6#.#5.,*(,# C.)&6# (/# .55# *%&# -&B1+-&'&/*)@# *%&# ,-(*(9(5# *(# 7&# 1)&6# +/# *%&# 8+-&5&))# 9(''1/+9.*+(/#8.)#*%&#"III#J;K<:L<:#C51&*((*%#D<;#(-#.5)(#E/(8/#.)#C51&*((*%# M(8# I/&-32<# $%&# +',5&'&/*.*+(/# (0# *%+)# 9(''1/+9.*+(/)# ,-(*(9(5# +)# ,())+75&# *%./E)# *(# *%&# NNKLD;# )2)*&'=(/=9%+,# 0-('# $&A.)# "/)*-1'&/*)<# $.E+/3# +/*(# .99(1/*#*%+'+*.*+(/)#+/#,(8&-#9(/)1'+/3#-&B1+-&6#0(-#*%&#,-(H&9*@#*%&#,(8&-= 9(/)1'&6#9.5915.*+(/)#72#*%&#)2)*&'#+/#.55#,())+75&#'(6&)#8&- .5915.*&6@#./6# &)*.75+)%&6# ,())+75&# .5*&-/.*+>&)# *(# -&619&# *%&# 9(/)1',*+(/<# O5)(# )('&# ,())+7+5+*+&)# *(# +/9-&.)&# *%&# -./3&# (0# 9(''1/+9.*+(/# 8&-&# ,-&)&/*&6@# )19%# .)# 1)&#.#P-(/*=I/6<## $%&# '(/+*(-+/3# )2)*&'# )%(156# 7&# -&,(-*&6# .)# .5-&.62# +/6+9.*&6# .7(>&@# 0+-)*# *(# .# )(5.-# 9(/*-(55&-# >+.# QRKSK# )&-+.5# 9(''1/+9.*+(/<# O/6# *%&/# *(# .# ,&-)(/.5#9(',1*&-#(-#(*%&-#6&>+9)+/3#*%&#C51&*((*%#D<;#,-(*(9(5<## $%&# )&-+.5# 9(''1/+9.*+(/# +)# ,&-0(-'&6# 7&*8&&/# *%&# 9(/*-(55&-# 9(//&9*&6# *(# *%&# )(5.-# ,./&5# ./6# *%&# E&20(7# 0-('# *%&# 6&>&5(,'&/*# E+*<# $%&# E&20(7# 8+55# 7&# *%&# )5.>&# +/# *%&# 01*1-&# C51&*((*%# 9(''1/+9.*+(/<# $%&# ,-(3-.''+/3# 8.)# 6(/&# +/# NTT# 1)+/3# *%&# "OQ# U(-E7&/9%# ,-(>+6&6# 72# $"<# $%&# )&-+.5#9(''1/+9.*+(/#+)#31.-./*&&6#*%./E)#*(#*%&#J;L:#'+9-(9(/*-(55&-#(/=9%+,# NNKLD;<#"/#*%+)#,%.)&#*%&#&5&9*-(/+9#)9%&'.*+9#./6#7+55=(0='.*&-+.5#0(-#*%*1-&# VNC#5.2(1*#8&-&#.5)(#6(/&<## "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!"! ! #$%&'() ($&'*+) ,-*) ./010) 23445'&2$,&3'6) &,) &7) '*2*77$89) ,3) &4:;*4*',) ,-*) <&8*;*77) 23445'&2$,&3') =*,<**') $) :*873'$;) 234:5,*8) 57&'() $) >?) @AB) +3'(;*) ,-$,) :*8C3847) ,-*) 4$7,*8) ,$7D6) $'+) ,-*) 7;$%*) 23''*2,*+) ,3) ,-*) 73;$8) 23',83;;*8) ED*9C3=AF) ?-*) 57*8) &',*8C$2*) 57*+) -$7) =**') :83%&+*+) =9) ?*G$7) "'7,854*',76) >?33;A) H7&'() >?33;) &,) &7) :377&=;*) ,3) *7,$=;&7-) $) ,<3I<$9) 23445'&2$,&3'6)3'2*),-*)23''*2,&3')<&,-),-*)7;$%*)&7)*7,$=;&7-*+6)&,)&7):377&=;*) ,3) 7*'+) $'+) 8*2*&%*) +$,$) <&8*;*77;9A) ?-*) :83(8$44&'() -$7) =**') +3'*) &') JKK6) 57&'(),-*)7$4*)234:&;*8)$7)C38),-*)./010)23445'&2$,&3'A)) L'2*) ,-*) 234:;*,&3') 3C) $;;) ,-*) 8*M5&8*4*',7) $'+) 7,$(*7) 3C) +*7&('6) ,-*) C&'$;) :83,3,9:*) <$7) (&%*') ,3) NOPO) ?*2-'3;3(&*76) <&,-) ,-*) QJ>) 72-*4$,&2) $'+) >LR6)73),-$,),-*9)235;+):5,)&',3):83+52,&3'),-*):83,3,9:*A) ?-*) 23445'&2$,&3') 797,*4) &4:;*4*',*+) C38) ,-&7) $::;&2$,&3'6) &7) $') &4:83%*4*',) $'+) 3:,&4&S$,&3') &') 752-) $::;&2$,&3'76) 7&'2*) 73) C$8) ,-*8*) <$7) '3) $::;&2$,&3') 3') ,-*) 4$8D*,) ,-$,) :*8C384) ,-&7) ,9:*) 3C) 23445'&2$,&3'A) T&%*') ,-*) 8*2*',)*4*8(*'2*)3C),-&7)<&8*;*77)23445'&2$,&3'):83,323;)$'+),-*)797,*4I3'I 2-&:) JJ0U@B6) ,-*8*) -$%*) =**') 4$'9) :83=;*47) &') ,*847) 3C) +3254*',$,&3'6) :83(8$44&'()57*8)(5&+*76)$'+)73)3'A)>5,)&'),-*)*'+)$'+),$D&'()&',3)$2235',)$;;) ,-*7*) :83=;*476) &,) -$7) 4$'$(*+) ,3) 28*$,*) $) 7,$=;*) 797,*4) 3C) 23445'&2$,&3') =*,<**')$);$:,3:)$'+),-*)73;$8)23',83;;*8A)) ) !"#$%&'()* V&8*;*77) 23445'&2$,&3'6) >;5*,33,-) @AB6) >;5*,33,-) P3<) W'*8(96) 4*7-)'*,<38D76)./0106)HO.?)23445'&2$,&3'6)J-&:)?")JJ0U@B6)V-&:)$',*''$A)) ) ) ) ) ) ) ) "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!""! ! ! ! ! !"#$%#&'()*+,-# .*#$)$"(%#"/#0(-#12,)34"#0'*5'*"6## .#3)74)8)#9)#:"27;#3)#&("2;#"/#$)-# ! ! ! ! ! ! # # # # <24)*#"3('#&2);)#)=248">'(,)6## &)("#=24)*#*"#9'>)#*';'#%'#),+?#)=248">';"-# "#$!%&'&"(!)&!*&"+"! ! ! !9)#&("@(),,48)#;)8)7"&$)*+#"/#$'*#4,#84+'77%#;)&)*;)*+## "*#4*8)*+4"*-#.+#4,#+9)#$",+#4$&"(+'*+#&(";2>+## "/#94,#>()'+48)#3('4*-# ,-./0(!%&"0(! ! ! ! ! "#$%&'()*+),)%-.! # # !#$%&'(#')*+#,%#,-./*0#1)23,#%1#.''0#45#6.2+/,3#1%2#-.7)/8#4+#3&66%2,+(#./(# 92%&8-,# 4+# ,-+# %66%2,&/),5# %1# -.7)/8# ,-)3# :%''+8+# +(&:.,)%/# ./(# +36+:).''5# (&2)/8# ,-+3+# ,$%# 5+.23# .92%.(0# $-+2+# !# :%&'(# /%,# 8)7+# ,-+4# .''# ,-+# .,,+/,)%/# ,-+5#(+3+27+(;#!#8&+33#!#$%&'(#6.5#,-+4#9.:*#6.2,#%1#,-+#.,,+/,)%/#,-+5#92%&8-,# 4+;# !# .'3%# -.7+# ,%# 4+/,)%/# 45# 3)3,+2# <+2+3.# ./(# .&/,# =.24+/# 1%2# ,-+)2# &/:%/(),)%/.'# 3&66%2,# .''# %7+2# ,-+3+# 5+.23;# >.2,.0# !# .4# 3%# 3%225# 1%2# /%,# 9+)/8# ,-+2+#$-+/#5%&#/++(+(#),;#<-./*#5%&#.''#3%#4&:-;## ?%2#(%#!#$./,#,%#1%28+,#.9%&,#45#:'.334.,+30#$-%#-.7+#4.(+#45#,)4+#.,# @/)7+23),5#.#4+4%2.9'+#+A6+2)+/:+#.,#9%,-#6'.:+30#>.(2)(#./(#?+$#B.',C;## !#:.//%,#1%28+,#.''#,-+#-+'6#:%4)/8#12%4#45#.(7)3%2#D2;#E.C)2);#F+#.'$.53# -.3#4%,)7.,+(#4+#,%#*++6#,-+#+/8)/++2)/8#./(#.:.(+4):#:%/3)3,+/:5#(&2)/8#,-+# 3+/)%2# (+3)8/# 62%G+:,;# H/(# -+# -.3# )/3,)''+(# )/# 4+# ./# )/,+2+3,# )/# ,-+# $)2+'+33# :%44&/):.,)%/#353,+43;# <-./*3# ,%# IHJH# <+:-/%'%8)+3# ./(# ,-+# K/8)/++2)/8# D+6.2,4+/,# 12%4# L@?M#?+$#B.',C#$-%#-.7+#-+'6+(#4.*+#,-)3#62%G+:,#:%4+#,%#12&),)%/#$),-#,-+)2# 3&66%2,;# # H'3%# !# $./,# ,%# 3-%$# 45# 82.,),&(+# ,%# !=H!# .,# =%4)''.3# @/)7+23),5# 1%2# 92)/8)/8# 4+# ,-+# %66%2,&/),5# ,%# 3,&(5# .92%.(# ,-+3+# '.3,# ,$%# 5+.230# $),-# ./# +36+:).'#4+/,)%/#,%#H'+A./(2.#N%9)3%/0#H'9+2,%#O./4.,,)#./(#J&)3#B.8%'.;# # # # # # # "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!"! ! ! ! "#$%&!'(!)'*+,&-"./! " " !"#$%&'()*+)!&,#-*.(*/&)-&."-() ) ) " " " " #$%&"'("%)*+,-" " " " " " " " " ." #$%&"''("/0+1+230"45,6)7" " " " " " " " 89" #$%&"'''(":;),"<=15=>" " " " " " " " .?" #$%&"'@("4+5,0)"A+B)" " " " " " " " CD" #$%&"@("E=-=;F))-;" " " " " " " " " GC" " " " " " " H?8" !"#$%&'()***0)('*#23),.&#*4*#2(*"',),1&&()) ) ) H?C" " " " " " " H?9" HLH" " !"#$%&'()**0)),#1&%2(*#,)" " HI /0+1+230"=1B"/1J31)),31J"A+1;-,=31-;" " KI /1J31)),31J"4-=1B=,B;" " " " " !"#$%&'()*/0).-"5&#()6$!7&() ) ) ) ) ) HL?" HI #,3103*=>"A+2*+1)1-;" " " " " " " HL8" KI :13-"#,30)" " " " " " " " HLC" ?I #=,-3=>"&+-=>3-3);" " " " " " " " HL9" LI M)1),=>"N5BJ)-" " " " " " " " H8H" " " " "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!! ! ! ! ! ! ! ! ! "#$%&'()!*+!!"',$-*.)*/'!-'.#-)!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "#$%&!'(!)'*+&*+,! " #$%&"'(")*+,%&"" !"#$%&'()*" " " " " " " """" """""-" 2" +,-./01!-+/,( .(.(" #%,/*0&"1,&23$&2,4" 5" .(!(" #%,/*0&"67/*0&23*8" .9" .(:(" #%,/*0&"1*&;,<,=,>?" .!" .(@(" )*8,A%0*8"B8*<" .@" .(C(" #%,/*0&"D2E*&$7=*" .@" !"#$%&'(3*" 4,4567+7(/8(7/51-+/,7( )9" !(.(" F$%7**" .-" !(.(.(!("""K=A*&,,&;"L,G"M4*%>?" .N" !(.(.(:("""OPD"Q"OPDR" !9" !(!(" S24$="T*0282,4",4"H2%*=*88"#%,&,0,=" !." !(:(" D*U$8"'48&%AE*4&8"VV!C@9" !!" !"#$%&'(:*" 4.!;+-" :(.(" #%2402+$="V,E+,4*4&8" !C" :(!(" 120%,0;2+"VV!C@9" !C" :(:(" 1OW'1"L*3*="V,43*%&,%" !C" :(@(" O4&*44$"$4<"K$=A4"V2%0A2&" !-" :(C(" SOLO"V,4&%,==*%" !N" :(-(" V,EEA420$&2,48" !X" :(-(.(" )I!:!" !X" :(-(!(" K=A*&,,&;"@(9" :9" !"#$%&'(?*" .7@3:3(!/==1,+!4-+/,( :)" @(.(" '4&%,"I0;*E$&20" :!" @(!(!(" #248" ::" @(!(:(" BO)D"D%$48E2&(" :@" @(!(@(" BO)D")*0*23*<" :@" @(!(C(" K$A28&*%8" :-" @(:(" BO)D"#%,&,0,="$4<"#%,>%$EE24>" :-" @(:(.(" )I!:!"V,EEA420$&2,4"S=,G"V;$%&" :-" @(:(!(" BO)D"'42&2$=2[$&2,4" :5" "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!! ! ! ! ! ! "#!#!#$ %&'($)*+,$ !-$ "#!#"#$ %&'($./01+$ "2$ "#!#3#$ %&'($'+45$ "2$ "#!#6#$ %&'($789:+$ ";$ "#"#$ <&=&$(+>?,0/0@9+1$A80:0>0/$ "!$ !"#$%&'()*$ 6)$ +,-./00/1(!022-34!5/403( 3#;#$ B,:805C>:90,$ "3$ 3#D#$ E=F$A80:0>0/$E419>1$ "3$ 3#D#;#$ G+,+89>$&>>+11$A80H9/+$IG&AJ$ "6$ 3#D#D#$ G+,+89>$&::89KC:+$A80H9/+$IG&((J$ "L$ !"#$%&'(7*$ 8.9-,/9(53:(!03!,-94039( );$ !"#$%&'(<*$ =-/-8.(:.>.,0?2.3/9( )7$ E9K/90@84*?M$ 3L$ $ A48:$BB#$F>0,0N9>$OC8P+M$ $ $ $ $ $ $ $$$3Q$ A48:$BBB#$%1+8$R4,C4/$$ $ $ $ $ $ $ $$$6!$ A48:$BS#$O0C8>+$.05+$$ $ $ $ $ $ $ $$$L2$ A48:$S#$T4:41?++:1$ $ $ $ $ $ $ $ $$$-L$$ ! ! ! ! ! ! "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!! ! ! ! ! ! ! "#$%&!'(!)*+,-&.! ! "#$%&'()*(+&,-'./(0121$'3'2/(0'/4,5,6,$7( )8( "#$%&'(9*(:12//(;#1$&13(,<(/4'(=&,-'./( )>( "#$%&'(8*(?@13=6'(,<(A#$B''(C,=,6,$7( )D( "#$%&'(!*(C'.42#.16(E='.#<#.1/#,2(F6%'/,,/4(G,H(?2'&$7(2'/H,&I( )J( "#$%&'(>*(?@13=6'(,<(KLC(3'E4(2'/H,&I( 9M( "#$%&'(N*(F6,.I(;#1$&13(OO9>!MP( 98( "#$%&'(D*(Q1&5H1&'(R2.6%5'5(H#/4(OO9>!M;ST0#2#P( 9!( "#$%&'(U*(V7E/'3(K&.4#/'./%&'P( 9>( "#$%&'(J*(01@#3%3(+,H'&(;'6#W'&'5(1/(X%1&/'&(Y1W'6'2$/4( 9N( "#$%&'()M*(?3#EE#,2(+1//'&2(,<(1(;#=,6'(K2/'221P( 9D( "#$%&'())*(0,2,=,6'(K2/'221(Z/#6#[#2$(:L;(+612'(1E(12(?<<'./#W'(\(]!(K2/'221(?6'3'2/P( 9D( "#$%&'()9*(V#$216E(B'<,&'(125(1*(0K_899!(V.4'31/#.( 88( "#$%&'()N*(OO9>!M(=#2EP( 8!( "#$%&'()D*(V#3=6'(O,33%2#.1/#,2(ZK^C(125(FC(<6,HT.41&/( 8D( "#$%&'()U*(FG?(+&,/,.,6(V/1.I( !>( "#$%&'()J*(F1E#.(?@13=6'(,<(.,2<#$%&1/#,2( !U( "#$%&'(9M*(^'15(O41&1./'&#E/#.(`16%'( !J( "#$%&'(9)*(^'15(O41&1./'&#E/#.(%E#2$(ZZR;( !J( "#$%&'(99*(;#E.,W'&(O41&1./'&#E/#.(B7(ZZR;( >M( "#$%&'(98*(Y&#/'(O41&1./'&#E/#.(`16%'( >M( "#$%&'(9!*(:KCC(K//&#B%/'(G#E/( >)( "#$%&'(9>*(O,22'./#,2(?E/1B6#E4'5(125(Y&#/'(](^'15(<&,3(F6%'/,,/4(%E#2$(FC,,6P( >8( "#$%&'(9N*(+&,5%./(G#<'(O7.6'P( N)( "#$%&'(9D*(G,$#.16(a&$12#[1/#,2(,<(K==6#.1/#,2(125(FG?(V/1.IP( N!( "#$%&'(9U*(01#2(H#25,H(FC,,6P( N!( "#$%&'(9J*(L'H(;'W#.'(Y#25,HP( N>( "#$%&'(8M*(V'(+,&/(V'//#2$E(H#25,HP( N>( "#$%&'(8)*(V/1/%E(H#25,H(<&,3(FC,,6P( N>( "#$%&'(89*(^#$4/(S'7<,B(F%//,2P( NN( "#$%&'(88*(;#E.,W'&]O,22'./(C1EI(,2(FC,,6P( NN( "#$%&'(8!*(G#2I(O,2/&,6(FC,,6P( ND( "#$%&'(8>*(V/1/%E(,<(.,22'./#,2('W'2/P( ND( "#$%&'(8N*(O,22'./#,2('W'2/(<1#6'5P( NU( "#$%&'(8D*(Y&#/'(1(O41&1./'&#E/#.(`16%'(%E#2$(Q1256'P( NU( "#$%&'(8U*(O41&1./'&#E/#.(^'15(%E#2$(FC,,6P( NJ( "#$%&'(8J*(^'15(%E#2$(O41&1./'&#E/#.(ZZR;P( NJ( "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!! ! ! ! ! ! !"#$%&'(&)*+,$-& " #$%&'"()"*+,-$./0+1"+2"3&4'5++56"789:";/<%'':"$1=">?#8" @@" #$%&'"@)"**@!79"A+B'."*+104,-5/+1"C'$54.'08" @D" #$%&'"D)"A/1"E/<1$&"F'0G./-5/+18" @H" #$%&'"7)""*+,,+1&I"J0'="3$4=KL$5'"E'55/1<0" D!" #$%&'"!)"J>L#"A+.508" 7@" #$%&'"M)"3$4="L$5'08" 7D" #$%&'"N)"*$&&%$GO"PQ'1508" 7D" "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!! ! ! ! ! ! ! ! ! ! ! ! ! "#$%!&'!$(")$%!! ! ! ! ! ! ! ! ! ! ! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( " " !"#$%&'()* +,-./01!-+/,( " ( )*)* 2'34&5%(63%78#%739( #$%$"&'()("*+,)"-./&'("$0/"12.3+&'("$2)"0."*.04)2"%5)"/)"3$6%."(%$0/$2/" 3.2" +0/'(%2+$*" 6.77'0+6$%+.0(8" 9%5)20)%" 5$(" .:)2%$,)0" &.%5;" 9%5)20)%" $66.77./$%)("$"<+/)"2$04)".3"$==*+6$%+.0(>"5$("&)6.7)"'0+:)2($**?"('==.2%)/" &?"6.77'0+6$%+.0(")@'+=7)0%"7$0'3$6%'2)2(>"$0/"6.'0%(")$()".3"6.03+4'2$%+.0" $0/" *.<" 6.(%" $7.04" +%(" 7$0?" $/:$0%$4)(;" 9%5)20)%" $*(." )$(+*?" )06$=('*$%)(" +0/'(%2+$*")@'+=7)0%"=2.%.6.*("$0/"+("@'+6,*?"&)6.7+04"%5)"(%$0/$2/".3"65.+6)" 3.2"7$0?"(5.2%A2$04)"6.77'0+6$%+.0("*+0,(;" B.2"$**".3"+%("$/:$0%$4)(>"5.<):)2>"<+2)/"9%5)20)%"(5$2)(".0)"(+40+3+6$0%" /2$<&$6,"<+%5".%5)2"<+2)/"+0/'(%2+$*"0)%<.2,+04"$==2.$65)(C"6$&*+04>"/+(%$06)" $0/" 6.(%" *+7+%$%+.0(" $((.6+$%)/" <+%5" <+2)/" *+0,(" ('23$6)" @'+6,*?" .0" (=2$<*+04" 3$6%.2?" 3*..2(" $0/" +0" *$24)" +0/'(%2+$*" ()%%+04(>" $0/" 2'00+04" 6$&*)" %." 0)<" .2" 2)*.6$%)/" )@'+=7)0%" 6$0" +0%)22'=%" =2./'6%+.0;" D5)()" 5$2/<+2+04" /2$<&$6,(" 5$:)"*)/"7$0?"%."()),"$"*.04)2"2$04)"$0/"7.2)"3*)E+&*)"$*%)20$%+:)"+0"<+2)*)((" 9%5)20)%;" FG+2)*)((" 9%5)20)%>H" %5)" 4)0)2$*" /)(62+=%.2" $==*+)/" %." <+2)*)((" *+0,(" <+%5+0" $0" 9%5)20)%" 0)%<.2,>" +(" $0?" .:)2A%5)A$+2" 6.00)6%+.0" &)%<))0" 9%5)20)%" 0)%<.2," 0./)(" .2" /):+6)(;" B.2" )E$7=*)>" <+2)*)((" 9%5)20)%" +(" .3%)0" '()/" %." &2+/4)" =5?(+6$**?" ()=$2$%)/" 0)%<.2," ()47)0%(" .2" %." 6.00)6%" 2)7.%)*?" *.6$%)/" )@'+=7)0%"%."$0.%5)2"9%5)20)%"/):+6)".2"0)%<.2,;" I$&*+04" 0)6)(($2+*?" %)%5)2(" )@'+=7)0%" %." 3+E)/" *.6$%+.0(>" %5'(" 2)/'6+04" 3*)E+&+*+%?" +0" )@'+=7)0%" =*$6)7)0%" $0/" 2).24$0+J$%+.0;" D'20+04" %." <+2)*)((" 9%5)20)%"%)650.*.4?"$//2)(()("%5)"6$&*+04"/2$<&$6,(".3"5$2/<+2)/"6.00)6%+.0(;" K("+%"'()("2$/+."%)650.*.4?>"5.<):)2>"()*)6%+04"$0"$==2.=2+$%)"<+2)*)(("9%5)20)%" (.*'%+.0" 2)@'+2)(" )E$7+0+04" <+2)*)((" 9%5)20)%L(" %2$0(7+((+.0" $0/" .=)2$%+.0$*" 65$2$6%)2+(%+6(;" M0" +0/'(%2+$*" $0/" 3$6%.2?" ()%%+04(>" %5)" 2+45%" $==2.$65" 7'(%" /)*+:)2"5+45A=)23.27$06)"6.77'0+6$%+.0("<+%5.'%"($62+3+6+04"(=))/>"3*)E+&+*+%?>" 2$04)>".2"2)*+$&+*+%?;" 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( "#$%&' ()**%(+#)*,' +)' ,%*,)$,-' .(+/.+)$,-' %0/#12%*+-' ()*+$)33%$,' .*&' ()21/+%$,' 4)$5' 4%33' #*' 2.*6' ,#+/.+#)*,7' 89%$%' .$%' .' */2:%$' );' ,#+/.+#)*,-' 9)4%<%$-' 49%*' 4#$%3%,,' ()**%(+#)*,' .$%' 2)$%' 1$.(+#(.37' 89),%' ,#+/.+#)*,' #*(3/&%='89%'%0/#12%*+'+)'()**%(+'#,'.3$%.&6'&%13)6%&')$'#*,+.33%&-'.*&'#+'4)/3&' :%' %>1%*,#<%-' &#;;#(/3+' )$' #*+%$$/1+' )1%$.+#)*,' +)' $%+$);#+' 4#+9' 4#$#*?7' 89%' %0/#12%*+' +)' ()**%(+' #,' .+' .' ;.(#3#+6' ()*+$)33%&' :6' ,)2%)*%' %3,%' @%7?7-' +9%' (/,+)2%$A,' 1$%2#,%,B' .*&' #+' 4#33' :%' .' &#;;#(/3+' 1$)(%,,' +)' *%?)+#.+%' +9%' #*,+.33.+#)*' );' 4#$#*?7' C*,+.33#*?' 4#$#*?' 4)/3&' :%' #*+$/,#<%-' &#,$/1+#<%-' ()213#(.+%&')$'/*.++$.(+#<%7'89%'%0/#12%*+'+)'()**%(+'#,'2)<%.:3%')$'1)$+.:3%-' .*&' 4#33' 1$):.:36' :%' $%3)(.+%&' 1%$#)&#(.3367' 89%' ()**%(+#)*' #,' .*' .&' 9)(' ()**%(+#)*' )$' 4#33' :%' )*36' *%%&%&' +%21)$.$#367' D/+' +9%' 1$#2.$6' $%.,)*' 496' 4#$%3%,,' ()**%(+#)*,' .$%' #*($%.,#*?36' :%#*?' 1$%;%$$%&' +)' 4#$%&' ()**%(+#)*,' #,' :%(./,%'+9%6'.$%'3%,,'%>1%*,#<%7'E<%$'+#2%-'+9%'(),+');'4#$%3%,,'()**%(+#<#+6'9.,' &%(3#*%&' &$.2.+#(.336-' 49#3%' +9%' (),+' );' 2.+%$#.3,' .*&' #*,+.33.+#)*' 3.:)$' ;)$' 4#$#*?'9.,'#*($%.,%&7'"#$%3%,,'()**%(+#)*,'.$%'*)4'+9%'3)4%$'(),+'.11$).(9'#*' 2.*6',#+/.+#)*,7' "#$%3%,,' ()**%(+#<#+6' ,)3/+#)*,' (.*' :%' /,%&' #*' 9.$,9' %*<#$)*2%*+.3' ()*&#+#)*,' F/,+' .,' $%.$' .,' 4#$%&' ()**%(+#)*,7' "9%+9%$' +9%' %*<#$)*2%*+.3' ,+$%,,' ()2%,' ;$)2' %>+$%2%' +%21%$.+/$%,-' <#:$.+#)*-' ()$$),#<%' ?.,%,-' )$' ,)2%' )+9%$' ()*&#+#)*-' .' 4)$5.:3%' 4#$%3%,,' ,)3/+#)*' (.*' :%' &%,#?*%&7' C*' ,)2%' ,#+/.+#)*,'.'4#$%3%,,'()**%(+#<#+6'.11$).(9'2.6':%'#*+$#*,#(.336',.;%$'+9.*'/,#*?' +9%' (.:3#*?' .*&' ()**%(+)$,' );' .' 4#$%&' ()**%(+#)*-' ,/(9' .,' %*<#$)*2%*+,' 4#+9' 9#?9'<#:$.+#)*')$'1)+%*+#.336'%>13),#<%'?.,%,7' 89%'(9)#(%');'49#(9'4#$%3%,,'+%(9*)3)?6'+)'/,%'&%1%*&,')*'.'()213%>',%+' );' %*?#*%%$#*?' .*.36,#,' +9.+' $%0/#$%,' ,#?*#;#(.*+' %>1%$+#,%' .*&' %>1%$#%*(%' #*' $.&#)';$%0/%*(6'@GHB'()22/*#(.+#)*,-'+)?%+9%$'4#+9'.*'#*I&%1+9'5*)43%&?%');' +9%'.113#(.+#)*'.*&'#+,'$%0/#$%2%*+,7'J)',#*?3%'4#$%3%,,'+%(9*)3)?6'#,'+9%':%,+' 1$#(%' .*&' 1%$;)$2.*(%' ,)3/+#)*' ;)$' %<%$6' .113#(.+#)*7' 89%' (9)#(%' );' 49#(9' 4#$%3%,,' +%(9*)3)?6' +)' /,%' 4#33' .34.6,' #*<)3<%' 2.5#*?' +$.&%I);;,' .2)*?' 2/3+#13%' 1.$.2%+%$,' K' (),+-' $.*?%-' &.+.' $.+%-' $%3#.:#3#+6-' 1)4%$' ()*,/21+#)*-' +%(9*)3)?6'3#;%-',(.3.:#3#+6-'.*&')+9%$,7'' L#?D%%'#,'+9%'2),+'1)1/3.$'#*&/,+$6'4#$%3%,,'2%,9'*%+4)$5#*?',+.*&.$&' ;)$'()**%(+#*?',%*,)$,-'.(+/.+)$,-'#*,+$/2%*+.+#)*-'.*&'()*+$)3',6,+%2,7'L#?D%%' 1$)<#&%,' ,%<%$.3' :%*%;#+,' F/,+' :%(./,%' #+' #,' .*' #*&/,+$6' ,+.*&.$&' ,/11)$+%&' :6' 2/3+#13%',)3/+#)*'1$)<#&%$,7'L#?D%%',)3/+#)*,'.$%'$%3.+#<%36'#*%>1%*,#<%':%(./,%' ,%<%$.3' ,/113#%$,' 9.<%' .3$%.&6' #213%2%*+%&' L#?D%%I:.,%&' #*+%?$.+%&' (#$(/#+,' 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( "#$% &'$()*+% ,#% "#-,.,/"-,'#% '0% 1,21% 3')(&*+% 0'4% "% +-"#$"4$% +')(-,'#5% 6,27**8 9"+*$% +')(-,'#+% ")+'% '00*4% (+*4+% ,#$*/*#$*#.*% 04'&% "#:% '#*% +(//),*4% 9*."(+*% '#*% .'&/"#:;+% 6,27**% #*-<'4=,#2% +')(-,'#% ."#% 9*% +(9+-,-(-*$% 0'4% "#'-1*4;+5% 6,27**% ")+'% '00*4+% -1*% /'-*#-,")% 0'4% ,#-*4'/*4"9,),-:% "&'#2% $,00*4*#-% +(//),*4+;% /4'$(.-+5%>,#")):?%,#%-1*'4:?%"%6,27**%"//),."-,'#%$*/)':*$%,#%"%)'."-,'#%."#%(+*% '-1*4%*@,+-,#2%6,27**%#'$*+%,#%-1"-%)'."-,'#%-'%*@-*#$%,-+%4"#2*%"#$%,&/4'3*%,-+% .'&&(#,."-,'#%4*),"9,),-:?%")-1'(21%-1*4*%"4*%+*.(4,-:%"#$%'-1*4%,++(*+%<,-1%-1,+% "//4'".1%,#%/4".-,.*%[1]5% A1*% BCCC% DEF5GG% H'4% I,>,J% 0"&,):% '0% <,4*)*++% )'.")% "4*"% #*-<'4=% +-"#$"4$+% 0'4% /*4+'#")% .'&/(-*4+% ,+% #'-% 2*#*4")):% .'#+,$*4*$% 0'4% +*#+'4% "#$% ".-("-'4% .'##*.-,3,-:% 9*."(+*% ,-% .'#+(&*+% "% 1,21% )*3*)% '0% /'<*4?% ,-% +(//'4-+% &(.1% &'4*% 9"#$<,$-1% -1"#% <,4*)*++% +*#+'4% #*-<'4=+% 4*K(,4*?% ,-% 4*K(,4*+% "#% *@/*#+,3*% "..*++% /',#-% ,#04"+-4(.-(4*% "#$% ,+% #'-% ,#1*4*#-):% "% &*+1% #*-<'4=% H")-1'(21% -1*4*% "4*% /4'/4,*-"4:% -1,4$% /"4-:% +')(-,'#+% -1"-% '3*4)":% "% &*+1% '/*4"-,'#J?%"#$%,-%4*K(,4*+%&'4*%&"#(")%*00'4-%-'%.'#0,2(4*%"#$%"$&,#,+-*4%-1"#% ,+%"//4'/4,"-*%L(+-%0'4%+*#+'4%#*-<'4=,#25%% 7)(*-''-1%)'<%*#*42:%-*.1#')'2:%'00*4+%()-4"8)'<%/'<*4%+-"-*8'08-1*8"4-% .'&&(#,."-,'#% ."/"9,),-,*+% 0'4% .'#+(&*4% &*$,.")?% &'9,)*% "..*++'4,*+?% +/'4-+% "#$%<*))#*++%"//),."-,'#+5!"#$%&''&(%)'<%*#*42:%<,4*)*++%-*.1#')'2:%.'#+(&*+% '#):% "% 04".-,'#% '0% -1*% /'<*4% '0% M)"++,.% "#$%&''&(% 4"$,'+5% "#$%&''&(! )'<% *#*42:% -*.1#')'2:%*@-*#$+%-1*%(+*%'0%"#$%&''&(!<,4*)*++%-*.1#')'2:%-'%$*3,.*+%-1"-%"4*% /'<*4*$% 9:% +&"))?% .',#8.*))% 9"--*4,*+% +(.1% "+% <"-.1*+% "#$% -':+5% N-1*4% $*3,.*+% +(.1%"+%+/'4-+%O%0,-#*++?%1*")-1%."4*?%1(&"#%,#-*40".*%HPBQ+J%),=*%=*:9'"4$+%"#$% &,.*%"#$% *#-*4-",#&*#-% $*3,.*+% <,))% ")+'% 9*% *#1"#.*$% 9:% -1,+% 3*4+,'#% '0% -1*% -*.1#')'2:5%B#%&"#:%."+*+?%,-%&"=*+%,-%/'++,9)*%-'%'/*4"-*%-1*+*%$*3,.*+%0'4%&'4*% -1"#%"%:*"4%<,-1'(-%4*.1"42,#25! R+%<,-1%/4*3,'(+%3*4+,'#+%'0%-1*%+/*.,0,."-,'#?%-1*%4"#2*%'0%-1*%"#$%&''&(% 3S5E%4"$,'%&":%9*%'/-,&,T*$%"..'4$,#2%-'%"//),."-,'#5%A1*%&"L'4,-:%'0%"#$%&''&(% $*3,.*+%'#%-1*%&"4=*-%-'$":%,#.)($*%-1*%9"+,.%UE%0''-?%'4%GE%&*-*4?%4"#2*%'0%-1*% M)"++,.%"#$%&''&(%4"$,'?%9(-%-1*4*%,+%#'%),&,-%,&/'+*$%9:%-1*%V/*.,0,."-,'#5%I,-1% "#$%&''&(% 3S5E?% &"#(0".-(4*4+% &":% .1''+*% -'% '/-,&,T*% 4"#2*% -'% FEE% 0**-% "#$% 9*:'#$?% /"4-,.()"4):% 0'4% ,#81'&*% +*#+'4% "//),."-,'#+% <1*4*% )'#2*4% 4"#2*% ,+% "% #*.*++,-:5% A1*% "//),."-,'#% <,))% (+(")):% 1"3*% -1*% +"&*% .'##*.-,'#% -'% -1*% <,4*)*++% #*-<'4=%-1"-%,-%1"+%-'%"%<,4*%#*-<'4=5%>'4%*@"&/)*?%,0%-1*%"//),."-,'#%.'##*.-+% '3*4% "#% WV8FUF% +*4,")% .'##*.-,'#% '4% '3*4% "#% C-1*4#*-% .'##*.-,'#% -'% 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( #$%%&'(#)*+,-(*.,-(/+0,1+'1$/1,)'0,)#*&)*$/12,*.+',(*,-(33,&1+,*.+,1)%+,4)1(#, #$''+#*($', *$, #$%%&'(#)*+, -(*., *.+, -(/+3+11, '+*-$/56, 7', *.+, #)1+, $8, *.+, -(/+3+11,'+*-$/52,.$-+9+/2,*.+,)::3(#)*($',(1,#$''+#*(';,),1(';3+,-(/+3+11,'$0+, *.)*,(1,*.+,#$'*)#*,:$('*,8$/,#$%%&'(#)*($'1,-(*.,)33,$8,*.+,$*.+/,-(/+3+11,'$0+16, <.+, '$0+, *.)*, #$''+#*1, *$, *.+, )::3(#)*($', (1, #)33+0, ), 4)1+, 1*)*($', '$0+, $/, ), ;)*+-)=,'$0+6, ! "#$# %&'()*+!,-()*+./)0! <.+/+, (1, ), 0+1(/+, *$, +>:)'0, *.+, #):)4(3(*(+1, )'0, 8+)*&/+, 1+*, $8, *.+, ?@A@, 1$3)/, 1=1*+%, #$'*/$33+/6, B&//+'*3=2, *.+, #$'*/$33+/, $&*:&*1, /+3+9)'*, 0)*), 9(), )', CDEFE,GD+/()3H,:$/*6,D$%+,+>)%:3+1,$8,*.+,*=:+1,$8,0)*),)9)(3)43+,)/+I, !"#$%%&'(")%$%*)"+,$-$,.%(/"0&$1%02"" !"345&'".674*%"" !"8*6'.)&7)*6)&%"%.9&)"" !"8.:6";'.:0%6&))" !"345&'"9$6$:&9&6%"4-%.46)" <.+, ;$)3, (1, *$, 0+9+3$:, 1$%+, *=:+, $8, -(/+3+11, 0+9(#+, *.)*, -$&30, ;(9+, #&1*$%+/1, *.+, $:*($', *$, .)9+, ), -(/+3+11, %$'(*$/(';, 1=1*+%, 8$/, *.+(/, 1$3)/, 1=1*+%1,*.)*,-$&30,)11(1*,(',%)('*+')'#+,)'0,1*)*&1,&:0)*+16,<.(1,0+9(#+,-$&30, )33$-, ), %)('*+')'#+, -$/5+/, *$, -)35, :)1*, *.+, 1*/++*3(;.*1, $/, 1$3)/, 1(;'1, )'0, $4*)(', ('8$/%)*($', )4$&*, *.+, 1(;'J1, 1*)*&1, )'0, :+/8$/%)'#+, G'+-, 4)**+/=, '++0+0KH, 70+)33=2, (8, 1$%+*.(';, -+/+, -/$';, -(*., ), 1(;'2, *.(1, 1)%+, *$$3, -$&30, )33$-, *.+, %)('*+')'#+, -$/5+/, *$, /+L:/$;/)%, #+/*)(', #$'8(;&/)*($', $:*($'1, $8, *.+,1(;'6, <.+,0+1(/)43+,8+)*&/+1,$8,*.+,:/$M+#*,-(33,4+I,, ! @,&1+/,1.$&30,4+,)43+,*$,-(/+3+113=,#$%%&'(#)*+,-(*.,*.+,1(;',&:, *$,!"%6 ! 7*, 1.$&30, 4+, +)1=, 8$/, ), '$'L*+#.'(#)3, 3)=L:+/1$', *$, 0$-'3$)0, $/, /+*/(+9+,0)*)6 ! N)*),1.$&30,4+,0(1:3)=+0,#3+)/3=,(',1$%+,*=:+,$8,&1+/,('*+/8)#+6, ! @09)'#+0,8+)*&/+I,<.+,)4(3(*=,*$,0$-'3$)0,3)/;+,)%$&'*1,$8,0)*), G&:,*$,OP""QRH,S,*.+,/+)1$'(';,(1,1$,-+,#$&30,:)(/,*.(1,-(/+3+11, 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!"! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( "#"$%&' ()$*' +' ,+$+' -.//%0' +1,' $*%1' *+2%' $*%' +3)-)$#' $.' $0+1"&)$' &.1$*"'(.0$*'.4'")/1',+$+'()0%-%""-#5' ! 60.2),%' $*%' "#"$%&' ()$*' +' 7)80.9:' 8+0,' ".' $*+$' )$' )"' ;."")3-%' $.' "$.0%'$*%')14.0&+$).15' <*%';.$%1$)+-';0.=%8$';)$4+--"'8.>-,'3%?''' ! <*%'()0%-%""'8.&&>1)8+$.0'-.8+$%,')1"),%'.4'$*%'")/1'()--'*+2%'$.' $0+1"&)$'$*0.>/*'+1#';*#")8+-'.3"$+8-%"')1';-+8%@'&+)1-#'$*%'&%$+-' ")/1'3.A5'B$'1%%,"'$.'3%',%$%0&)1%,'(*+$')"'0%C>)0%,'$.'.3$+)1'$*%' ,%")0%,'$0+1"&)"").1"5' ! <*%0%' )"' $*%' ;.$%1$)+-' $.' 3%' )1' 0+1/%' .4' &>-$);-%' ()0%-%""' ")/1' )1$%04+8%"' +$' .18%5' <*%' 8-)%1$' 8.&&>1)8+$.0' &>"$' 3%' +3-%' $.' ,)"$)1/>)"*'3%$(%%1'"%;+0+$%'".-+0'"#"$%&"')1'0+1/%'+1,'>1)C>%-#' 8.&&>1)8+$%'()$*'%+8*5' ! <*%' ,%2%-.;&%1$' 8."$' .4' $*%' ;0.=%8$' 1%%,"' $.' 3%' "&+--' 3>$' DEFE' &+#' 8.1"),%0' ".>08)1/' +' ;0)1$%,' 8)08>)$' 3.+0,' ;%0' +1' +;;0.2%,' "8*%&+$)85' E"' &>8*' (.0G' +"' ;."")3-%' "*.>-,' 3%' ,.1%' .1' ,%2%-.;&%1$'+1,';0.$.$#;)1/'3.+0,"'3%4.0%'$*)"'(.>-,'$+G%';-+8%5' <*%0%' +0%' ".&%' )&;.0$+1$' 0%C>)0%&%1$"' ,>%' $.' $*%' )&;-%&%1$+$).1' .4' $*%';0.=%8$'4.0'DEFE'+"'+'8.&&%08)+-'/+,/%$'[2]5'' 6*#")8+-'H%C>)0%&%1$"?' I'9)J%?'9&+--%0'$*+1'+'K')1L5' I'M%)/*$?'F%""'$*+1'!'-35'' I'N."$?'O!PQ'.0'-%""')1'-.$'")J%"'.4'PQ'RD)1+-';0.,>8$S5' T12)0.1&%1$+-'H%C>)0%&%1$"?'' I'<%&;%0+$>0%?'IUVWN'$.'XYVWN'.;%0+$).1'' I'Z>&),)$#?'V'$*0.>/*'KQ['HZ5'' I'9#"$%&'"*.>-,'3%'0%")"$+18%'+/+)1"$'8.1,%1")1/'&.)"$>0%5'' I'9*.8G?'N+;+3-%'.4'">02)2)1/'+'L\',0.;'.1$.'3-+8G$.;5' ' ' 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!!! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( #$%&'$%()*(+,-%(.(/012) 3) 45,(066078*9) '-%(5(11) 0%$/1.-11-6/) 6:) &$0$) ;(0'((/) 07() 165$%) <6/0%655(%=1)*>"?")@>(%-$5A)B6%0)$/&)$)7$/&7(5&)&(C-<()C-$)$),1(%) -/0(%:$<(D) - E%$/1<(-C(%) -/) 1-F/) '-55) B-FFG;$"?"D) 3) Q1() 6:) <6..(%<-$55G) $C$-5$;5() .6&,5(1) -1) $556'(&) :6556'-/F) 9RSR)(/F-/((%-/F)$BB%6C$5D) 3)>.$55)<6.B6/(/0)<6,/0)@56')<610AD) >6:0'$%()*(+,-%(.(/012) 3)R;-5-0G)06)+,(%G)07()1-F/)$/&)%(+,(10)<(%0$-/)&$0$)0%$/1.-11-6/D) - R;-5-0G)06)%(<(-C()$/&)B$%1()%($530-.()1-F/)56F)0%$/1.-11-6/1)$/&) &-1B5$G)%(5(C$/0)&$0$)-/)$/)-/0(%:$<(D) - E%$/1.-11-6/1).,10)-/<5,&()$)<7((<,%-0G)06)6/5G)$556')B%-C-5(F(&),1(%1)$<<(11D) ) !"#" $%&'()*+,(*-&.&/&01+ T(076&656FG)-1):6%.$55G)&(:-/(&)$1)U$);6&G)6:)B%$<0-<(1O)B%6<(&,%(1O)$/&) %,5(1) ,1(&) ;G) 0761() '76) '6%H) -/) $) &-1<-B5-/() 6%) (/F$F() -/) $/) -/+,-%GV [3]D) T(076&656FG)B5$G1)$)C-0$5)%65()-/)B%6W(<0).$/$F(.(/0D)M-07)07()7(5B)6:)&-::(%(/0) -/0(F%$0(&) B%6<(11O) .(076&656FG) <$/) B(%:6%.) :6556'-/F) %65(1) -/) B%6W(<0) .$/$F(.(/0D) ) 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!"! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( #$%&'()&'$%*+,$-.$/0-1&)2$34*5(0&6$ #$78)0&4+&'$9..*)*&8):;/0-'()2*<*2:6$ #$7=>0-<&'$?(45*2:6$ #$7=>0-<&'$@-==(8*)42*-8+6$ #$/0-<*'&$@-8+*+2&8):6$ 78$.*A(0&$!$*2$*+$+B-C8$2B&$=&2B-'-5-A:$>0-)&++$(+&'$*8$2B*+$>0-1&)26$ $ $ 3*A(0&$!D$/0-1&)2$E484A&=&82$E&2B-'-5-A:$ $ FB&$=*5&+2-8&+$.-0$'&<&5->=&82$C-(5'$G&D$ # 78*2*42&$)-==(8*)42*-8+$G&2C&&8$,&:.-G$48'$HIJ$'-8A5&6$$ # /0-A04=$ ,&:.-G$ 2-$ 2048+=*2$ '424$ >&0*-'*)455:$ K+*=(542*8A$ 2B&$ )-820-55&0$ -(2>(2L6$ HIJ$ '-8A5&$ 2-$ 0&)&*<&$ 2B&+&$ =&++4A&+$ K+*=(542*8A$2B&$54>2->$0&)&*<&0L6$ # /0-A04=$ ,&:.-G$ 2-$ 5*+2&8$ .-0$ 4$ 2048+=*2$ 0&M(&+2$ 48'$ 2048+=*2$ '424$ CB&8$ *2$ 0&)&*<&+$ 4$ 0&M(&+26$ H+&$ HIJ$ '-8A5&$ 2-$ +&8'$ 0&M(&+2+$48'$0&)&*<&$2B&$=&++4A&+6$ 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!"! !"#$%"&!!! ! ! ! ! ! ! ! ! ! # ! ! ! '()*+,-.)/+( $%&'(&) ') *+,) -.) $/) 0%) 1'2') (3'() 4-55) 6.-76&58) 9-:;02&%) (3&) <56&(00(3) 9&2-;&=) (%'.:>-() 2'%-06:) %&76&:(:=) '.9) %&;&-2&) (3&) ;0%%&:?0.9-.@)(%'.:>-::-0.:A)) # $%&'(&) ') B0'%9) (3'() ('C&:) (3&) ?5';&) 0D) (3&) C&8D0BA) E3&) B0'%9) 4-55) %&;&-2&) FGHIH) 9'(') '.9) (%'.:>-() -() 2-') <56&(00(3) ':) 4&55) ':)%&;&-2&)<56&(00(3)9'(')'.9)(%'.:>-()-()2-')FGHIHA)) ) !"#" $%&'()*%&+,&%-+ E0) 0B('-.) (3&) ?%0J&;() @0'5:) D0%) KLML=) (3&) ->?5&>&.('(-0.) 0D) 3'%94'%&) '.9):0D(4'%&)'%&).&;&::'%8A) N'%94'%&) %&:06%;&:) 6:&9) (0) (%'.:>-() (3&) -.D0%>'(-0.) 2-') 4-%&5&::) ;0>>6.-;'(-0.) '%&) B':&9) 0.) (3&) +5(%') M04) O04&%) <56&(00(3) P) E&S':) ,.:(%6>&.(:) PE,R=) '.9) (3&) 9-DD&%&.() ?'%(:) .&;&::'%8) (0) ->?5&>&.() (3&) ;-%;6-() :6;3) ':) ') B'56.) ;-%;6-() PK%0.() Q.9) D%0>) E,R=) ') 5&2&5) ;0.2&%(0%) :0) (3'() -() >-@3() B&) ?0::-B5&) (3&) ;0..&;(-0.) B&(4&&.) (3&) IAI) T05(:) 0D) (3&) MQ<) '.9) (3&) U) T05(:)0D)(3&)FGHIHA)L5:0)-()-:).&&9&9)');%8:('5)0D)IVW3X=)'.9)')43-?)'.(&..')96&) (0)-()-:)->?0::-B5&)(0)6:&)')B0'%9)->?%&::&9)'.(&..')B&;'6:&)0D)(3&);0'(-.@A))) G0D(4'%&) :056(-0.:) 6:&9) '%&) (3&) 0.&:) .&&9&9) (0) ;0.D-@6%&) (3&) :056(-0.:) D%0>)E,=)43-;3)'%&)!"#$%&'(!%)*+,=)-#./0%(!1+220$)'.9)34&(5"60**0*(7,$/601.8A) L5:0)-()-:).&&9&9)$/)0%)1'2')?%0@%'>-.@A)) L:)')?'%()0D)(3&)3'%94'%&)->?5&>&.('(-0.=)43-5&)(3&)9&2&50?>&.()0D)(3&) ?%0J&;() 4-55) B&) D-.-:3&9=) ') O$<) 5'806() 3':) (0) B&) 90.&) -.) 0%9&%) (0) @&() (3&) D-.'5) ?%096;()D0%)KLMLA) ) !"." /)'0%*1+234%1567%+ E->&) :?&.9) D0%) &';3) 0D) (3&) 9-DD&%&.() >'-.) (':C:) -.2052-.@) (3&) ?%0J&;(=) ('C-.@)-.(0)';;06.()(3&)O%0J&;()W'.'@&>&.()W&(309050@8)(0)B&)D05504&9)'%&Y)) ) G(698):('(�D#(3&#'%()(&;3.050@8A) ) !VZ!HZHV!V)#)!VZH[ZHV!V) $3'%';(&%-:(-;:)'.9)Q;0.0>-;:)L.'58:-:A) !VZH\ZHV!V)])!!Z![ZHV!V) L5(&%.'(-2&):&5&;(-0.)'.9)B69@&(A) ) !!Z!\ZHV!V)])!!ZHIZHV!V) O04&%);'5;65'(-0.:)'.9)0%9&%)^&2A)C-(:A) !!ZH"ZHV!V)])!HZ!ZHV!V) 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!"! !"#$%"&!!! ! ! ! ! ! ! ! ! ! ! ! ! '()*+,-.)/+( #$%&'()*+,)-&.+/0+&/1-2'$)3)4/$+3$&++ !565657!7+8+7!655657!7+ (39),+/0+)*'+&',4:$;++ + + + + !565B657!7+8+7!65C657!!+ + <)39)+=/9>4$:+=4)*+?'@;+A4),;+ D,,'2EF.+3$&+)',)+/0+)*'+G9/)/%E/39&;+ 7!65"657!!+8+756!H657!!+ <1*'23)41,+3$&+GIJ+F3./-);++ + 756!H657!!+8+7B675657!!+ K',)+GIJ+(9/)/).(';+ + + + 7B67B657!!+8+7C67"657!!+ #$)':93)4/$+3$&+)',),;+ + + 7C67H657!!+8+7"67L657!!+ G9/M'1)+9'(/9);+ + + 7"67L657!!+8+7"65!657!!+ + N4:-9'+ 5+ ,*/=,+ 3FF+ )*'+ )3,>,+ &',194E'&+ '39F4'9+ 4$)/+ 3+ O3$))+ ?43:932+ &4,(F3.4$:+)42'+@,;+3,,4:$2'$);+ + + N4:-9'+5P+O3$))+?43:932+/0+)*'+(9/M'1)+ 0/*12133!4+(/)+*/(5!6+*!7+28*!793)1:3! ! ;8/31*!48(<8(+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! '()*+,-,!./!0.*12-.(, ! # "#$%&'(!)* +,+-./0/!12!/1-3401,/! # # )*5* 6$(78$('! )*5*5* 9:(';'<&>?>;!/';'?&:>@! $%&#'())(*+,-#.&/0+(,#&12)3+,.#0%&#'&3045&.#('#0%&#*+5&)&..#0&/%,()(-+&.6# 0%30#5+-%0#,(*#/(4)7#8&#'(4,7#+,#0%Χ:&0;#<,05(74/+,-#*%30#/(92(,&,0.#35&# 4.&7#+,#0%(=&/0#0(#.30+.'>#0%&?4+5&9&,0.;#$%]+,#+7&3#('#0%+.#25(=&/0#+.# (803+,# .(9&# :+,7# ('# *+5&)&..# /(994,+/30+(,# *+0%# 0%&# @ABA# /(,05())&5;# $%+.# /(994,+/30+(,#%3.#0(#8)053#)(*#2(*&5#/(,.49+,-#3.#+0#+.#7&5+C&7#'5(9#0%&# 25(=&/0#.2&/+'+/30+(,.6#.(#0%&#&C3)430&7#0&/%,()(-+&.#%3C�(#8&#.030&D('D0%&D350# )(*#2(*&5#(,&.6#.4/%#3.#E+-8&&6#F)4&0((%#B(*#G,&5->#HFBGI6#3,7#AJ$;#$%&.0# ('#0%&#*+5&)&..#25(0(/().#35&#,(0#5&3))>#322)+/38)�(#0%+.#25(=&/0;## # )*5*5*5* A:BC''! E+-8&&#+.#3#K@#0&/%,()(->#83.&7#(,#0%&#.03,7357#6#9(5�%3,#+,#2&5.(,3)#&)&/05(,+/.;## $%]+,#'&3045&.#('#E+-8&�&/%,()(->#35//(57+,-#0(#E+-8&&#A))+3,Q&# [4]6#[5]R# D B(*#/(.0;## D S)(83)#(2&530+(,#+,#N;PSTQ#'5&?4&,/>#83,7;# D A8+)+0>#0(#/(,'+-45#9&.%#,&0*(5:;# D B(*#2(*&5;#<,#$1#H053,.9+00+,-#9(7&I#E+-8&&#/(,.49&.#UM9A6# 3,7# +0# +.# 2(..+8)&# 0(# -&0# 3,# +7)&# 9(7&6# *%&5&# 0%&# 9(74)&# *+))# /(,.49&#M;UµA;#<,#0%+.#9(7&6#0%&C+/&#*3+0.#/(,.49+,-#)(*# &,&5->#0+))#0%&5&#+.#3#/3))#'5(9#0%].0&5#7&C+/&;# D $%ᲇ#053,.9+..+(,#530&#+.#3)9(.0#NOM:82.;#V(#E+-8&&#/(4)7# 8&# 4.&7# +,# 322)+/30+(,.# *%&5&# +0# +.# ,(0# 5&?4+5&7# )35-&# 7303# 053,.9+..+(,;## D $%5,-&#('#053,.9+..+(,#+.#3)9(.0#!MM#9&0&5.;## 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! # ! ! ! '()*+,-,!./!0.*12-.(, $%&'(%)* +,-.%%* '/%/* 01%* ,23'/0(4* /05235(3* 67$* 863952&%3* 72&(4:0,;2*$05235(3<*!=>#.,0?* 6*+,-.%%*2%0@;(A*/1;@2*;2*B,-'(%*C*&;2/,/0/*;D*01(%%*3,DD%(%20*3%9,&%/E* # +,-.%%*F;;(3,250;(E*G0*,/*(%/:;2/,.H%*D;(*&;20(;HH,2-*01%*%20,(%* 2%0@;(A*523*0;*,23,&50%*0;*01%*3,DD%(%20*%H%I%20/*0150*D;(I*01%* 2%0@;(A* 1;@* 0;* &;II'2,&50%?* J1%(%* /1;'H3* .%* ;2%* ,2* %5&1* 2%0@;(A?* # +,-.%%*K;'0%(E*J1,/*3%9,&%*,/*'/%3*0;*,20%(&;22%&0*3%9,&%/*0150* 5(%*/%:5(50%3*523*.%&5'/%*;D*,0/*(52-%*01%4*5(%*H,I,0%3?*+,-.%%* (;'0%(*1%H:/*0;*&(%50%*5*@,3%*2%0@;(A?* # +,-.%%* 723* L%9,&%/E* J1%/%* 3%9,&%/* &;II'2,&50%* @,01* ;01%(* 2;3%/* @1%2* 01%* H500%(* ;2%/* 5(%* &;;(3,250;(* ;(* (;'0%(* /,2&%* 01%4* &522;0* &;II'2,&50%* @,01* ;01%(* %23* 3%9,&%/?* G2* -%2%(5H* 01%/%*%23:;,20/*5(%*/%2/;(/)*523*;01%(*A,23/*;D*&;20(;HH%(/*,2* 01%*2%0@;(A*[6]?* * * B,-'(%*CE*7M5I:H%*;D*+,-.%%*J;:;H;-4* * * J1%* :H5&%I%20* ;D* 01%* 2;3%/* ,2* 01%* +,-.%%* 2%0@;(A* 0%23/* 0;* D;HH;@* 01%* I%/1*0;:;H;-4)*@1%(%*%5&1*;D*01%*2;3%/*159%*I;(%*0152*;2%*&;22%&0,;2*/;*0150* ,D* ;2%* D5,H/* 01%* &;II'2,&50,;2* &52* &;20,2'%* .4* 52;01%(* :501?* J1%(%* 5(%* ;01%(* 0;:;H;-,%/*H%//*'/%3*/'&1*5/)*0(%%*523*/05(?* * G2*0%(I/*;D*/%&'(,04)*+,-.%%*2%0@;(A*15/*3,DD%(%20*5'01%20,&50,;2*/4/0%I/)* %2&(4:0,;2)*523*,20%-(,04*D;(*01%*3505*/%20?*J1,/*/,0'50,;2*5HH;@/*01%*3%9%H;:%(* 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! '()*+,-,!./!0.*12-.(, #$% &'#% #('% &')*+,#-% .'/'.% 0))$+1,23% #$% #('% 044.,)0#,$2% #(0#% ,&% #05,23% 4.0)'6% 7#% ,&% ,84$+#02#% #$% 8'2#,$2% #(0#% &')*+,#-% ,&% ).$&'.-% +'.0#'1% #$% 4$9'+% )$2&*8'6% :,3(% &')*+,#-% .'/'.% 8'02&% (,3(% 4$9'+% )$2&*8';% &$% 0#% #('% '21% #('+'% (0&% #$% <'% 0% )$84+$8,&'6% =$+%8$+'%,2>$+80#,$2%)$2&*.#%+'>'+'2)'&? [1], [4], [5], [6]. !"#"#"!" $%&'())(*+,)-+./'012+ @.*'#$$#(%.$9%'2'+3-%,&%<0&'1%$2%@.*'#$$#(%#')(2$.$3-6%@.*'#$$#(%,&%0%A=% #')(2$.$3-%9,#(%.$9%4$9'+%)$2&*84#,$2%021%.$9%+023';%2$+80..-%.'&&%#(02%!B% 8'#'+&C% 80&&,/'.-% *&'1% #$10-% ,#% ,&% 4+'&'2#% ,2% 8$<,.'% 1'/,)'&% &*)(% 0&% 4($2'&;% DEF&;%GDH6%7#%90&%$+,3,20..-%)$2)',/'1%0&%#('%0.#'+20#,/'%#$%AHIJKJ%)$22')#,$26% @.*'#$$#(% .$9% '2'+3-% L@MNO% 0.&$% 52$92% 0&% @.*'#$$#(% P6B% *&'&% #('% 2'#9$+5% Ò+1%7NNN%"BJ6!Q6!%0&%@.*'#$$#(%J6!6%% R('%80,2%>'0#*+'&%$>%@.*'#$$#(%P6B%0+' [7]?% I @MN% *&'&% #('% J6PG:S% 7HT% L721*&#+,0.;% H),'2#,>,)% 021% T'1,)0.O% >+'U*'2)-% <021% >$+% 3.$<0.% $4'+0#,$2;% <*#% ,2&#'01% $>% #('% VW% !T:S%9,1'%)(022'.&%+'3*.0+%@R%*&'&;%@MN%(0&%PB%JT:S%9,1'% )(022'.&6% I R('%+023'%$>%$4'+0#,$2&%>$+%@R%P6B%,&%0.8$&#%JBB%8'#'+&6% I M'&&%#(02%JB8F%4'05%$>%)*++'2#%)$2&*84#,$26% I 7#% (0&% 0% 10#0% #+02&8,&&,$2% +0#'% $>% !T<4&6% X$840+,23% 9,#(% +'3*.0+% @R% #(,&% +0#'% ,&% .$9'+% <')0*&'% >$+% @R% J6!% #(,&% +0#'% ,&% I JT<4&6%% @MN%)02%905'%*4;%&'21%10#0%021%1,&)$22')#%,2%K8&6% @R% P6B% 2'#9$+5&% 0+'% 801'% <-% $2'% 80&#'+% 1'/,)'% 021% &'/'+0.% &.0/'&% 1'4'21,23% $2% #('% 044.,)0#,$2;% ,2&#'01% $>% (0/,23% $2.-% V% &.0/'&% 0&% @R% J6!6% F..% 1'/,)'&%)$*.1%<'%80&#'+%$+%&.0/'%1'4'21,23%$26%Y(,)(%,2,#,0#'&%#('%)$2#0)#%9,#(% #('% $#('+&6% Z2'% 2'#9$+5% )$84$2'2#% )$*.1% <'% 0% &.0/'% 1'/,)'% ,2% 1,>>'+'2#% 2'#9$+5&% $2.-% ,>% ,#% ,&% 2'/'+% 0% 80&#'+% 1'/,)'% ,2% $2'% $>% #('86% R0.5,23% 0<$*#% #('% &')*+,#-% $>% #(,&% 5,21% $>% 2'#9$+5;% @MN% *&'&% 0% !J"I<,#% FNH% 9,#(% )$*2#'+% 8$1'% X@XITFX%LX,4('+%@.$)5%X(0,2,23%T'&&03'%F*#('2#,)0#,$2%X$1'O%[8]6% M$9% '2'+3-% @.*'#$$#(;% >,+&#% &4'),>,)0#,$2% ,&% )+'0#'1% 9,#(% #9$% 4+$>,.'&% #$% $4#,8,S'% ,#&% >*2)#,$20.,#-;%+'8$#'% 1,&4.0-%4+$>,.'% 021%0% &'2&$+%4+$>,.'6%R('%.,25% .0-'+% &4'),>,)0#,$2% 4+$/,1'&% #('% &-&#'8% *.#+0% .$9% 4$9'+% ,1.'% 8$1'% $4'+0#,$2;% 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! '()*+,-,!./!0.*12-.(, #$%&'() *(+$,() *$#,-+(./) 01*) &-$1232-3%4'2$&-$12) *020) 2.01#5(.6) 789) :0#) ;((1) *(#$<1(*) 5-.) ;-2:) (=40''/) $%&-.2012) >0/#) -5) $%&'(%(1202$-1?) #201*30'-1() 01*) *40'3%-*(6)@:()#201*30'-1()%-*();.$1<#)2:()4'2.0)'->)(1(.$2:)0),(''3;022(./6)@:()*40'3%-*()#/#2(%)>$'');(?)5-.) (A0%&'(?)2:()<02(>0/)2-).(%-2()#(.+$,(#)-1)2:()>(;)-.)('#(>:(.(?)>$2:)0)&->(.) ,-1#4%&2$-1)#$%$'0.)2-)2:()7@)B6!6))) 789) #201*30'-1() %-*() >$'') #(1*) #%0'') &$(,(#) -5) $15-.%02$-1?) -52(1) 1-) %-.()2:01)-1()&(.)%$142(?)01*)>:$'()$2)$#)1-2)*-$1<)2:02?)$2)>$'').(%0$1)0#'((&6) @:$#) #$2402$-1) >$'') #0+() 0) '-2) -5) &->(.) 0#) $#) .(=4$.(*) $1) 2:$#) 2/&() -5) ,-%%41$,02$-1#6))) C1)(A0%&'()-5)0)7@)'->)(1(.1)$1)2:()5$<4.()D6)) ) ) E$<4.()DF)@(,:1$,0')#&(,$5$,02$-1)7'4(2--2:)8->)91(.-.G ) C'') 2:(#() 5(024.(#) 24.1) 2:() 7'4(2--2:) 8->) (1(.$.('(##),0;'().(&'0,(%(12)5-.)#%0'')*(+$,(#)'$G()#(1#-.#)01*)0,2402-.#6) @:() 4'2$%02() ;(1(5$2#) 5-.) $1*4#2./) >$'') ;() ;(22(.) .(0'32$%() ,-12.-') -+(.) 2:() $1*4#2.$0')&.-,(##6)) ) E-.)%-.()$15-.%02$-1),-1#4'2).(5(.(1,(#F [7]? [9]6) ) 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! '()*+,-,!./!0.*12-.(, # !"#"#"$" %&'()(%&'*( $%&'$%&(#)*#+#!,-./0#1)2343**#5361728)59#:2767;74<#1=);=#)*#>+*3?#75# 6=3#:23@)*3#7A#B462+#471#:7132,#&=3*3#?3C);3*#;7B4?#2B5#A72#D3+2*#:71323?#754D# 1)6=# +# ;7)5# ;344# >+6632D,# &=3# :7132# ;75*B@:6)75*# A72# $%&# +::4);+6)75*# +23# +27B5?# !!@$# 1=35# 23;3)C)59# +5?# EF,G@$# 1=)43# 62+5*@)66)59# H:3+8# C+4B3*I,# &=3*3#C+4B3*#+23#;47*3#67#JKL#753*#72#47132#6=+5#6=7*3<#>B6#6=3#)@:726+56#)**B3# )5#6=3*3#$%&#?3C);3*#)*#6=3#2+593#7A#7:32+6)75<#1=);=#)*#43**#6=+5#M)9>33#+5?#J&<# A27@#E#@3632#67#F"#@3632*#)5#6=3#>3*6N;+*3#*;35+2)7#7A#62+5*@)**)75#[10],## $%&# 5361728# +::4);+6)75*# +23O# >)83# ;7B5632*<# @3?);+4# )5*62B@356+6)75<# *@+26# 67D*<# +B67@76)C3# )5*62B@356*<# +5?# 76=32# 471# 2+593# :B2:7*3*,# &=3# 5361728#67:7479D#)*#+4@7*6#6=3#*+@3#+*#6=3#753#A72#M)9>33#+5?#JKL,#L+;=#$%&# ;=+5534# ;75*)*6*# 7A# 753# 72# @723# 62+5*@)66)59# 57?3*# +5?# +4@7*6# 753# 23;3)C)59# 57?3,# $44# 57?3*# ;+5# 62+5*@)6# 72# 23;3)C3# ?+6+<# *7# 6=3# 1=743# ;=+5534# )*# >)N ?)23;6)75+4,# &D:);+4# 5361728*# +23# 6233<# >27+?;+*6<# +;857143?93?<# +5?# @3*=# 5361728,#$5#3P+@:43#7A#+#@3*=#5361728#)*#*=715#75#A)9B23#G,### # # Q)9B23#GO#LP+@:43#7A#$%&#@3*=#5361728# # 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! # ! ! ! '()*+,-,!./!0.*12-.(, $%&# $''()*+,# -,-.,/0# +')(-# 12)1# )''# 3/414+4'0# 50,6# (*# 412,/# 1,+2*4'47(,08# 05+2# )0# 9:::# ;=?# @4/# A(7.,,# 4/# 9:::# ;="# @4/# B'5,14412# )/,# '4)6,6# C(12# )# @5''# 0,1# 4@# @,)15/,0# 14# D,,3# )''# 3)/1(,0# 2)33E=# &2(0# 0(15)1(4*# (*+/,)0,0# 12,# 3/414+4'# 0(F,8# /,65+,0# ,@@(+(,*+E# )*6# (*+/,)0,0# 34C,/# +4*05-31(4*=# # G4/#-4/,#(*@4/-)1(4*#).451#$%&#+4*05'1#/,@,/,*+,H#[10]=# # !"!" #$%&'()*+$,$-%(-%(.$/*'*,,(0/-1-+-'( &2,# -)(*# 74)'# 4@# 12,# 3/4I,+1# (0# 14# 7,1# +4--5*(+)1(4*# C(12# 12,# ',00# )-45*1# 4@# 34C,/# +4*05-31(4*=# &2(0# (0# C2E# 12,0,# 12/,,# 3/414+4'0# +)-,# 14# 12,# 0+,*,=# $''# 12,# 3/414+4'0# )*)'EF,6# 2)J,# '4C# ,*,/7E# J)'5,0# @4/# 1/)*0-(11(*7# )*6# /,+,(J(*7#-46,0=## $''# 1,+2*4'47(,0# +45'6# +/,)1,# )# -,02# *,1C4/D8# ./4)6+)01# )*6# 412,/# 6(@@,/,*1#1E3,0#4@#*,1C4/D08#C2(+2#)/,#*,,6,6=#9*#12,#,*6#(1#(0#*,+,00)/E#14#7,1# 04-,# D(*6# 4@# +4--5*(+)1(4*# .,1C,,*# 1C4# 6,J(+,08# 12,# -)01,/# 4*,8# 12)1# +45'6# .,# 12,# ')3143# 4/# 12,# 0-)/1324*,8# )*6# 12,# 0')J,# 4*,8# 12)1# (0# 74(*7# 14# .,# (*# 12(0# +)0,#12,#G$K$#+4*1/4'',/#4*#12,#143#4@#12,#04')/#+,''=#$0#(1#(0#*,+,00)/E#14#-)*)7,# )# *5-.,/# 4@# 04')/# +,''08# 12,# ./4)6+)01# )*6# -,02# 1434'47(,0# )/,# 12,# .,01# (-3',-,*1)1(4*0#@4/#+4--5*(+)1(4*=## &)'D(*7#).451#0,+5/(1E8#)''#3/414+4'0#2)J,#/,)''E#7446#C)E0#4@#,*+/E31(4*# '(D,# "!;L.(1# $:M# )*6# 412,/# 0,+5/(1E# 04/10=# $1# 12(0# 34(*1# 12,# .,01# 1,+2*4'47E# C45'6#.,#$%&8#.,+)50,#(1#-,,10#)''#/,N5(/,-,*10#04#@)/8#.51#@4/#12,#/)*7,8#C2(+2# (0#04-,12(*7#/,)''E#(-34/1)*1#(*#45/#6,0(7*=# &2,# /)*7,0# @4/# 12,0,# 3/414+4'0# )/,# 6(@@,/,*1O# A(7.,,# C45'6# 3/4J(6,# 12,# 3/4I,+1# )# /)*7,# 4@# )'-401# "<<# -,1,/0=# &2(0# (0# )# /,)''E# 7446# /)*7,8# 0(*+,8# @4/# ,P)-3',8#C,#C)*1#14#-)*)7,#)#*5-.,/#4@#04')/#+,''0#@/4-#12,#0)-,#34(*1#(*#12,# 3)/D(*7# '41=# BK:# C(''# 7(J,# )# /)*7,# 4@# !<<# -,1,/0# 4/# -4/,# 6,3,*60# 4*# 12,# 0533'(,/#6,J(+,=#G4/#$%/414+4'8#12,#/)*7,#(0#'4C,/#12)*#+4-3,1(14/0O#(1#C45'6# 3/4J(6,#)0#-5+2#)0#Q<#-,1,/08#(*#12,#.,01L+)0,#0+,*)/(4=## &).',# "# 024C0# )# +4-3)/(04*# 4@# 12,# 12/,,# 6(@@,/,*1# +4--5*(+)1(4*# 0E01,-0#@,)15/,0=# # # 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! !"#$%&'(")%' !"#$%&&%'()*+( !"#$%#&%' "###$%&!'()'($ !()*&+",' -#""(&,'.+/('' ! ! ! '()*+,-,!./!0.*12-.(, ,-./$$( 012( "###$%&!'()'*$ +,-.,/012,3$ (!%45/1$6#7$ (!%45/1$6#7$ (!%45/1$6#7$ 8($302,$ 9$:$;$<-=1>?$ 8@$302,?$ A=B/(' ?27(&')2$9*<@"+2$' !*@@2&"(%'$("72&89' 8!&&$<010,?$ (&&$<010,?$ ($:$@&$<010,?$ !&<6$.02F$GH$ @&<6$.02F$GH$ (@')<6$.02F$GH$ &'@I6$/CB0$<-C0$ &'@I6$/CB0$<-C0$ $ D0?>J$1,00J$?12,$ D0?>J$1,00J$?12,$ D0?>J$1,00J$?12,$ G25B0$(K$L-<.2,/?-=$-M$NBO01--1>$*'&J$P/Q500J$2=C$6RG'$ $ 61$1>/?$.-/=1$1>0$50?1$?-BO1/-=?$S/BB$50$P/Q500$2=C$NBO01-->$T-S$0=0,Q3'$ L>0UF/=Q$ M-,$ 5-1>$ .,-1-U-B?$ 1>0$ <-?1$ /<.-,12=1$ /??O0$ 1>21$ /?$ 0=0,Q3$ U-=?O<.1/-=J$ NT#$ >2?$ 2$ B-S0,$ -=0$ U-<.2,/=Q$ 1-$ P/Q500'$ 6=-1>0,$ /<.-,12=1$ /??O0$ /?$1>21$ NT#$ /?$ ?12104-M41>042,1$10U>=-B-Q3V$/1$/?$2$5,2=C4=0S$.,-1-U-B$1>21$ S/BB$ Q/W0$ 1>0$ .,-X0U1$ 2=$ 2CC0C$ W2BO0'$ 6M10,$ ,0W/0S/=Q$ -=$ 1>0$ ?.0U/M/U21/-=?J$ M021O,0?$ 2=C$ -1>0,$ .,-.0,1/0?$ M-,$ 1>0$ C/MM0,0=1$ 2B10,=21/W0?J$ NBO01--1>$ *'&$ T-S$ #=0,Q3$/?$1>0$.,-1-U-B$10U>=-B-Q3$?0B0U10C$M-,$1>0$.,-X0U1'$ $ *+,+ -%."/'01/)%1&/'33*456' G>0$ G0H2?$ "=?1,O<0=1?$ LL!)*&$ S2?$ 1>0$ -=B3$ 2W2/B25B0$ ?/=QB0$ C0W/U0$ S>0=$ 1>0$ .,-X0U1$ 50Q2='$ G>0$ Q0=0,2B$ U>2,2U10,/?1/U?$ 1-$ 50$ <01$ 53$ 10U>=-B-Q3$ S0,0$ 2=2B3Y0CJ$ 2=C$ 52?0C$ -=$ 1>0?0$ ,0?1,/U1/-=?$ 1>0$ .,-1-U-B$ S2?$ U>-?0=$ 1>21$ S-OBC$ 0<.B-3$ 1>0$ C0W/U0'$ G>/?$ .,-1-U-B$ S2?$ NBO01--1>$ T-S$ #=0,Q3$ 2B?-$ U2BB0C$ ,0U0=1B3$NBO01--1>$*'&'$$ $ G>0$ LL!)*&$ /?$ 2$ B-S4.-S0,J$ 1,O0$ ?3?10<4-=4U>/.$ Z7-L[$ M-,$ NBO01--1>$B-S$0=0,Q3$2..B/U21/-=?'$"1$0=25B0?$,-5O?1$NT#$<2?10,$-,$?B2W0$=-C0?$ 1-$ 50$ 5O/B1$ S/1>$ W0,3$ B-S$ 1-12B$ 5/BB4-M4<210,/2B$ U-?1?'$ G>0$ LL!)*&$ U-<5/=0?$ 2=$ 0HU0BB0=1$ \]$ 1,2=?U0/W0,$ S/1>$ 2=$ /=CO?1,34?12=C2,C$ 0=>2=U0C$ %&)($ DLAJ$ /=4 ?3?10<$ .,-Q,2<<25B0$ MB2?>$ <0<-,3J$ %4EN$ \6DJ$ 2=C$ <2=3$ -1>0,$ .-S0,MOB$ ?O..-,1/=Q$M021O,0?$2=C$.0,/.>0,2B?'$ LL!)*&$/?$.0,M0U1$1-$/<.B3$?3?100,0$W0,3$B-S$.-S0,$U-=?O<.1/-=$ /?$,0^O/,0C'$7>-,1$1,2=?/1/-=$1/<0?$501S00=$-.0,21/=Q$<-C0?$MO,1>0,$0=25B0$B-S$ .-S0,$U-=?O<.1/-='$G>0$<2/=$B-S$.-S0,$M021O,0?$2,0$C/?.B230C$-=$125B0$!'$$ 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!!! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !"# %$'()*+,-,!./!0.*12-.(, &"'()*+,-"'% #$%&'()*+,()-.) /012)3#) #$%&'()*+,()4.) !5)3#) 6+7(8)*+,()/)9":3;)<=>(:?@A) !"B)C#) 6+7(8)*+,()!)9DE((@)4&3(8)FGA) H10)C#) 6+7(8)*+,()")9I.%(8G=E)JG%(88K@%;A) H15)C#) 4=LE()!M)NN!B5H)6+7(8)N+G;K3@%&+G)O(=%K8(;1) ) 4P()LE+$>),&=Q8=3)+R)=)NN!B5H)&%)&;);P+7G)&G)R&QK8()21)4P()3+,KE(;)$=G) L()8+KQPES),&'&,(,)&G%+)+G()+R)%P8(()$=%(Q+8&(;M)N6?:8(E=%(,)3+,KE(;T)3+,KE(;) 8(E=%(,)%+)@+7(8U)%(;%U)=G,)$E+$>),&;%8&LK%&+GT)=G,)8=,&+:8(E=%(,)3+,KE(;1) ) ) O&QK8()2M)VE+$>)W&=Q8=3)NN!B5H1) 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! '()*+,-,!./!0.*12-.(, #$%&'$(')**%+,)%&'$-).+%/)%,01)%2*)3%0%3)1)4$&5)6+%78+%99!:";<=>?@A@% B'$5%#)C0*%@6*+'25)6+*%/,)')%+,8*%.,8&%99!:";%8*%D))6%&40.)3E%F8(2')%G%*,$/*% +,)%38BB)')6+%78+%.$5&$6)6+*% %% % F8(2')%GH%I0'3/0')%@6.423)3%/8+,%99!:";<=>?868E% % #,)%78+%.$6+086*%+,)%B$44$/86(%,0'3/0')%.$5&$6)6+*H% !"##$%&'"()*"+,-./0" #,8*%8*%+,)%3)18.)%+,0+%/844%D)%0.+86(%0*%+,)%JKL%?0*+)'E%@+%.$66).+*%+$%0% M863$/*% N9O*% PQJ% &$'+R% 063% 8*% &')>4$03)3% /8+,% +,)% 50*+)'% 3)5$% 0&&48.0+8$6% *$B+/0')E% !"##$%&'"12034,56" #,8*%8*%+,)%3)18.)%+,0+%/844%D)%0.+86(%0*%+,)%JKL%Q401)E%#,)%N9J%*8+*%86*83)% 0%&40*+8.%.0*)R%063%.06%D)%')5$1)3%/8+,%0%*5044%N,848&*%*.')/3'81)'E%@+%$&)'0+)*% $6%0%*86(4)%9S!;T!%.$86%.)44%D0++)'UR%063%.$6+086*%0%+/$>.$4$')3%KL?5/0@" >,-A08;08" 5,?8B@" ?-B" ?" !'CD:-" >,--0>;,8">?5/0E" #,8*%8*%2*)3%+$%B40*,%+,)%*$B+/0')%$6+$%D$+,%+,)%PQJ%3$6(4)%0*%/)44%0*%+,)% 7)UB$DE% @+% 04*$% .06% D)% 2*)3% B$'% 3)D2((86(% *$B+/0')% 2*86(% @WS% L5D)33)3% M$'7D)6.,E% ?$')%86B$'50+8$6%$6%+,)%99!:";%B'$5%#)C0*%@6*+'25)6+*%.06%D)%B$263%86% 99!:";%30+0*,))+%0++0.,)3%86%N0'+%XR [11]E% 3-45*5,,!6.(-2.4-(7!/.4!0.*)4!0+,258,! ! 9)-,54!6)(:)(.!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! !!!!!!!!!!'()*+,-),.(-!/01!2344.0+)/,+305 # ! "#$%&'(!)* +,"-./0"/1,0!+23!"45512."+/.426! # # )*7* 8(9:;9%$%=:':&?! $%&'# (%)*+,-# .,'(-&/,'# 0%&(%# (12*13,3+'# %)4,# /,,3# 5',.# +1# 2,,+# +%,# 1/6,(+&4,'#17#+%,#*-16,(+8#$%,#'9'+,2#(15:.#/,#.&4&.,.#&3#+01#/&;#;-15*'<#=>?># (13+-1::,-# )3.# (12253&()+&13'# %)-.0)-,# )'# &+# &'# '%103# 13# 7&;5-,# @8# A,:10# &'# *-,',3+,.# +%,# B,9# ,:,2,3+'# 17# ,)(%# *)-+8# =1-# 21-,# &371-2)+&13# 4&,0# +%,# .)+)'%,,+#&3#C>D$#E8# # # =&;5-,#@<#F9'+,2#>-(%&+,(+5-,8# # )*@* 59;(=;#9%!""@ABC! $%&'# 2&(-1(%&*# &'# -,'*13'&/:,# 71-# /1+%# A:5,+11+%# )3.# DF!G!# (12253&()+&13'# /,+0,,3# +%,# =>?># (13+-1::,-# )3.# (12*5+,-# :)*+1*8# H+# &'# *10,-,.#0&+%#G8G#EI#'1#&+#&'#3,(,'')-9#+1#5',#)#:,4,:#(134,-+1-I#'&3(,#+%,#DF!G!# (12253&()+&13#&'#J!#E8# # )*)* 5+D.5!E'F''# 2,3+&13,.# )/14,I# +%,# KK!"LM# (%&*# &'# *10,-,.# 0&+%# G8G# EI# )3.# +%,# DF!G!# (12253&()+&13# /,+0,,3# =>?># (13+-1::,-# )3.# +%,# (%&*# &'# J!# E8# $%&'# &'# 6+(-7-55!830+,3(+09!:3(!;37/(!;<5,-45! ! =/+5-(!8/0>/03!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! !!!!!!!!!!'()*+,-),.(-!/01!2344.0+)/,+305 #$%&'(&')&*+,+))-.%&(/&)-*0#',$&-&1+2+1&,/*2+.(/.&3+(#++*&($+)+&(#/&4'+,+)&/5& $-.0#-.+6& & 7$+& 3-)',& /4+.-('/*& /5& ($')& 1+2+1& ,/*2+.(+.8& ')& (/& 1/#+.& ($+& 1+2+1& /5& 2/1(-9+& 5./:& ;!& <& (/& =6=& <8& )/& ($-(& ($+& $-.0#-.+& ,-*& /4+.-(+& -(& /4(':>:& ,/*0'('/*)6&& & !"#" $%&'%%()(%*)+(,-%)./01-/&) 7$+&-*(+**-&')&-&?+%&,/:4/*+*(&5/.&.+-,$'*9&($+&:-@':>:&0')(-*,+&'*&-& #'.+1+))& ,/::>*',-('/*& )%)(+:6& 7$+& 4>.4/)+& /5& -*& -*(+**-& ')& (/& (.-*)5/.:& +1+,(.',-1& )'9*-1)& '*(/& AB& +1+,(./:-9*+(',& #-2+)8& 4./4-9-('*9& '*(/& 5.++& )4-,+& C(.-*):'(& :/0+D& -*0& (/& (.-*)5/.:& AB& +1+,(./:-9*+(',& #-2+)& '*(/& +1+,(.',-1& )'9*-1)&C.+,+'2+&:/0+D6& & B'9>.+&EF&G-@':>:&H/#+.&I+1'2+.+0&-(&J>-.(+.&K-2+1+*9($& & L&(%4',-1&-*(+**-&')&3-)',-11%&-*&-'.&,/.+&'*0>,(/.&/5&0+5'*+0&#-2+1+*9($6& L)&,-*&3+&)++*&'*&B'9>.+&E8&($+&LM&,>..+*(&($./>9$&-*&'*0>,(/.&1-9)&($+&2/1(-9+& 3%&EN&0+9.++)&)/&($+&:-@':>:&4/#+.&')&0+1'2+.+0&-(&;OP&#-2+1+*9($6&7$+&QR!& 0'4/1+&4./0>,+)&:/)(&4/#+.&-(&($+&+*0)&/5&($+&-*(+**-&#'($&1'((1+&4/#+.&'*&($+& ,+*(+.&/5&($+&-*(+**-6& • I'4/1+&CQR!D&L*(+**-)F&L&0'4/1+&-*(+**-&:/)(&,/::/*1%&.+5+.)&(/& -& $-15S#-2+1+*9($& CQR!D6& B'9>.+& ;N& )$/#)& ($+& (%4',-1& +:'))'/*& 4-((+.*& 5./:& -& 0'4/1+& -*(+**-6& 7$+& -*(+**-& ')& )(-*0'*9& '*& ($+& T& 41-*+& -*0& .-0'-('*9& +*+.9%& />(#-.0)6& 7$+& )(./*9+)(& +*+.9%& ')& .-0'-(+0&/>(#-.0&'*&($+&UV&41-*+8&4+.4+*0',>1-.&(/&($+&-*(+**-6& & 6+(-7-55!830+,3(+09!:3(!;37/(!;<5,-45! ! =/+5-(!8/0>/03!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! !!!!!!!!!!'()*+,-),.(-!/01!2344.0+)/,+305 # $%&'()#*+,#-.%//%01#2344)(1#05#3#6%708)#914)113:# # ;%<)1# 4=)/)# 314)113# 7344)(1/># ?0'# @31# /))# 4=34# 3# A%708)# 314)113# /=0'8A# B)# .0'14)A# /0# 4=34# %4# %/# <)(4%@388?# 0(%)14)A# C%4=# ()/7)@4# 40# 4=)# 5800(:# D=%/# ()/'84/# %1# 4=)# .3E%.'.# 3.0'14# 05# )1)(&?#(3A%34%1�'4#%140#4=)#%14)1A)A#@0<)(3&)#3()3:#D=)#1'88#%1# 4=)#.%AA8)#05#4=)#7344)(1#C%88#70%14#'7#31A#A0C1:# • F010708)# GHIJK# 914)113/,# 9# .010708)# 314)113# .0/4# @0..018?# ()5)(/#40#3#L'3(4)(MC3<)8)1&4=#GHIJK:#D=)#314)113#%/#@01/4('@4)A# 05# @01A'@4%<)# )8).)14/# C=0/)# @0.B%1)A# 8)1&4=# %/# 3B0'4# L'3(4)(# 4=)#C3<)8)1&4=#34#%4/#%14)1A)A#5()L')1@?#05#07)(34%01:#D=%/#%/#<)(?# 707'83(# A')# 40# %4/# /%N)# /%1@)# 01)# 314)113# )8).)14# %/# 01)# HIJ# C3<)8)1&4=#31A#4=)#;O6#7831)#3@4/#3/#4=)#04=)(#HIJ#C3<)8)1&4=># C=%@=#7(0A'@)/#31#)55)@4%<)#HI!#314)113:#D=)()50()>#50(#.010708)# 314)113#A)/%&1/#4=)#7)(50(.31@)#05#4=)#314)113#%/#A)7)1A)14#01# 4=)# &(0'1A# /%N)># ()5)(# 40# $%&'()# **:# 988# /.388# 314)113/# 3()# A)(%<34%<)/# 05# 3# /%.78)# A%708)# C=)()# 01)# )8).)14# %/# 508A)A# %140# 4=)#;O6#31A#/)(<)/#3/#4=)#/)@01A#(3A%340(:# # # $%&'()#**,#F010708)#914)113#P4%8%N%1&#;O6#2831)#3/#31#-55)@4%<)#H#IJ#914)113#-8).)14:# 6+(-7-55!830+,3(+09!:3(!;37/(!;<5,-45! ! =/+5-(!8/0>/03!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! !!!!!!!!!!'()*+,-),.(-!/01!2344.0+)/,+305 #$%& '()%(('& *$+,%(& )+& -.)& .(& )$.,& /0+1%*)& .,& '& 2$./& '()%(('3& 4-& 5++6& /%0-+07'(*%& .,& )$%& 7+,)& .7/+0)'()& -'*)+08& ,.9%& '(6& *+,)& '0%& (+)& *0.).*':;& '(& %<)%0(':& '()%(('& 2.)$& '& *+((%*)+0& *+=:6& >%& '& 5++6& ,+:=).+(3& 4-& '& *+((%*)+0& .,& =,%6& )$%(& )+& /',,& )$%& 0%5=:').+(,8& *+(6=*)%6& %7.,,.+(& )%,),& 7=,)& ':,+& >%& /%0-+07%63&#$%&2$./&'()%(('&,$+=:6&>%&7+=()%6&(+07'::?&+(&)$%&50+=(6&/:'(%& )+& +>)'.(& >%,)& /%0-+07'(*%3& @$./& '()%((',& '0%& )?/.*'::?& 7+0%& %+'06&)$')&':,+&.(*0%',%,& )$%&*+,)3&C+).*%&)$')&.(&,+7%&*',%,&,/%*.':&)?/%,&+-&*+((%*)+0,&7=,)&>%&=,%6&)+& *+7/:?& 2.)$& DEF& 0%5=:').+(,3& G+0& 7+0%& .(-+07').+(& '>+=)& '()%(('& 7')*$.(5& '(6&)?/%,&*+(,=:)&0%-%0%(*%,H&[12]3& #$%&/=0/+,%&+-&)$%&>':=(&*.0*=.)&.,&,.7.:'0&)+&6.5.)':&-0%B=%(*?&6+=>:%0,& +(:?& .(& )$.,& *',%& 2%& '0%& 6+=>:.(5& )$%& '7/:.)=6%& +-& )$%& ,.5(':& ')& )$%& ,=77.(5& /+.()&',&,%%(&.(&-.5=0%&I!3& & & G.5=0%&I!H&D.5(':,&>%-+0%&'(6&'-)%0&0%'*$&J':=(&K.0*=.)& & !"#" $%&%'()*+,)--.,' GLML&*+()0+::%0&.,&)$%&$'062'0%&)$')&.,&*+((%*)%6&)+&)$%&,+:'0&/'(%:3&4),& 7'.(& -=(*).+(,& '0%& )+& *+::%*)& .(-+07').+(& ,=*$& ',H& J'))%0?& ,)')=,& N*'/'*.)?8& $%':)$O8& /+2%0& .(P+=)8& ,=(0.,%P,=(,%)& ).7%,8& ,.5(& >0.5$)(%,,8& '(6& /+2%0& 7'('5%7%()&+/).+(,3&L::&)$.,&.(-+07').+(&.,&7'('5%6&>?&ED!Q!&*+77=(.*').+(3& #$.,& .,& 2$?& )$.,& /0+1%*)& .,& -+*=,%6& .(& 6%A%:+/& ,+7%& R.(6& +-& 2.0%:%,,& 6%A.*%& )+& )0'(,7.)&)$')&.(-+07').+(&+=)&+-&)$%&*+()0+::%0&)+&'&*+7/=)%0&+0&,.7.:'0&,?,)%7& :.R%&'&,7'0)/$+(%3&G.5=0%&IQ&,$+2,&'&GLML&*+()0+::%0&>+'063& 6+(-7-55!830+,3(+09!:3(!;37/(!;<5,-45! ! =/+5-(!8/0>/03!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! !!!!!!!!!!'()*+,-),.(-!/01!2344.0+)/,+305 # $%&'()#*+,#$-.-#/012(033)(#405(6# # !"#" $%&&'()*+,)%(-. !"#"/" 012!2. 73)82(01%8#6525#8099'1%852%01:#;)2<))1#)3)9)12:#<%33#&)1)(533=#>533#%120# 2<0# ;(056# 852)&0(%):,# :%1&3)?)16)6# 516# 6%>>)()12%53@# AB!+!# C:%1&3)?)16)6D# <5:# %12(06'8)6# %1# *"E!F# 516# 6):G%2)# ('90(:# >0(# %2:# )5(3=# 6)9%:)F# H5:# ()95%1)6# <%6)3=# ':)6# 2H(0'&H# 2H)# %16':2(=# [13]@ AB!+!# %:# 51# 5:=18H(010':# :)(%53# 8099'1%852%01# G(020803# ':)6# %1# 809G'2)(:# 516# 6%&%253# :=:2)9:@# I2# %:# 8533)6# 5:=18H(010':#;)85':)#2H)()#%:#10#:)G5(52)#:=18H(01%J%1⁴K#:%&153#5:#2H)()# 5()# %1# 02H)(# :)(%53# G(020803:# 3%K)# BLI# 516# I!/@# MH)# G(020803# %:# :'8H# 2H52# %2# 5'20952%8533=# :=18H(01%J):# %2:)3>@# MH)# 0'2G'2# :%&153# 3)N)3# ':'533=# :<%1&:# ;)2<))1#O*!P#516#?*!P@## $%&'()# *Q# 516# M5;3)# +# :H0<# 2H)# ;5:%8# G%1# >)52'():# 0># 5# R4?"# AB!+!# 8011)820(@# # $%&'()#*Q,#AB?!+!#G%1#0'2#01#5#R4?"#G%1@# # # # # # 3)(. 1)4(+5. 3)(. 1)4(+5. !" $" &" (" R525#/5((%)(#R)2)82# A)8)%N)6#R525# M(51:9%22)6#R525# R525#M)(9%153#A)56=# #" %" '" )" R525#B)2#A)56=# A)S'):2#20#B)16# /3)5(#20#B)16# A%1&#I16%8520(# *" B%&153#T(0'16# " # M5;3)#+,#L%1#B%&153#R):8(%G2%01@# 6+(-7-55!830+,3(+09!:3(!;37/(!;<5,-45! ! =/+5-(!8/0>/03!!!!"! !"#$%"&!! ! ! ! ! ! ! ! !"#"$" ! !!!!!!!!!!'()*+,-),.(-!/01!2344.0+)/,+305 %&'()**)+,-"., #$%&'((')* +,"* -.* /0* -01%.'2-/$* .3&4-5-4/'-(0* 5(2* 6-2&$&..* 7&2.(0/$* 82&/* 9&':(2;.*<6789.=*')/'*/$$(:.*>(-4&*/01*1/'/*?&':&&0*1&>-4&.*>-/*2/1-(*$-0;*-0* ')&*@AB*?/01*52(C*D,+*EFG,** @'.*C/-0*/1>/0'/H&*-.*-'.*$(:&2*3(:&2*4(0.%C3'-(0I*:)-4)*4(%$1*H2&/'$J* &K3/01* ')&* .3&4'2%C* (5* %.&.* (5* ')-.* '&4)0($(HJ* -0* 1&>-4&.* :-')* $(:* 3(:&2* ?/''&2-&.,* @'* /$.(* -C32(>&.* ')&* .4(3&* /01* .3&&1* (5* '2/0.C-..-(0,* @'* &0)/04&1* 2/0H&* (5* 2&/4)* '(* L""* C&'&2.I* /01* 2&1%4&.* ')&* 2&M%-2&* 4)-3* .-G&,* N(* C/;&* C/''&2.*?&''&2I*')&*0&:*.J.'&C*4/0*'2/0.5&2*/'*.3&&1.*%3*'(*L*B?3.,**@0*/11-'-(0I* .&4%2-'J*-.*H%/2/0'&&1*')/0;.*'(*8OAPLDQ*&042J3'-(0,** R(2*C(2&*-05(2C/'-(0*/?(%'*#N*+,",*4(0.%$'*2&5&2&04&S*[9],* * * * * * * * * * * * * * * * * 6+(-7-55!830+,3(+09!:3(!;37/(!;<5,-45! ! =/+5-(!8/0>/03!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. # # !"#$%&'()* +,-./.(!011234!56403( # # )*7* 48%'9:;<%=98( $%&#'()*+,&-#.&-/01#*(-,#/.#23(43#0.#5678!89#$%�:;03,0<&#(=#,%/.#*(-,# /.# ,%0,# 011# '()*+,&-.# 03:# <0:<&,.# >-/3<# 0,# 1&0.,# (3&# .&-/01# *(-,9# $%/.# 011(4.# '())+3/'0,/(3# >&,4&&3# (,%&-# :&;/'&.# .+'%# 0.# 03(,%&-# '()*+,&-?# 03:# /3# ,%/.# '0.&?# /,# 011(4.# ,%&# '())+3/'0,/(3# >&,4&&3# @ABA# '(3,-(11&-# 03:# ,%&# )/'-('(3,-(11&-#CDE"#(3#,%&#$&F0.#G3.,-+)&3,.#HH8EID9## $%&-�-&#,4(#,J*&.#(=#.&-/01#'())+3/'0,/(3.K#,%&#.J3'%-(3(+.#03:#,%&# 0.J3'%-(3(+.9# # G3# .J3'# .&-/01# '())+3/'0,/(3# /3# 0::/,/(3# ,(# 0# 1/3&# (3# 4%/'%# ,(# ,-03.)/,# ,%&# :0,0?# 03(,%&-# 1/3&# /.# 3&&:&:?# ,%0,# 4/11# '(3,0/3# '1('2# *+1.&.# ,(# /3:/'0,%&3#0#:0,0#/.#;01/:9## LF0)*1&.#(=#.+'%#'())+3/'0,/(3#0-&K## ! G8H9# ! M3&#N/-&9# ! 6OG9# G3#,%�.J3'%-(3(+.#.&-/01#'())+3/'0,/(3#'1('2#*+1.&.#0-(,#3&'&..0-J9# $%&#:+-0,/(3#(=#&0'%#>/,#/.#:&,&-)/3&:#>J#,%&#.*&&:#4/,%#4%/'%#/,#*&-=(-).#,%&# :0,0#,-03.=&-9## P(-)011J# 4%&3# /,# :(&.# 3(,# *&-=(-)# :0,0# ,-03.=&-?# ,%&# 1/3&# (=# ,%&# ,-03.)/,,&-# /.# /3# !"#$% &'"$?# ,%/.# )&03.# /3# ,%&# %/<%# .,0,&9# $(# .,0-,# ,%&# :0,0# ,-03.)/../(3?# ,%&# ,-03.)/,,&-# *+,.# ,%/.# 1/3&# /3# 1(4# =(-# 0# '&-,0/3# ,/)&?# 4%/'%# /.# 23(43# 0.# .,0-,# >/,9# $%&3# /,# >&/,.# 0140J.# .,0-,# 4/,%# ,%&# 1&0.,# ./<3/=/'03,# >/,# QB6RS# 03:# &3:# 4/,%# ,%&# )(.,# ./<3/=/'03,#>/,#QT6RS9# G=#,%&#-&'&/;&-#/.#3(,#.J3'%-(3/U&:#4/,%#,%&#,-03.)/,,&-?#/,#:(&.#3(,#23(4# 4%&3# :0,0# 4/11# >&# -&'&/;&:9# $%&-&=(-&# ,%&# ,-03.)/,,&-# 03:# -&'&/;&-# )+.,# %0;&# 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. #$%& '()%& *(+()%#%+'& ('& '*%%,-& *(+.#/-& 01)2%+& 34& 2.#'& 34& ,(#(& #+(0').##%,-& (0,& '#3*&2.#5& 60& ,.7.#(8& 9.+91.#'-& :$3'%& ,.'#(09%'& (+%& +%8(#.;%8/& '$3+#-& .#& 9(0& $(0,8%& #+(0').''.30&.0&<<=&837.9&8%;%8'&>?@ABC-&21#&:$%0&#$%&,.'#(09%'&.09+%('%-&#$%'%& '.70'&#%0,&2%&,.'#3+#%,&,1%&#$%&9(*(9.#.;%&%44%9#&34&#$%&930,19#3+'&(0,&#$%.+& %8%9#+.9(8& +%'.'#(09%5& <$%& %44%9#& .09+%('%'& :.#$& #$%& .09+%('.07& 34& #+(0').''.30& '*%%,5&<$.'&9(1'%'&#$%&+%9%.;%,&,(#(&,.44%+&4+3)&,(#(&'%0#D&#$%+%43+%&.#&9(003#& *%+43+)&#$%&#+(0').''.305&& E0%& 34& #$%& )3'#& 837.9(8& '381#.30'& .'& #3& .09+%('%& #$%& ;38#(7%& )(+7.0'& (#& :$.9$&,(#(&.'&#+(0').##%,-&'3&#$(#&,.'#1+2(09%'&,1%&#$%&8.0%&9(0&2%&93++%9#%,5&& F.;%0&#$%&:.,%&;(+.%#/&34&%G1.*)%0#-&'/'#%)'&(0,&*+3#3938'&#$(#&%H.'#-&(0& (7+%%)%0#&#$(#&:318,&(883:&,.44%+%0#&)(014(9#1+%+'&93))10.9(#%&:.#$&%(9$& 3#$%+&.'&0%%,%,5&<$%&I6J&>I8%9#+30.9&60,1'#+.%'&J88.(09%C&,%;%83*%,&#$%&KL@"!"& '#(0,(+,-&:$.9$&,%4.0%'&#$%&)%9$(0.9(8&.0#%+4(9%-&*.0'-&'.70(8'-&(0,&*+3#3938'& 2%&)%#&2/&#$%&'%+.(8&93))10.9(#.305&& M3+&)3+%&.043+)(#.30&(231#&KL@"!"&2('.9'&'%%&+%4%+%09%N&[13]5&& J4#%+&#$.'&#$%3+%#.9(8&3;%+;.%:&30&#$%&KL@"!"&'#(0,(+,-&.#&.0#+3,19%,&#$%& *+37+()).07& (0,& $(+,:(+%& 43+& ).9+3930#+388%+& O?AP& .0981,%,& .0& #$%& QQ"AR?& 9$.*5&& & !"#" $%&'()*+,-./)01)23/)44#5!6) &<$.'& '%9#.30& %H*8(.0'& #$%& 2('.9& *+.09.*8%'& 34& 3*%+(#.30& 34& #$%& SLJK<& )3,18%& .0& #$%& O?AP& ).9+3930#+388%+& .0981,%,& .0& #$%& QQ"AR?& 9$.*-& 23#$& $(+,:(+%&(0,&*+3#39385&& & !"#"7" 4+1,020+1018)%93/*:209) <$%& 93))10.9(#.30& )3,18%'& (+%& 7%0%+(88/& ;%+/& '%0'.#.;%& #3& 3*%+(#.07& 930,.#.30'5&<3&%0'1+%&#$%&*+3*%+&4109#.30.07&34&#$%&SJK<&21'-&.#&)1'#&)%%#&#$%& 43883:.07&,%'.70&'*%9.4.9(#.30'&'$3:0&.0&4.71+%&PA5& & & 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. " #$%&'(")*+",-.!//0"123(456$2" " 73(" 25852$69'" 6:8(" &;(<" =9'" >)?>0" $;" @96" 2'$6$25A" =9'" 8'98('" 98('56$9@B" 89A5'$C(<" 9'" @9@89A5'$C(<" 25852$69';" 25@" D(" &;(/M">!M"5@<">0" 25@" D(" $@2'(5;(<" O$639&6" 235@%$@%" >)P;" K5A&(E" Q9O(K('M" <9" @96" $@2'(5;(" >)" O$639&6"5A;9"$@2'(5;$@%"63("K5A&(;"9=">/M">!M">0M"5@<">RST-11M"69"45$@65$@"63(" 8'98('"'56$9;"L>)"69"63("963('"25852$69';NE" J@"49;6"2$'2&4;65@2(;M"5"GE)H#"I>>"D:85;;"25852$69'"$;"5<(F&56("69"89O('" ;&88A:"<(29&8A$@%E"J@"588A$256$9@;"6356"5'(";(@;$6$K("69"89O('U;&88A:"@9$;(M"&;(" 5" 25852$69'" 9=" 63(" ;54(" K5A&(" 5;" 235'%(U8&48" 25852$69'" >)E" >9@@(26" D:85;;" 25852$69';"5;"2A9;("69"63("J>"5;"89;;$DA(E" " #9'" 49'(" $@=9'456$9@" 5D9&6" 63(" ,-.!//0" A(K(A" 29@K('69'" 29@;&A6" <565;3((6"[12]E" " !"#"#" $%&'( 73("V1-W7"49<&A("&;(;"0"8$@;"='94"63("23$8";39O@"$@"=$%&'(")XE"" V1-W7"G+"WY"Z"TGE/"7Y"Z"TGE!" V1-W7")+"WY"Z"TGE*"7Y"Z"TGE0" 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!!! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. #$%&'()%*+),%(&%()%-$./%0)($1%&',%23456%7%82456%9-:,;<% % % =(10>,%?@A%BBCD"7%E($)<% % !"#"$" %&'()(*+,-./0") 4%2456%&>+$)9())(-$%()%($(&(+&,:%F',$%&',%23456%>,*,(G,H&>+$)9(&%:+&+% I0JJ,>)K% UxDBUFK% +>,% F>(&&,$<% 6',% I/&,% ()% &>+$)9(&&,:% -$% &',% 6LMN% -0&E0&% E($)<% 6',%UxDBUF >,1()&,>)%+>,%:-0I.,OI0JJ,>,:<% 6',% UxCSR.ACTIVE I(&%1-,)%'(1'%F',$%&',%I/&,%&>+$)9())(-$%)&+>&)%+$:% .-F%F',$%(&%,$:)<%P',$%&',%&>+$)9())(-$%,$:)K%&',% UxCSR.TX_BYTE I(&%()%),&%&-% ?<% 4$% ($&,>>0E&% >,Q0,)&% ()% 1,$,>+&,:% F',$% &',% UxDBUF >,1()&,>% ()% >,+:/% &-% +**,E&%$,F%&>+$)9(&%:+&+<%6'()%'+EE,$)%(99,:(+&,./%+J&,>%&',%&>+$)9())(-$%'+)% I,,$% )&+>&,:R% ',$*,K% +% $,F% :+&+% I/&,% G+.0,% *+$% I,% .-+:,:% ($&-% &',% :+&+% I0JJ,>% F'(.,%&',%I/&,%()%I,($1%&>+$)9(&&,:<% % !"#"!" %&'()'121/314) M+&+% >,*,E&(-$% -$% &',% 2456% ()% ($(&(+&,:% F',$% +% ?% ()% F>(&&,$% &-% &',% UxCSR.RE I(&<% 6',% 2456% &',$% ),+>*',)% J->% +% G+.(:% )&+>&% I(&% -$% &',% 5LMN% ($E0&% E($% +$:% ),&)% &',% UxCSR.ACTIVE I(&% '(1'<% P',$% +% G+.(:% )&+>&% I(&% '+)% I,,$% :,&,*&,:K% &',% >,*,(G,:% I/&,% ()% )'(J&,:% ($&-% &',% >,*,(G,% >,1()&,><% 6',% UxCSR.RX_BYTE I(&% ()% ),&% +$:% +% >,*,(G,% ($&,>>0E&% ()% 1,$,>+&,:% F',$% &',% -E,>+&(-$%'+)%*-9E.,&,:<%4&%&',%)+9,%&(9,K%UxCSR.ACTIVE 1-,)%.-F<% 6',% >,*,(G,:% :+&+% I/&,% ()% +G+(.+I.,% &'>-01'% &',% UxDBUF >,1()&,><% P',$% UxDBUF ()%>,+:K%UxCSR.RX_BYTE ()%*.,+>,:%I/%'+>:F+>,<% 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! !"#"$" ! ! ! ! "'()(!*+,,-./012/+. %&'()*&+,-.,/,0&+12/- #$%&$'()$*+%,*-./)*'(%0($()*'1)%2('2%'3(%4#56%,*-.%)*'(%73($%18()*'&$0% &$% 4#56% 91.(:% 63(% UxBAUD.BAUD_M[7:0] *$.% UxGCR.BAUD_E[4:0] )(0&2'()2% .(;&$(%'3(%,*-.%)*'(%-2(.%;1)%4#56%')*$2;()2:% The baud rate is given by the following equation: <3()(%;%&2%'3(%2=2'(9%>+1>?%;)(@-($>=A%BC%DEF%;1)%'3(%5GHIG%1)%!J%DEF% ;1)%'3(%KHIG:% 63(%)(0&2'()%L*+-(2%)(@-&)(.%;1)%2'*$.*).%,*-.%)*'(2%*)(%2317$%&$%6*,+(% M:%;1)%*%'=8&>*+%2=2'(9%>+1>?%2('%'1%!J%DEF:%63(%'*,+(%*+21%0&L(2%'3(%.&;;()($>(%&$% *>'-*+%,*-.%)*'(%'1%2'*$.*).%,*-.%)*'(%L*+-(%*2%*%8()>($'*0(%())1):% 63(%9*N&9-9%,*-.%)*'(%;1)%'3(%4#56%91.(%&2%;OBC%73($% BAUD_E &2%BC% *$.%BAUD_M &2%PA%*$.%73()(%;%&2%'3(%2=2'(9%>+1>?%;)(@-($>=:% % %&'()*&+,-34567- UxBAUD.BAUD_M! UxGCR.BAUD_E! 80020-397- !"##$ "Q% C% P:BM% "%##$ "Q% R% P:BM% &'##$ "Q% S% P:BM% (")"##$ JBC% S% P:P!% 6*,+(%MT%%G1991$+=%42(.%U*-./5*'(%I(''&$02% % !"#":" ;<*=->/+,00'5+6- V*>3% 4I#56% 3*2% '71% &$'())-8'2:% 63(2(% *)(% '3(% 5K% >198+('(% &$'())-8'% W45KNX% *$.% '3(% 6K% &$'())-8'% W46KNX:% 63(% 6K% &$'())-8'% &2% ')&00()(.% 73($% ')*$29&22&1$%2'*)'2%*$.%'3(%.*'*%,-;;()%&2%1;;+1*.(.:% 63(% 4I#56% &$'())-8'% ($*,+(% ,&'2% *)(% ;1-$.% &$% '3(% IEN0 *$.% IEN2 )(0&2'()2:%63(%&$'())-8'%;+*02%*)(%+1>*'(.%&$%'3(%TCON *$.% IRCON2 )(0&2'()2:%63(% &$'())-8'%($*,+(2%*$.%;+*02%*)(%2-99*)&F(.%*2%;1++172:% Y$'())-8'%($*,+(2T%% ! 4I#56P%5KT%IEN0.URX0IE ! 4I#56B%5KT%IEN0.URX1IE ! 4I#56P%6KT%IEN2.UTX0IE 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. ! #$%&'()'*+)IEN2.UTX1IE) ,-./0012.)34567+)) ! #$%&'8)&*+)TCON.URX0IF ! #$%&'()&*+)TCON.URX1IF ! #$%&'8)'*+)IRCON2.UTX0IF ! #$%&'()'*+)IRCON2.UTX1IF) ) !"#"$" %&'()'*+,-.*/-) '9/) 0/6:7./07) 3;0) .9/) #$%&') 50/) /<) :-) .9:7) 7/=.:;-?) @;0) /5=9) #$%&').9/0/)50/)3:A/)0/6:7./07)=;-7:7.:-6);3).9/)3;44;B:-6)CD)0/3/07).;).9/)#$%&') -1E>/0F):?/?F)8);0)(G+) ! UxCSRF)#$%&')D)=;-.0;4)5-<)7.5.17?) ! UxUCRF)#$%&')D)#%&')=;-.0;4?) ! UxGCRF)#$%&')D)6/-/0:=)=;-.0;4?) ! UxDBUFF)#$%&')D)0/=/:A/H.05-7E:.)<5.5)>133/0?) ! UxBAUDF)#$%&')D)>51;1.).9/)#$%&')E;<14/)5-<):.7)0/6:7./07)7//).9/) 0/3/0/-=/+)[11]?) ) !"0" %&'()1/2.2324)567)1/2+/588,6+) )'9/) 3;44;B:-6) 250.) /D245:-7) .9/) A50:;17) 31-=.:;-7) -/=/7750J) .;) ;2/05./) .9/) #%&') E;<14/) 5-<) .9/) 34;B) =950.) 3;44;B/<) 3;0) .9/) :E24/E/-.5.:;-) ;3) .9/) &$K!K)=;--/=.:;-)>/.B//-).9/)@%L%)=;-.0;44/0)5-<).9/)MLN)=9:2?)) ) !"0"9" ':#0#);288<6,35.,26)=42>);?5/.) ,-) .9/) 34;B) =950.) :.) :7) 79;B-) .9/) <:33/0/-.) 2957/7) .95.) 50/) 0/O1:0/<) .;) ;2/05./) .9/) &$K!K) =;--/=.:;-) 71=9) 57F) ,-:.:54:P5.:;-) 31-=.:;-F) Q;-3:6105.:;-F) &/53?4(5# # 9?)# <1//1=%2&# %@# 4# :)54%/):# 424/A@%@# 1<# 5?)# B4(%1'@# <'235%12@# '@):# %2# 5?)# 6' '"()*+%& ?,1)+,)1/' ,$0,' +-*,0%*&' ,$/' %*(-1=0,%-*' ,$0,' %&' )&/3' ,-' +-*(%4)1/',$/'.-1,6' typedef struct { bool configured; uint16 baudRate; bool flowControl; uint16 flowControlThreshold; uint8 idleTimeout; uint16 rx; uint16 tx; bool intEnable; uint32 rxChRvdTime; halUARTCBack_t callBackFunc; }halUARTCfg_t; '"()*+,'"()*+-#./%& ?/,' 2:' ,$/' ()*+,%-*' @$/*' ,$/' .-1,' %&' &/,).' +-11/+,8:'0*3'1/03',-'2/')&/36' '"()*+,01-/21$.%&#$/'20)3'10,/'-(',$/'.-1,',-'2/'-./*/36'#028/'A6' '"()*+,)3"45"($#"3%& B7C#' (8-@' +-*,1-8' +0*' 2/' &/,' 0&' #CBD' -1' E7F?D6'#CBD'508)/'@%88'/*028/'(8-@'+-*,1-8'0*3'E7F?D'508)/'@%88'3%&028/' (8-@'+-*,1-86' '"()*+6)3"45"($#"367#.87"3/%& #$%&'.010=/,/1'%*3%+0,/&'*)=2/1' -(' 2:,/&' 8/(,' 2/(-1/' CG' 2)((/1' 1/0+$/&' =0GCGH)(?%I/6' J$/*' CG' 2)((/1' 1/0+$/&' ,$%&' *)=2/1' K=0GCGH)(?%I/' L' (8-@M-*,1-8#$1/&$-83N' 0*3' (8-@M-*,1-8'%&'#CBDO'0'+08820+9'@%88'2/'&/*,'20+9',-',$/'0..8%+0,%-*'@%,$' P7FQB7C#QCRQ7HSB#QEBFF'/5/*,6'' '"()*+,*/3.6*9."-$%& #$%&' .010=/,/1' %*3%+0,/&' 1G' ,%=/-),' ./1%-3' %*' =%88%&/+-*3&6' T(' CG' 2)((/1' $0&*U,' 1/+/%5/3' */@' 30,0' (-1' %38/#%=-),' 0=-)*,' -(' ,%=/O' 0' +08820+9' @%88' 2/' %&&)/3' ,-' ,$/' 0..8%+0,%-*' @%,$' P7FQB7C#QCRQ#TVDSB#' /5/*,6' #$/' 0..8%+0,%-*' +0*' +$--&/' ,-' 1/03' 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. #$#%&'()*+, -%./, '(#, 01, 23--#%, .%, 435', 6, 76%', .-, )'8, 9()5, 76%6/#'#%, )5, 5377.%'#:,.*;&,2&,<=>,7;6'-.%/58,, !"#$%&'()?, @.*'6)*5, halUARTBufControl_t 5'%3A'3%#, '(6', )5, 35#:, '.,/6*)73;6'#,01,23--#%8,, !"#$%&'*)+, @.*'6)*5, halUARTBufControl_t 5'%3A'3%#, '(6', )5, 35#:, '.,/6*)73;6'#,91,23--#%8, , , , typedef struct { uint16 bufferHead; uint16 bufferTail; uint16 maxBufSize; uint8 *pBuffer; }halUARTBufControl_t; -.$$/(0/12?,9()5,76%6/#'#%,)5,.25.;#'#8,, -.$$/(31%4+,9()5,76%6/#'#%,)5,.25.;#'#8, 51)6.$7%8/+,B.;:5,/61)/3/,5)C#,.-,'(#,01D91,23--#%,'(6', '(#,EF09,A6*,(.;:,6',6,')/#8,G(#*,'()5,*3/2#%,)5,%#6A(#:,-.%,01, 23--#%H,BFIJEF09J0KJLEII,M);;,2#,5#*',26AN,'.,'(#,677;)A6').*,65, 6*, #$#*', '(%.3+(, '(#, A6;;26AN, 5&5'#/8, O-, 91, 23--#%, )5, -3;;H, B6;EF09G%)'#PQ, -3*A').*, M);;, %#'3%*, R8, 9()5, 76%6/#'#%, )5, 5377.%'#:,.*;&,2&,<=>,7;6'-.%/58,, 9:6.$$/(+,9()5,76%6/#'#%,)5,.25.;#'#8, !"#$%&'%#*;#1-4/+,#*62;#D:)562;#,)*'#%%37'8,O',A6*,2#,5#',65,90ES, .%, LFI=S8, 90ES, $6;3#, M);;, #*62;#, '(#, )*'#%%37', 6*:, LFI=S, $6;3#, M);;, :)562;#,'(#,)*'#%%37'8,, ()<=>?23%5/+,9()5,76%6/#'#%,)5,.25.;#'#8,, !14461!@A.#!,T,9()5,A6;;26AN,)5,A6;;#:,M(#*,'(#%#,)5,6*,#$#*',53A(, 65,91,:.*#H,01,%#6:&888,, voidHalUARTCback (uint8 port, uint8 event); :"(*,U,57#A)-)#:,5#%)6;,7.%','(6',(65,'(#,#$#*'8,962;#,V8,, /?/#*,T,#$#*','(6',A635#5,'(#,A6;;26AN,962;#,W8, O*,A.:#,X,)',)5,5(.M*,'(#,)*)')6;)C6').*,6*:,.7#*,-3*A').*,7%.+%6//)*+8, 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. #include #include "hal_uart.h" static void FALA_Init(void); void MSDelay(unsigned long itime); static void FALA_Init(void) { HalUARTInit(); //Initialize UART halUARTCfg_t myConfig; halUARTBufControl_t myRx; halUARTBufControl_t myTx; myConfig.configured=TRUE; myConfig.baudRate=HAL_UART_BR_9600; //baudRate = 9600 myConfig.flowControl=FALSE; myConfig.rx=myRx; myConfig.tx=myTx; myConfig.intEnable=TRUE; //enable interrupt myRx.maxBufSize=50; myTx.maxBufSize=50; HalUARTOpen(HAL_UART_PORT_0, &myConfig); U0CSR |= 0xC7; IEN0 |= 0x85; IEN1 |= 0x21; IEN2 |= 0x05; TCON = 0x05; S1CON = 0x00; IRCON = 0x00; } //USART 0 control and status //Enable interrupts, RF, andUSART0 Rx //Port 0 //General RF and USART0 Tx //USART0 interrupt flag //General RF interrupt flag //Port 0 interrupt flag # $%&'#()#*%+,-'#$%&'#./-',01)#234145647514%3#53P'3#9+3-14%3:# # !"#"!" $%&'()*+,-( ;<4=# >+3-14%3# -6%='=# 5# ?4@'3# 0%,1:# ;<4=# >+3-14%3# A5B# C'# >%66%D'&# CB# E56FGH;80'3IJ#-566#43#%,&',#1%#,'-%3>4?+,'#0%,1#='1143?=:#8,K#1<4=#>+3-14%3#-53# C'#+='+#%,&',#1%#1+,3#%>>#FGH;#>%,#0%D',#-%3=',@514%3:# L,%1%1B0')#void HalUARTClose (uint8 port);# L5,5A'1',#&'1546=)## !"#$)#=0'-4>4'&#=',456#0%,1#1%#C'#-6%='&:#;5C6'#M:# # !"#"." $%&'(&-/0( ;<4=# >+3-14%3# ,'5&=# 5# C+>>',# >,%A# 1<'# FGH;:# ;<'# 3+AC',# %># CB1'=# 1%# C'# ,'5=#&'1',A43'&#CB#1<'#50064-514%3:#2>#1<'#,'N+'=1''3?1<#4=#65,?',#1<53#1<'# 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. #$%&'(()*+%,-).%,-)%*)/')0,)1%2).3,-%4522%6)%718'0,)1%,9%,-)%#$%6'(()*%2).3,-%7.1% ,-)% 4-92)% #$% 6'(()*% 50% *),'*.)1% ,93),-)*% 45,-% ,-)% 718'0,)1% 2).3,-:% ;(% ,-)% *)/')0,)1% 2).3,-% 50% 0<722)*% ,-7.% ,-)% #$% 6'(()*% 2).3,-+% ,-).% 9.2=% *)/')0,)1% 2).3,-% 6'(()*% 50% 0).,% 67>?:% @-)% #$% 6'(()*% 4522% 6)% 'A17,)1% 7(,)*% ,-)% *)/')0,)1% 6'(()*%50%0).,%67>?:%@-)%('.>,59.%*),'*.0%,-)%2).3,-%9(%,-)%17,7%5(%5,%50%0'>>)00('2% 7.1%B%9,-)*450):% C*9,9,=A)D%uint16 HalUARTRead (uint8 port, uint8 *buf, uint16 length); C7*7<),)*%1),7520D% !"#$D%0A)>5(5)1%0)*572%A9*,%,-7,%17,7%4522%6)%*)71:%@762)%E:% % %&'()A95.,)*%,9%,-)%6'(()*%9(%,-)%17,7:%% *+,-$.()*)/')0,)1%2).3,-:% #),'*.D%#),'*.0%,-)%2).3,-%9(%,-)%*)71%17,7%9*%B%9,-)*450):% % !"#"$" %&'()*+,-.) @-50% ('.>,59.% 4*5,)0% 7% 6'(()*% 9(% 0A)>5(5>% 2).3,-% 5.,9% ,-)% 0)*572% A9*,:% @-)% ('.>,59.%4522%>-)>?%5(%,-)%@$%6'(()*%50%('22%9*%.9,:%;(%,-)%@$%&'(()*%50%.9,%('22+%,-)% 17,7%4522%6)%2971)1%5.,9%,-)%6'(()*%7.1%,-).%4522%6)%0).,%,9%,-)%@$%17,7%*)350,)*:%;(% ,-)%@$%6'(()*%50%('22+%,-)%('.>,59.%4522%*),'*.%B:%F,-)*450)+%,-)%2).3,-%9(%,-)%17,7% ,-7,%470%0).,%4522%6)%*),'*.)1:% C*9,9,=A)D%uint16 HalUARTWrite (uint8 port, uint8 *buf, uint16 length); C7*7<),)*%1),7520D%% !"#$()0A)>5(5)1%0)*572%A9*,%,-7,%17,7%4522%6)%*)71:%@762)%E:% %&'()6'(()*%9(%,-)%17,7:%% *+,-$.D%,-)%2).3,-%9(%,-)%17,7:% #),'*.D% #),'*.0% ,-)% 2).3,-% 9(% ,-)% 17,7% ,-7,% 50% 0'>>)00('22=% 4*5,,).% 9*% B% 9,-)*450):%% % 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. #$%&'"'()$*('+)&',-$.-/0012.'&3/0,4&('$5'-&/%'/2%'*-1+&'5627+1$2(8' ' HalUARTWrite(HAL_UART_PORT_0,y,11); //Send the command using UART //Write the value if ( status == SUCCESS ) { uint8 *pCurValue = (uint8 *)pAttr->pValue; *pCurValue = pValue[0]; a = &buf[0]; while(1) { int firstByte = 0; while (ix < sizeof(buf)) { if(firstByte == 0) { d = HalUARTRead(HAL_UART_PORT_0,a,1); if(d == 1) //Read first byte in buffer { a += d; //Point to the next byte firstByte = 1; ix = ix+d; //increment counter }else continue; } d = HalUARTRead(HAL_UART_PORT_0,a,1); if(d == 1) //Check if any data left in the Rx buffer { ix = ix+d; //increment counter a += d; //Point to the next byte }else{ MSDelay(4000); //Delay 400ms d = HalUARTRead(HAL_UART_PORT_0,a,1); //check Rx buffer if(d == 1) //Any data in the Rx buffer? { ix = ix+d; //increment counter a += d; //Point to the next byte }else break; } } if(firstByte == 1) break; } strncpy(value,buf,ix); global variable } break; //copy data from buffer to the ' #$%&'"9':$6-7&'#$%&';37&-,+9'<&/%'='>-1+&'?627+1$2' ' !"# %$&'()#*+$*",% @ABCDA.*/01.(/347?. . /0%.&' (%)*#+,&+-.' #$%&'$()&(@&A'%%. (B.*0CC42.D7.C0==. #$%&'$()&(@&$*E')&A'%%. (B.*0CC42.D7./3.!"#$#%&'()*+.F. ',-./-012-,342+54-,6. #$%&'$()&(@&)GHIE'). (B.D7.D1=4.CJ2.D1=4)DKJ03.3DK4. #$%&'$()&)@&A'%%. )B.*0CC42.D7.C0==. #$%&'$()&)@&IHL)M. )B.*0CC42.D7.C244.3J.N2D34.KJ24.1/3/. )/5=4.<>.O/==5/PQ.IR4S37?. . AJ2.KJ24.DSCJ2K/3DJS./5J03.3T4.12DR427.$LG.DSP=01DSU.Q4V7W.%IX7W.PJS70=3. 3T4.24C424SP4>.[14]?. . 1212 3454'6%*7.-8-9+%)'!#-&-*-8' 7 897:;#9;<7=.(4Y0473.3J.74S1.5/3342V.RJ=3/U47 *V347.3J.74S1.PJS32J==42>..-BOO.-BXX.-B9-.-B--.-B--.-B--.-B--.-BXA.-BII. Z/D3.3J.24P4DR4.$O[.J2.\$O[.]-B$$.-B;;..J2...-B**.-B!!^. Z/D3.3J.24P4DR4._`5/3a89?BBb./7PDD.732DSU. . 887:;#9><7=.(4Y0473.3J.74S1./._#4==J.ZJ2=1cb.K477/U47 *V347.3J.74S1.PJS32J==42>..-BOO.-BXX.-B98.-B--.-B--.-B--.-B--.-BXI.-BII. Z/D3.3J.24P4DR4.$O[.J2.\$O[.]-B$$.-B;;..J2...-B**.-B!!^. Z/D3.3J.24P4DR4._#4==J.ZJ2=1cb.732DSU. 8?7:;#99<[email protected]/S1.3J.302S.JS.%IX7./3.C0==.6JN42. 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! "'()(!*+,,-./012/+. "#$%&'$('&%)*'+()$,(--%,.''/011'/022'/033'/0//'/0//'/0//'/0//'/022'/044' 567$'$(',%+%78%'91:'(,';91:'' ' !"#$%&'!(#)'?%)*'+(@@6)*'$('$A,)'()'B42&'6$'C6-D'E(F%,# "#$%&'$('&%)*'+()$,(--%,.''/011'/022'/03G'/0//'/0//'/0//'/0//'/021'/044' 567$'$(',%+%78%'91:'(,';91:'' ' !*#$%&'+(#)'?%)*'+(@@6)*'$('$A,)'(DD'B42&# "#$%&'$('&%)*'+()$,(--%,.''/011'/022'/03!'/0//'/0//'/0//'/0//'/02"'/044' 567$'$(',%+%78%'91:'(,';91:'' ' ' 3/456577!8+./2+4/.9!:+4!'+614!';725,7! ! <1/754!81.=1.+!!!!!! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!'()*+,,+-!.,//)0123+1,0 # # !"#$%&'()* +,-./00/1(!022-34!5/403( # # )*6* 47%'89:;%<87( $%&'# '()*&+,# -&.('# /,0# +.(1.&(2# +3# *%(# 445"!6# 789(*++*%# !:6# )+;;9,&)/*&+,:#$%&'#.(1'&+,#!:6#+3#789(*++*%#2/'#)1(/*(0#*+#/88+2#*%(#*1/,'3(1# +3#';/88#/;+9,*'#+3#0/*/#/*#/#*&;(<#)+,'9;&,-#/#.(1=#8+2#/;+9,*#+3#>+2(1:## ?*# &'# &;>+1*/,*# *+# ;(,*&+,# *%/*# 0(.&)('# *%/*# '9>>+1*# @+*%# )+;;9,&)/*&+,'# 1(-98/1# 7$# /,0# 7AB# /1(# )/88(0# C09/8# ;+0(# 0(.&)('D# @9*# 3+1# *%+'(# *%/*# +,8=# /88+2'# +,(# +3# *%(# *2+# )+;;9,&)/*&+,'# *%/*# /1(# )/88(0# C'&,-8(# ;+0(# 0(.&)(':D# ?,# *%(# ,(/1# 39*91(# 8/>*+>'# /,0# ';/1*>%+,('# 2&88# @(# >1+.&0(0# 2&*%# *%&'# *=>(# +3# 09/8# ;+0(# 0(.&)('<# '+# *%/*# *%(=# )/,# '9>>+1*# @+*%# )+;;9,&)/*&+,':## # )*=* +,.(>'8%8;8?(+#@<;@( $%(# 789(*++*%# A+2# B,(1-=# >1+*+)+8# )+,'&'*'# &,# *2+# 0&33(1(,*# '()*&+,'E# )+,*1+88(1#/,0#%+'*:#$%&'#0&33(1(,)(#@(*2((,#)+,*1+88(1#/,0#%+'*#)+;('#31+;#*%(# >1(0()(''+1#!"#$%#&%'()*+",,"-'.,&+/'?,#*%/*#)+1(#@+*%#'()*&+,'#,+1;/88=#2(1(# &;>8(;(,*(0#'(>/1/*(8=:##F&-91(#GH#'%+2'#*%(#@/'&)#789(*++*%#>1+*+)+8#'*/)I:# # F&-91(#GHE#7AB#J1+*+)+8#K*/)I# 415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6! ! <316*5!730=30,!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!'()*+,,+-!.,//)0123+1,0 #$%&'%!()%*$+%,-./0123%*$4%*,,105*60.$3%67*6%*-2%8324%*-2%,1*524%.$%6.,%./% 672%9:;%*$4%9:''%1*+2-3(%% % !"#"$" %&'&()*+,**&--+.(/0)1&+2%,.3+ '72% 92$2-05% :55233% ;-./012% <9:;=% 42/0$23% 672% >*305% -2?80-2@2$63% ./% *% &1826..67% 42A052(% #6% 42/0$23% 672% ,7+305*1% 1*+2-B% 10$C% 1*+2-B% DEF:;B% 3258-06+% @*$*G2-B% *66-0>862% ,-.6.5.1% *$4% G2$2-05% *66-0>862% ,-./012(% #6% *13.% 4235-0>23% 672% 40//2-2$6% >27*A0.-3% /.-% 42A0523% 4035.A2-+B% 5.$$2560.$B% 3258-06+B% *$4% *8672$605*60.$(% % '72%9:;%1*+2-%03%*1H*+3%.,2-*60$G%0$%.$2%672%$2I6%/.8-%-.123J%% ! &-.*45*362-J%:$%*4A2-6032-%67*6%03%$.$K5.$$256*>12(%% ! L>32-A2-J% M5*$3% /.-% *4A2-6032@2$63B% >86% 5*$$.6% 0$060*62% 5.$$2560.$3(% ! ;2-0,72-*1J% :$% *4A2-6032-% 67*6% 03% 5.$$256*>12B% *$4% .,2-*623% *3% *% 31*A2%0$%*%30$G12%10$CK1*+2-%5.$$2560.$(%% ! F2$6-*1J% M5*$3% /.-% *4A2-6032@2$63% *$4% 0$060*623% 5.$$2560.$3N% .,2-*623%*3%*%@*362-%0$%*%30$G12%.-%@8160,12%10$CK1*+2-%5.$$2560.$3(% FFEO!)%03%$.6%*11.H24%6.%H.-C%0$%6703%@.42(%% #$% *% 6+,05*1% &DP% 3+362@B% 672% ,2-0,72-*1% 42A052% *4A2-60323% H067% 3,250/05% 4*6*% 12660$G% *$+% 52$6-*1% 42A052% C$.H% 67*6% 06% 03% *% 5.$$256*>12% 42A052(% '703% *4A2-6032@2$6%5.$6*0$3%672%42A052%*44-233%*$4%*44060.$*1%672%42A052%$*@2(%% :%5.$$2560.$%-2?8236%03%/.-@24%>+%40//2-2$6%,*-*@262-3J% ! F.$$2560.$% #$62-A*1J% #6% 03% 672% 0$62-A*1% 60@2% >26H22$% 6H.% 5.$$2560.$%2A2$63B%*1H*+3%0$%8$063%./%Q(EO@3(%'72%@0$0@8@%60@2% 06% 5.814% >2% 236*>1037% 03% R(O@3B% *$4% 672% @*I0@8@% 03% !()3(% '72% *4A*$6*G2%./%7*A0$G%*%A2-+%1.$G%5.$$2560.$%0$62-A*1%*11.H3%3*A0$G% ,.H2-(% L$% 672% 5.$6-*-+B% 0/% *% 42A052% $2243% 6.% 32$4% 4*6*B% 06% @836% H*06%8$601%672%42A052%H*C23%8,%/-.@%318@>2-(%% ! M1*A2% D*62$5+J% 90A23% 672% 31*A2% 42A052% 672% .,,.-68$06023% 6.% 3C0,% *% $8@>2-% ./% 5.$$2560.$% 2A2$63(% '703% G0A23% 672% ,2-0,72-*1% 3.@2% /12I0>0106+% 0$% 67*6% 0/% 672-2% 03% $.% 4*6*% 6.% 32$4B% 06% 5*$% 57..32% 3C0,% 5.$$2560.$(%'72%A*1823%*-2%0$518424%0$%672%-*$G2%)%S%!TT(%'72%/0-36% A*182% @2*$3% 672-2% *-2% $.% 3C0,% 5.$$2560.$3B% *$4% 672% 325.$4% .$2B% @2*$3%672-2%*-2%UE3%>26H22$%6H.%2//2560A2%5.$$2560.$3(%% 415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6! ! <316*5!730=30,!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!'()*+,,+-!.,//)0123+1,0 ! #$%&'()*)+,- .)/&+$01- 234)/$/- 3/+$,0- +5- 0)/&- 6&07&&,- 07+*$88&**5$9-8+,,&80)+,-&(&,0*:-;973<*-),-$,)0*-+5-=>/*:-?39$&*-3'&6&07&&,-=>-3,@-AB>>C-/&3,),D-0E30-=>-0E&'&-3'&-=>>/*-3/+,D-0+8+,,&80)+,*C-3,@-AB>>-/&3,*-0E&'&-3'&-AB:>*:-.E&- &55&80)(&- 8+,,&80)+,- ),0&'(39- )*- 0E&- 3/+$,0- +5- 0)/&- 6&07&&,07+- *$88&**5$9- 8+,,&80)+,- &(&,0*C- 3**$/),D- 0E30- 0E&- *93(&- *F)%*0E&- /34)/$/- ,$/6&'- +5- %+**)69&- &(&,0*- )5- *93(&- 930&,8<- )*399+7&@:-G0-83,-6&-8398$930&@-$*),D-0E&-,&40-&H$30)+,1!""#$%&'#!!!"##$%&'"#!!!"#$%&'( ! !"##$%!"#$!!"#$%&'(!!!!!"#$%&!!"#$%&' ! !!- - !"#$%&'(-- - I+,,&80)+,-G,0&'(39-J-K>-L=>>/*M:- - #93(&-N30&,8<-J-!:- - - O55&80)(&-I+,,&80)+,-G,0&'(39-J-!""! ! ! ! ! !""!"- .E)*-P>>/*-/&3,*-0E30-),-3-*)0$30)+,-7E&,-,+-@303-)*-0'3,*/)00&@C0E&-*93(&-@&()8&-7)99-+,9<-0'3,*/)0-+,8&-&(&'<-P>>/*:- 23,3D),D- 399- 0E+*&- %3'3/&0&'*- E3*- 6+0E- 3@(3,03D&*- 3,@- @)*3@(3,03D&*C- 5+'- &43/%9&C- 6<- '&@$8),D- 0E&- 8+,,&80)+,- ),0&'(39C- )0- 7)99- ),8'&3*&- 0E&- %+7&'8+,*$/%0)+,C-6$0-)0-7)99-'&@$8&-0E&-3/+$,0-+5-0)/&-,&&@&@-0+-*&,@-3,@-'&8&)(&@303:- Q,- 0E&- +0E&'- E3,@C- ),8'&3*),D- 0E&- 8+,,&80)+,- ),0&'(39C- )0- 7)99- '&@$8&- 0E&%+7&'-8+,*$/%0)+,C-6$0-)0-7)99-),8'&3*&-0E&-3/+$,0-+5-0)/&-6&07&&,-*&,@-3,@'&8&)(&-@303 [15]:-;- 8+,,&80)+,- 83,- 6&- (+9$,03')9<- 0&'/),30&@- <- &)0E&'- 0E&- /3*0&'- +5- 0E&*93(&-@&()8&-5+'-3,<-'&3*+,:-G5-+,&-*)@&-),)0)30&*-0&'/),30)+,C-0E&-+0E&'-*)@&-/$*0'&*%+,@-388+'@),D9<-0+-7E30-E3*-6&&,-@&/3,@&@:-- !"#"#" $%&%'()*+,,'(-.,%*/'01(2%*3$+445* .E&- R;..- %'+5)9&- *%&8)5)&*- 0E&- *0'$80$'&- ),- 7E)8E- %'+5)9&- @303- )*&48E3,D&@:-R;..-)*-6$)90-+,-0+%-+5-0E&-;00')6$0&-S'+0+8+9-L;..M:-R;..-@&5),&*07+-'+9&*1-#&'(&'-3,@-I9)&,0:-- 415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6! ! <316*5!730=30,!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!'()*+,,+-!.,//)0123+1,0 ! #$%%& '()*+,-& %.)/& )/& ,.*& 0*1)2*& ,.3,& )/& 4*30)+5& 6& 74),)+5& 03,3& 849:6,9&,.*&#$%%&;*41*4<&=+&9>4&23/*&,.*&?;@&09+5(*&)/&,.*&#$%%& 2()*+,<& ! #$%%& ;*41*4-& %.)/& )/& ,.*& 0*1)2*& 29+,3)+)+5& ,.*& 03,3& ,.3,& )/& A*)+5& 4*30& 6& 74),,*+& AB& ,.*& #$%%& '()*+,<& =+& 9>4& 23/*& ,.*& C*B89A& )/& ,.*& #$%%&/*41*4<& #$%%& 49(*/& 34*& 29:D(*,*(B& 0)88*4*+,& 3+0& .31*& +9& 4*(3,)9+& 7),.& ,.*& #$E& 49(*/<&& F)5>4*& GH& /.97/& ,.*& ,BD)23(& ,79I73B& 29::>+)23,)9+& A*,7**+& 3& 29:D>,*4&3+0&3&/*+/94<&& & F)5>4*&GH-&@3/)2&JK3:D(*&98&29+8)5>43,)9+& & & %.*&#$%%&D498)(*&)/&>/*0&)+&0)88*4*+,&/),>3,)9+/&/>2.&3/-&& ! L)/291*4B&98&/*41)2*/&3+0&2.3432,*4)/,)2/&9+&3&0*1)2*<& ! M*30)+5&3&2.3432,*4)/,)2&13(>*<& ! N4),)+5&3&2.3432,*4)/,)2&13(>*<& ! O9,)8)23,)9+&98&3&2.3432,*4)/,)2&13(>*<& ! =+0)23,)9+&98&3&2.3432,*4)/,)2&13(>*<& P'.3432,*4)/,)2/Q& 34*& 13(>*/& ,.3,& 34*& >/*0& AB& 3& /*41)2*R& 3(9+5& 7),.& D49D*4,)*/&3+0&29+8)5>43,)9+&)+894:3,)9+<&#$%%&0*8)+*/&,.*&/>AID492*0>4*/&894& 0)/291*4)+5R&4*30)+5R&3+0&74),)+5&3,,4)A>,*/&91*4&@SJ&29++*2,)9+<& %.*& 2.3432,*4)/,)2& 13(>*/R& 3(9+5& 7),.& ,.*)4& D49D*4,)*/& 3+0& 29+8)5>43,)9+& 34*& C+97+& 3/& P0*/24)D,94/Q& 9+& ,.*& #$%%& ;*41*4<& %.*4*& 34*& /,94*0& 9+& ,.*& 3,,4)A>,*&,3A(*-&& 415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6! ! <316*5!730=30,!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!'()*+,,+-!.,//)0123+1,0 ! #$%&'()*+,-.*-.*(..(%/-$''0*/,(*$//1-23/(4.*$&&1(..5*67(10*$//1-23/(* ,$.*$*&-88(1(%/*,$%&'(5** ! +09()* +,-.* -%&-:$/(.* ;,$/* &$/$* 1(91(.(%/.5* >%-7(1.$'*>%-B3(*<&(%/-8-(15C* ! D(1E-..-F%.)* +,-.* (%8F1:(.* -8* $%&* ,F;* $* GH++* :'-(%/* &(7-:(* :$%* $::(..*/,(*$//1-23/(4.*7$'3(5* GH++* &(8-%(.* &-88(1(%/* .32I91F:(&31(.* 8F1* :FEE3%-:$/-%J* 2(/;((%* /,(* GH++*.(17(1*$%&*:'-(%/*[7]5*+,(*F%(.*-/*,$.*2((%*3.(&*-%*/,-.*91FK(:/*$1()* ! L($&* M,$1$:/(1-./-:* N$'3()* +,(* :'-(%/* 1(B3(./.* /F* 1($&* /,(* :,$1$:/(1-./-:*7$'3(*$/*$*.9(:-8-:*,$%&'(O*$%&*/,(*.(17(1*1(.9F%&.* /F*/,(*:'-(%/*;-/,*/,(*7$'3(*A.399F.-%J*/,$/*/,(*$//1-23/(*,$.*1($&* 9(1E-..-F%.5C*L($&*:,$1$:/(1-./-:*7$'3(*/;FI;$0*:FEE3%-:$/-F%* -.*.,F;%*F%*8-J31(*PQ5* * * R-J31(*PQ)*L($&*M,$1$:/(1-./-:*N$'3(* * ! L($&* >.-%J* M,$1$:/(1-./-:* >>>>+ 223#+ /?'@?.1+ &'AA97$&./$'7+ )B.A<6)+ $%+ %-'?7+'7+;$>9*)+CD=+ + + E$>9*)+CC4+#$%&'()*+,-.*.&/)*$%/$&+01+223#+ + ! F*$/)+ ,-.*.&/)*$%/$&+ G.69)4+ 5-)+ &6$)7/+ *)89)%/%+ /'+ ?*$/)+ .+ &-.*.&/)*$%/$&+(.69)+./+.+%<)&$;$&+-.7:6)+/'+/-)+%)*()*H+/-)+%)*()*+ ?$66+ *)%<'7:+ /'+ /-)+ &6$)7/+ /'+ $7:$&./)+ ?-)/-)*+ /-)+ ?*$/)+ ?.%+ %9&&)%%;96+ '*+ 7'/=+ F*$/)+ &-.*.&/)*$%/$&+ (.69)+ 9%$7>+ -.7:6)+ /?'@ ?.1+&'AA97$&./$'7+)B.A<6)+$%+%-'?7+'7+;$>9*)+CI=+ + + E$>9*)+CI4+F*$/)+,-.*.&/)*$%/$&+G.69)+ + E$>9*)+ CJ+ %-'?%+ /-)+ :$;;)*)7/+ KL55+ .//*$09/)%+ 9%):+ 01+ /-)+ ,,C!J"+ M69)/''/-+ &-$<+ ;*'A+ 5)B.%+ 37%/*9A)7/%=+ 37+ /-)+ /.06)+ $/+ $%+ %-'?7+ /-)+ -.7:6)+ (.69)%+ ';+ /-)+ :$;;)*)7/+ &-.*.&/)*$%/$&%+ .7:+ :$;;)*)7/+ 223#%=+ L6%'+ $/+ $%+ <*)%)7/):+ /-)+ KL55+ <)*A$%%$'7%+ ';+ /-)+ :$;;)*)7/+ 223#%=+ 5-$%+ $%+ %'A)/-$7>+ /-./+ &'96:+ 0)+ A.7.>):+01+/-)+9%)*+[15]=++ 415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6! ! <316*5!730=30,!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!'()*+,,+-!.,//)0123+1,0 # $%&'()#*+,#-.//#.00(%1'0)#2%30# # 456)# 7# 896# 456)# +# 8()# ):0(8;03# 5<# 0=)# 35'(;)# ;56)# 0=80# 3=5>3# 0=)# >8?# 0=80#()86#896#>(%0)#800(%1'0)3#>)()#@)(<5(A)6B## . . . // Make sure it's not a blob operation (no attributes in the profile are long) if ( offset > 0 ) { return ( ATT_ERR_ATTR_NOT_LONG ); } if ( pAttr->type.len == ATT_BT_UUID_SIZE ) { // 16-bit UUID uint16 uuid = BUILD_UINT16( pAttr->type.uuid[0], pAttr>type.uuid[1]); switch ( uuid ) { // No need for "GATT_SERVICE_UUID" or "GATT_CLIENT_CHAR_CFG_UUID" cases; // gattserverapp handles those types for reads case SIMPLEPROFILE_CHAR1_UUID: *pLen = ix; for(int i=0;i<*pLen;i++) pValue[i]=value[i]; value on BTool ix=0; break; //display default: // Should never get here! (characteristics 3 and 4 do not have read permissions) *pLen = 0; status = ATT_ERR_ATTR_NOT_FOUND; break; } # 456)#7,#C5'(;)#456)#D:;)(@0,#E)86#.00(%1'0)B# 415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6! ! <316*5!730=30,!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!'()*+,,+-!.,//)0123+1,0 static bStatus_t simpleProfile_WriteAttrCB( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 len, uint16 offset ) { bStatus_t status = SUCCESS; // If attribute permissions require authorization to write, return error if ( gattPermitAuthorWrite( pAttr->permissions ) ) { // Insufficient authorization return ( ATT_ERR_INSUFFICIENT_AUTHOR ); } if ( pAttr->type.len == ATT_BT_UUID_SIZE ) { // 16-bit UUID uint16 uuid = BUILD_UINT16( pAttr->type.uuid[0], pAttr>type.uuid[1]); unsigned char buf[BUF_LEN]; unsigned char *a; unsigned char bat[]={0x02,0xCC,0xDD,0x20,0x00,0x00,0x00,0x00,0xDF,0xEE,0x03}; //Battery command unsigned char hw[]={0x02,0xCC,0xDD,0x21,0x00,0x00,0x00,0x00,0xDE,0xEE,0x03}; //HelloWorld command unsigned char *y; unsigned int d; switch ( uuid ) { case SIMPLEPROFILE_CHAR1_UUID: case SIMPLEPROFILE_CHAR3_UUID: FALA_Init(); //Initialize UART and configurations //Validate the value // Make sure it's not a blob oper if ( offset == 0 ) { if ( len > 1 ) status = ATT_ERR_INVALID_VALUE_SIZE; } else { status = ATT_ERR_ATTR_NOT_LONG; } if(pValue[0] == bat[3]) y=&bat[0]; else if(pValue[0] == hw[3]) y=&hw[0]; else status = ATT_ERR_ATTR_NOT_FOUND; # $%&'#()#*%+,-'#$%&'#./-',01)#2,31'#411,35+1'6 415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6! ! <316*5!730=30,!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!!!!!!"'()*+(!,-.!/0-1*)(20-( ! ! "#$%&'(!)* +,-./0-!123!"42"/.-542-! # # $%# &# '(%)*+# ,-# +.(# /01*(0(2+&+/,2# ,-# +.(# 3(%/42# &# +5,65&7# 8,00)2/8&+/,2#.&%#9((2#8'(&+(3#9(+5((2#+.(#%,*&'#1&2(*#8,2+',**('#&23:#/2#+./%# 8&%(:# &# *&1+,1;# <.(# 8,00)2/8&+/,2# /2# +./%# 1',=(8+# /%# 9&%(3# ,2# +5,# 3/--('(2+# 1',+,8,*%:# %,# +.('(# &'(# +5,# 3/--('(2+# 8,00)2/8&+/,2%;# <.(# -/'%+# +5,65&7# 8,00)2/8&+/,2# /%# +.(# >?@"@:# -',0# A$B$# 8,2+',**('# +,# +.(# C(7-,9# DEF!G# 0/8',8,2+',**('H;# A/4)'(# @!# %.,5%# +.(# )%('# /2+('-&8(# +,# (%+&9*/%.# I<# 8,00)2/8&+/,2%#)%/24#I<,,*;# # # # A/4)'(#@!J#K,22(8+/,2#L%+&9*/%.(3#&23#M'/+(#N#>(&3#-',0#I*)(+,,+.#)%/24#I<,,*;# # <&*C/24# &9,)+# +./%# 8,00)2/8&+/,2:# (&'*7# /2# +.(# 3(%/42# +.(# 8,00&23%# 5('(# +(%+(3# )%/24# &# OK# &11*/8&+/,2# 8&**(3# PK,2:# %/0/*&'# +,# +.(# (*3('# Q71('+('0/2&*:# 5./8.# /%# 2,+# &R&/*&9*(# /2# M/23,5%# S;# <.(# -/'%+# 8.&**(24(# 5&%# C2,5#.,5#+.&+#8,00)2/8&+/,2#5,'C%;## 324'*'((!50-2+042-6!704!80*,4!89(+':(! ! ;,2('4!5,-<,-0!!!!"! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!!!!!!"'()*+(!,-.!/0-1*)(20-( #$%& '()& *$%& +,--(./0& (1%& 0%.*& *,& *$%& +,.*1,22%1& 0%%-0& *,& 3%& (.& %(0)& (4425+(*5,.6&37*&*$%1%&'%1%&/588%1%.*&41,32%-0&'5*$&*$%&3788%1&059%6&5.5*5(22)&*$%& 3788%1&059%&,8&*$%&:;<#&+,--7.5+(*5,.&3,*$&0%./5.=&(./&1%+%5>5.=&'(0&?3)*%0@& A,-%*$5.=& 70%2%00& 58& 5*& 50& .%+%00(1)& *,& 0%./& -,1%& *$(.& ?3)*%0& (0& *$50& /%05=.& 1%B751%0@&#$%&.%C*&*(0D&'(0&%.(32%&5.*%1174*0&5.&*$%&:;<#&*1(.0-5005,.&5.&,1/%1& *,&=7(1(.*%%&*$%&=,,/&+,--7.5+(*5,.@&& ;.,*$%1& 5-4,1*(.*& 5007%& '(0& *,& D.,'& *$%& 0*(1*& (./& %./& +,--(./0@& A%%D5.=&*$50&5.8,1-(*5,.&*,,D&74&*,&(&+,742%&,8&$,710&*1)5.=&/588%1%.*&0*(1*E%./& '()0&,8&0%./5.=&/(*(@&& ;0& *$%& 70%1F0& =75/%& (./& ,*$%1& /,+7-%.*0& 1%2(*%/& *,& *$%& GG?!"H& '(0& 1%2(*5>%2)& .%'6& 0,-%& 5.8,1-(*5,.& '(0& '1,.=6& 0,& (& 2,*& ,8& *15(2& (./& %11,1& '(0& .%+%00(1)&5.&*$%&41,=1(--5.=&,8&*$%&:;<#&-,/72%@&I>%.&*$%&J;<&+,-452%1&'(0& .,*& 4%18%+*6& 5*& 50& *$%& ,.2)& +,-452%1& (22,'%/& 8,1& *$%& GG?!"H6& 0,-%& $%(/%1& 852%0& '%1%&.,*&5.+27/%/6&87.+*5,.0&07+$&(0&415.*86&00+(.8&/,&.,*&',1D&4%18%+*2)6&*$%1%& '%1%&.,&*5-%&,1&+2,+D&87.+*5,.0&,.&5*6&5.&,1/%1&*,&-(.(=%&1%(2&*5-%@& J.&*%1-0&,8&*$%&K27%*,,*$&+,--7.5+(*5,.&*$5.=0&17.&0-,,*$2)6&(0&(&2,*&,8& D.,'2%/=%& '(0& =(5.%/& ',1D5.=& ,.& *$%& :;<#& +,--7.5+(*5,.@& #$%& 8510*& 5007%& '(0&%.(325.=&*$%&5.*%1174*0&0,&*$(*&*$%&'$,2%&3788%1&+,72/&3%&0%.*@&;./&(.,*$%1& 5-4,1*(.*&*(0D&'(0&K27%*,,*$&1%81%0$5.=&705.=&*$%&K#,,2&0,8*'(1%@&& A,-%&(+*5,.0&'%1%&.,*&(22,'%/&3)&*$%&K#,,26&07+$&(0&'(5*&8,1&(&1%81%0$&*,& 415.*& 5.& *$%& 0+1%%.6& 1%(/& -,1%& *$(.& ?3)*%0& %(+$& *5-%@& L,1& %C(-42%& *$50& 2(0*& *$,7=$*&-()&3%&073M%+*&*,&87*71%&/%>%2,4-%.*0@&J.5*5(22)&5*&',72/&3%&5.*%1%0*5.=& *,& (22,'& K#,,2& *,& 0%./& -,1%& *$%& ?3)*%& +,--(./06& %.(32%& *$%& N2,.=& +$(1(+*%150*5+& >(27%& 1%(/& (./& '15*%@O& #$50& +,72/& 3%& *$%& 5.*%1-%/5(*%& 0*%4& *,& D.,'&$,'&*,&+1%(*%&*$%&P:J&8,1&(.)&QA&705.=&2(4*,40&,1&0-(1*4$,.%0@&& J.& *$%& %./6& (./& D.,'5.=& (22& /5885+72*5%06& (0& -%.*5,.%/& (3,>%6& (& 0*(32%& +,--7.5+(*5,.& +$(..%2& $(0& 3%%.& +1%(*%/& 5.& ,1/%1& *,& 0%./& (./& 1%+%5>%& +,--(./0& 81,-& *$%& 0,2(1& 4(.%2& +,.*1,22%16& 0,& *$(*& 5*& 50& .,*& .%+%00(1)& *,& %0*(3250$& 4$)05+(2& +,.*(+*& '5*$& 5*@& #$50& 41,M%+*& +1%(*%0& *$%& 3(05+0& (./& %.(32%0& 87*71%&0*7/%.*0&*,&/%>%2,4&(&3%**%1&0,27*5,.@&& R$%.&*$%&41,M%+*&'(0&+1%(*%/&5.&%(12)&S,>%-3%16&0,-%&,*$%1&,3M%+*5>%0& '%1%& %0*(3250$%/6& 07+$& (0& +1%(*%& (& TGK& 2(),7*6& (./& 0,-%& D5./& ,8& 1%2%(0%/& 41,/7+*@&U7%&*,&(22&*$%&41,32%-0&'5*$&41,=1(--5.=&(./&2%(1.5.=6&*$(*&4(1*&'(0& +$(.=%/&5.*,&+1%(*%&*$%&0+$%-(*5+&1%(/)&*,&5-42%-%.*&5.&Q$()$#,.-,$%#$*'?(0(%'%-$%&-$)-@%$"%-1"5$ $ 324'*'((!50-2+042-6!704!80*,4!89(+':(! ! ;,2('4!5,-<,-0!!!!!! !"#$%"&!! ! ! ! ! ! ! ! ! ! ! !!!!!!!!!!!!!!!!!'()(*+!,+-+./01+2)3 ! ! "#$%&'(!)* +,-,./0!1/2/3456/7-0! # # $%&'# ()*+,-.# &'# '.&//# 0&''&12# '*0,# *.%,)# 3'(,-.'# .*# 4,5,/*(# 314# &0()*5,# '*#.%3.#.%,#()*+,-.#-*6/4#0,,.#&.'#*7+,-.&5,'8#$%&'#-%3(.,)#/&'.'#.%,#.3'9'#3%,34:# &1#*)4,)#.*#;3-&/&.3.,#.%,#'6--,'';6/#-*0(/,.&*1#*;#.%,#()*+,-.#314#4,'&218## ! <0()*5,# .%,# =/6,.**.%# -*0061&-3.&*1# '>'.,0:# '*# .%3.# .%,# -*11,-.&*1'# ?*6/4# 7,# 7,..,)8# <1# *)4,)# .*# &0()*5,# .%,# -*0061&-3.&*1# '>'.,0:# &.# &'# &0(*).31.# .*# -),3.,# 3# ()*;,''&*13/# 6',)# &1.,);3-,:# '*# .%3.# &.# &'# 1*.# 1,-,''3)># .*# 6',# .%,# =$**/# '*;.?3),# ()*5&4,4# 7># $,@3'# <1'.)60,1.'8# $%&'# &''6,# ?*6/4# 7,# 5,)>#-%3//,12&12#7,-36',#.%&'#&'#3#1,?#.,-%1*/*2>#314#.%,),#&'#1*.# ;),,#'*6)-,#-*4,#.*#-),3.,#3//#4)&5,)'8## # ! =,..,)# 03132&12# .%,# (*?,)# 6',48# A&2%.# 1*?# .%,# '>'.,0# %3'# 3# 2**4#(*?,)#03132,0,1.#76.#&1#;6.6),#4,5,/*(0,1.'#&.#?*6/4#7,# (*''&7/,#.*#-),3.,#3#7,..,)#*1,#'*#.%3.#&.#?&//#),46-,#'67'.31.&3//># .%,#30*61.#*;#(*?,)#6',4#?%,1#.%,),#&'#1*#-*11,-.&*18## # ! <1# *)4,)# .*# 7,# 3# 0*),# ;/,@&7/,# 4,5&-,:# &.# ?*6/4# 7,# (*''&7/,# .*# -),3.,# 3# 4)&5,)# &1# *)4,)# .*# 2,.# 7*.%# -*11,-.&*1# 0*4,':# 463/# 314# '&12/,8# $%&'# ?&//# 263)31.,,# .%,# -*11,-.&5&.>:# '&1-,# .%,),# &'# 1*.# 2*&12#.*#7,#3#/*.#*;#=$#B8C#4,5&-,'#61.&/#DCE!:#?%,1#&.#&'#,'.&03.,4# .%3.#.%,#!CF#*;#.%,#4,5&-,'#?&//#7,#B8C#-*),8## # ! G&1&'%# .%,# HI=# /3>*6.# '*# .%3.# GJKJ# $,-%1*/*2&,'# -*6/4# ),/,3',# .%&'#()*+,-.#'**18## # # 45*+.+33!6/25)/*527!8/*!9/.:*!9;3)+13! ! <:53+*!6:2=:2/!!!!"! ! ! ! ! # !"#$"%&'()*+, # $%&#'()*# +,-./-012# !"#$%%&'"(%)%**&+%,-.(/"+#3# 45(.,167012# 89:;# <)*1)-# =5>.,?/7,01-2#@AAB3# $@&#C:D:#E)?F10.06,)-#G1?3#2#HC:D:#975I)17#')-,61#=(0J0-/.#K#C%AAL"KL2# MC#G17)(N/?)2#M)O#A2H#=(0J0-/.#@A%A3# $P )>/-7,/1#<0Q)-2#01%&2%3"+","4%&56"7%&,.&8(.9%:,&;<+<#%=%+,2#@1I#)I3# D01I01;#C,1/1?,/.#E,R)-#S#=()17,?)#T/..2#@AA"3# $U&#V,6>))#:..,/1W)2#!"#>%%&?%*.6(:%&56"7%2#'/O,I#X)>-7)(2#YI3#+())*00I2# 89:;#X)>Z0R#Z0RR51,?/7,01-#Z0(J32#@A%A3# $!&#V,6>))#:..,/1W)3#[@A%%\#V,64))#:..,/1W)3#$]1.,1)&3#***3W,6>))30(6# $^&#YI6/(# Z/../*/_2# /1I# M/_R01I# 4/(()77# `0-)# :3# +57,)(()W2# @.-A?<,%& '"(%)%**&8%(*.+<)&B(%<&C%,-.(/*D&E+<>)"+#&'"(%)%**&F%+*.(*&-",1&GEEE& HIJKLMKN3#<)*#a0(Q2#89:;#GYYY#=()--2#@AAP3# $"&#`0)#b,.,/1#2#=F,..,J#M06/*/_#c,F,(#4)../()2#HEF)#9)?5(,7_#0N#7F)#Z,JF)(# 4.0?Q#ZF/,1,16#c)--/6)#:57F)7,?/7,01#Z0I)2H#O.6(+<)&.3&P.=Q6,%(&<+7& FR*,%=*&F:"%+:%*2#O0.3#^%2#103#P2#')?)R>)(#@AAA3# $B.5)7007F#9G+3#[@A%%\#4.5)7007F3#$]1.,1)&3#***3>.5)7007F3?0R# $L.5)7007F# 9G+# [Y(,?--012# D)10O02# G17).2# c,?(0-0N72# c070(0./2# <0Q,/2# E0-F,>/\2#H9J)?,N,?/7,01#0N#7F)#4.5)7007F#9_-7)R#O3U3A32H#4.5)7007F#9G+2# @A%A3# $%A&#:%>'A' #$B&'C*D)C9' :$E*' <5FF,G' H500-2/9' $CIF69' %AJK' /1' !A!K9' ;<=>%>' L0726.-3M-06'N7/76O--/9:'C*D)C9'N7/76O--/'>J$$A' #$!&'L-P76' )26/05Q-2/69' :HH>!BJ' AB=STU' V,5-/11/OW' ,1X' -2-0YG' *FF,3.7/31269:' L-P76' )26/05Q-2/69' Z6-0[6' S534-'>J$JA' #$@&'L-P76')26/05Q-2/69':T*\'N03M-06'*FF,3.7/312']01Y07QQ32Y')2/-0R7.-9:' L-P76')26/05Q-2/69'Z6-0[6'S534-'>JJ?A' #$^&'L-P76' )26/05Q-2/69' :V,5-/11/OW' \1X' (2-0YG' HH>!BJ' C323' N-M-,1FQ-2/'_3/'Z6-0`6'S534-9:'L-P76')26/05Q-2/69'Z6-0'S534-'>J$JA' ' ' "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! ! ! ! ! ! ! ! ! ! "#$%!&&'!()*+*,&)!-.$/(0! ! ! ! ! ! ! ! ! ! !! !"#$#%&"'()*+!,'' ' ' ' ' ' ' ' # # $%&#'()*&+#,-)#./)&0&11#2-''34/2(+/-4#5-+%#/4631+)/(0#(46#6-'&1+/2#%(1# (# %/7%# 7)-.+%# )(+&# /4# )&2&4+# 8&()19# :(0&1# ()&# &;<&2+&6# +-# +(*&# -,,# 1&2+-)# 13<<-)+&6#58#+&2%4-0-7/2(0#(6=(42&1>#132%#31#'-5/0&=/2&1#0/*'()+<%-4&1># ?@(61># +(50&+1># (46# -+%&)# 7(67&+1A# .%/2%# %(=&# &'5&66&6# ./)&0&11# 2-''34/2(+/-4#<)-+-2-019## $%&# <)&6/1<-1/+/-4# +-# (2B3/)&# 132%# 6&=/2&1# /1# 7&4&)(008# 7--6># ./+%# +%&# /'(7&# +%(+# %(1# 5&&4# ,-)7&6# 58# +%&# .-)06# -,# 2-''34/2(+/-41# (46# +&2%4-0-789# C=&)8-4&# .(4+1# +-# %(=&# ./)&0&11# (22&11# +-# +%&# 2-4+)-0# -,# %&(+/47># (/)# 2-46/+/-4/47>#(46#0(<+-<#6&=/2&1#(1#1-'&#&;('<0&19#@)&1&4+08#/4#(#.-)06#,300#-,# 7)&&4#+&2%4-0-78>#+%&#/'<0&'&4+(+/-4#-,#(#./)&0&11#'-4/+-)/47#,-)#1-0()#<(4&01# /1#4&&6&69# D(/+/47#,-)#+%&#./)&0&11#2-''34/2(+/-41#'()*&+#,-)#132%#6&=/2&1>#1-0()# <(4&01># ,/4(008# &;<0-6&19# ?+# /1# +%&# /6&(0# +/'&# +-# 2)&(+&# <)-+-+8<&1# +%(+# '&&+# +%&# 4&&61#-,#<-+&4+/(0#20/&4+1>#231+-'&)1>#(46#+)8#+-#2-41-0/6(+&#/4#+%&2+-)#5&,-)&# +%&#<)-0/,&)(+/-4#-,#'(48#2-'<(4/&1#./+%#6/,,&)&4+#1-03+/-419## E<<0/2(+/-41# +%(+# %(=&# (# '-4/+-)/47# 181+&'# -,# +%/1# +8<&# ()&# (0'-1+# &460&11# (46# +%&)&# ()&# (# 43'5&)# -,# <-+&4+/(0# 231+-'&)19# :-'&# )&<)&1&4+(+/=&# &;('<0&1#()&F## # ! GEHE#$&2%4-0-7/&1#(46#-+%&)#2-'<(4/&1#+%(+#()&#,-231&6#-4#1-0()# &4&)78# /4631+)89# $%-1&# &4+/)&# 2-'<(4/&1# 2(6# (66# =(03&# +-# +%&/)# 181+&'1# /,# +%&8# %(=&# (# ./)&0&11# 2-4+)-0# 181+&'># &(18# +-# 31&># +-# '(/4+(/4#1-0()#/41+(00(+/-419## ! ?4#+%&#<350/2#1&2+-)>#/4#-)6&)#+-#'(/4+(/4#(/6#1+(+/-41#-4#+%&#)-(61># (46# /003'/4(+&# +)(,,/2# 1/741># .%/2%# ()&# <-.&)&6# 58# 1-0()# &4&)789# $%/1# +8<&# -,# '-4/+-)/47# 6&=/2&1# '(*&# /+# &(1/&)# +-# '(/4+(/4># ,-)# &;('<0&#(#=&%/20/)230(+/47#-4#+%&#)-(6#2-306#&1+(50/1%#./)&0&11# 2-44&2+/-4#(46#2-00&2+#+%&#(<<)-<)/(+&#/4,-)'(+/-49## ! E00# %-31&1># /4631+)/&1# +%(+# %(=&# 1-0()# <(4&01># +%/1# '-4/+-)/47# /1# -<+/'(0#/4#+%&#,(2&#-,#4-+#%(=/47#(22&11#+-#+%&#)--,#+-#2-00&2+#6(+(9# -./01022'%34.53/.46'73/'(318/'(9250:2' ' ;8.20/'%84<843'''!"' !"#$#%&"'()*+!,'' ' ' ' ' ' ' ' #$% &'()*% +,% -'../+),% ,0,1% 2,$% $3,% *4$4% 56'7% $3,/6% '&1% .746$-3'1,.8%% 93,%:,;%$'%2,$$/12%4%-'./$/'1%/1%4%746:,$%&/$3%$3,.,%<3464<$,6/.$/<.%'5$,1% )/,.%/1%+,/12%$3,%5/6.$%$'%'55,6%4%(1/=(,%-6'*(<$%$462,$,*%$'%4%-46$/<()46%<(.$'7,6% -6'5/),%41*%2,$%$'%:,,-%$34$%4*041$42,%'0,6%$/7,8%93,%7'1/$'6/12%.;.$,7%+,/12% *,0,)'-,*%<41%+,%4%-/'1,,6%/1%41;%'5%$3,%45'6,7,1$/'1,*%4--)/<4$/'1.8% >1;% -6'*(<$% ,?-,6/,1<,.% 5'(6% */.$/1<$% .$42,.% *(6/12% /$.% )/5,8% @(6/12% $3,% /1$6'*(<$/'1% .$42,A% &3/<3% /.% &3,6,% $3,% -6'*(<$% /.% <(66,1$);A% .4),.% 46,% 1'$% ,1'(23%$'%<'0,6%*,0,)'-7,1$%<'.$.A%.'%$34$%)'..,.%&/))%'<<(68%#1%4**/$/'1A%/$%&/))% 340,%$'%74:,%<3412,.%/1%$3,%*,./21%$'%.(/$%<(.$'7,6%6,=(/6,7,1$.8%%B/2(6,%C!% .3'&.%$3,%$;-/<4)%-6'*(<$%)/5,%<;<),%<(60,8% % B/2(6,%C!D%E6'*(<$%F/5,%G;<),8% % % H1<,%6,),4.,*%$3,%-6'*(<$%/1%$3,%746:,$A%*,741*%+,241%$'%26'&%.'%/$%&/))% 1,,*%$'%/10,.$%/1%/7-6'0/12%-6'*(<$/'1%-6'<,..,.%/1%'6*,6%$'%.4$/.5;%,55/1/3-# 34;3%-3=/# '6# -.+*# &'22)%+&3-+'%# *5*-/2# +*# +-*# ;/1*3-+(+-5,# 3(('0+%=#-31=/-+%=#3#0+4/#&)*-'2/1#81'6+(/9## # # # # # # # # # # # # # # # # # # # # -./01022'%34.53/.46'73/'(318/'(9250:2' ' ;8.20/'%84<843'''!"' ! ! ! ! ! ! ! ! ! ! ! ! ! ! "#$%!&&&'!()*$!+#,(#-!! ! ! ! ! ! ! ! ! ! !"#$%!&'("')!! ! ! ! ! ! ! ! ! ! ! # # $%&#'(&)#*+,&)-./&#'(&0#*+#,%*(#1)23&/,#*(#,%&#(2-,4.))25*0&0#67#$&8.(# 9+(,)':&+,(# /.;;&0# <$22;=# <$22;# *(# .# >?# .11;*/.,*2+# ,%.,# .;;24(# ,%&# '(&)# ,2# /2::'+*/.,&# 4*,%# ,42# <@A# 0&5*/&(=# <$22;# 42)B(# 67# /2::'+*/.,*+C# 4*,%# ,%&# ??DE"F# /%*1# '(*+C# ,%&# G?9# HG2(,# ?2+,)2;;&)# 9+,&)-./&I# 5&+02)# (1&/*-*/# /2::.+0(=#$%&#JK<#02+C;&#,%.,#*(#/2++&/,&0#,2#,%&#>?#/)&.,&#.#5*),'.;#12),#25&)# ,%&#JK<#*+,&)-./&=#<.(*/#<@A#(,./B#*(#(%24+#*+#-*C')&#DL=# # # M*C')&#DLN#@2C*/.;#O)C.+*P.,*2+#2-#Q11;*/.,*2+#.+0#<@A#K,./B=# # !" #$%&$'()*$+,*-../'0%$'1(* $2# (,.),# ,%&# .11;*/.,*2+# C2# *+,2# 1)2C).:(# 67# /%22(*+C# K,.),# R# Q;;# >)2C).:(#R#$&8.(#9+(,)':&,(#R#<;'&,22,%S@A=#$%&#+&8,#4*+024#*(#121#'1N# # M*C')&#DTN#U.*+#4*+024#<$22;=# !*+,-.-//!&01+20,+13!40,!#0.5,!#6/2-7/! ! 85+/-,!&519510!!!!"! !"#$%!&'("')!! ! ! ! ! ! ! ! ! ! ! #$% &'(% )**(+% ,(-&% ./+$(+% /-% &'(% 01$2/03% .,1.4% 56(71.(8% 9$2% :(,(.&% 5;(0% 6(71.(8%9:%:'/0$%/$%-1<)+(%=>?% % @1<)+(%=>?%;(0%6(71.(%A1$2/0B% % C'(%$(D&%*/*%)*%01$2/0%01,,%E(?%% SWRU270 SWRU270 Figure 12 % @1<)+(%FG?%H(+19,%I/+&%H(&&1$<:%01$2/0B% Figure 12 port of the USB Dongle from step 1. For the If using the USB Dongle, set the “Port” value to the COM other settings, use the default values as shown in Figure 12. Press “OK” to connect to the board. The If using the USB Dongle, set the “Port” value to the COM port of the USB Dongle from step 1. For the #-%):1$<%&'(%JHK%2/$<,(%:(&%&'(%*/+&%79,)(%&/%LMN%*/+&%0'(+(%1:%&'(%JHKB% following other screen settings,will use appear: the default values as shown in Figure 12. Press “OK” to connect to the board. The following screen will appear: J:(%2(-9),&%79,)(:%-/+%&'(%/&'(+%:(&&1$<:B%O$2%.,1.4%MPB% Figure 13 Figure 13 % @1<)+(%FQ?%H&9&):%01$2/0%-+/R%KC//,B% This screen indicates that you are now connected to the USB Dongle. The screen is divided up into a few the left sidebar contains information on the Dongle’s status. Thescreen left side the sub-window This sections: screen indicates that you are now connected to USB the USB Dongle. The is of divided up into a few contains logsidebar of all messages from the PC theUSB dongle and received byThe the PC The sections: the aleft containssent information ontothe Dongle’s status. leftfrom sidethe of dongle. the sub-window !*+,-.-//!&01+20,+13!40,!#0.5,!#6/2-7/! !the dongle 85+/-,!&519510!!!!"! rightaside contains GUIPC forto control of the USB Dongle. by the PC contains logofofthe allsub-window messages sent froma the and received from the dongle. The right side of the sub-window contains a GUI for control of the USB Dongle. 4.2 Creating a BLE Connection between USB Dongle and Keyfob !"#$%!&'("')!! ! ! ! ! ! ! ! ! ! ! "#$%&'(#)%*'+$%,-%)#$%.'/+,.%0,/)1'/*%1%234%),%51/1($%)#$%+$6'0$7%8/+% 9$-)%*'+$%')%.'99%*#,.%)#$%+$6'0$%'/-,%1/+%5$**1($*7%% % !" #$%&'%(&()*+(,-../01,&'1-0(2%'3%%0(4-056%(&07(8%9:-2"( 8)%)#'*%:,'/)%)#$%3;<%=,/(9$%'*%&$1+>%),%+'*0,6$&%1/>%,)#$&%+$6'0$?%'/%)#'*% 01*$%)#$%@$>-,A7%4/*$&)%)#$%A1))$&>%'/%)#$%@$>-,A%BC$&':#$&19%+$6'0$7D% C&$**% )#$% &'(#)% AE)),/% BF'(E&$% GHD% ),% *)1&)% 1/% 1+6$&)'*$5$/)% $6$/)% 0,5'/(%-&,5%)#$%I$>-,A7%"#'*%$6$/)%.'99%&$*)%-,&%GJ*7%8-)$&%)#1)%)'5$%)#$%+$6'0$% SWRU270 .'99%0,5$%A10I%),%*)1/+A>%5,+$7%( Figure 14 4.2.2 Scanning for Devices % % F'(E&$%GHK%L'(#)%@$>-,A%?-&;'@*&27*+A' 0.'-2'-.'.$*5&'*&',-1=7%'BC8' ' SWRU270 D-1=7%'BCE'?-&;'@*&27*+'()**+8' ' )$%' 6070<%2%7.' =.%3' =&3%7' @*&&%/2-*&' F%22-&1.' 07%' 2$%' 3%,0=+2' *&%.8' 9,' 2$*.%' 6070<%2%7.' 07%' <0&01%3' 2$%:' 5-++' /$0&1%' 2$%' %,,%/2-4%' /*&&%/2-*&' -&2%740+8' )$%' &%G2' 20.;' -.' %.20H+-.$-&1' 2$%' /*&&%/2-*&8' )*' 1%2' 2$-.' 3*&%' /+-/;' *&' Figure 18 >I.20H+-.$A'0&3'2$%'/*&&%/2-*&'5-++'H%1-&8')*'/$%/;'-,'2$%'/*&&%/2-*&'-.'.=//%..' If the keyfob is still in discoverable mode, a connection should be established (press the right button on the *7'&*2J'-2'-.'.$*5&'*&'2$%'+%,2'.-3%'*,'2$%'5-&3*5'2$%'.202=.'*,'2$%'%4%&2J',-1=7%' BK8'' keyfob once again if the device if more than 30 seconds have passed since the device was previously made discoverable and the process has completed). Once a connection is established, the message window will return a “GAP_EstablishLink” event message with a “Status” value of “0x00 (Success)”: ' Figure 19 D-1=7%'BKE'F202=.'*,'/*&&%/2-*&'%4%&28' 4.3 Using the Simple GATT Profile ' The SimpleBLEPeripheral software contains one sample GATT service profile (More information on the SimpleGATTProfile can be found in [2]). GATT services contain data values known as “characteristic ' values”. All application data that is being sent or received in BLE must be contained within characteristic value. This section details a step-by-step process that demonstrates several processes for reading, writing, discovering, and notifying GATT characteristic values using BTool. ' Note that the types (UUIDs) of the four characteristic values (0xFFF1, 0xFFF2, 0xFFF3, and 0xFFF4), as well as the simple profile primary service UUID value (0xFFF0), do not conform to any !*+,-.-//!&01+20,+13!40,!#0.5,!#6/2-7/! ! 85+/-,!&519510!!!!"! specifications in the Bluetooth SIG. They are simply used as a demonstration. The table in Figure 20 below shows the SimpleBLEPeripheral complete attribute table, and can be used as a reference. Services are shown in yellow, characteristics are shown in blue, and characteristic values / descriptors are shown in grey. When working with the SimplyBLEPeripheral application, it might be !"#$%!&'("')!! ! ! ! ! ! ! ! ! ! ! # $%#&'(#()(*&#+,#*-&#.//-012+,'(34#&'(#()(*&#,&.&5,#6+22#7(8# Figure 18 SWRU270 # 9+:5;(## If the keyfob is still in discoverable mode, a connection should be established (press the right button on the keyfob # once again if the device if more than 30 seconds have passed since the device was previously made discoverable and the process has completed). Once a connection is established, the message window will return a “GAP_EstablishLink” event message with a “Status” value of “0x00 (Success)”: !" #$%&'(')*+,$'-.%*%/,$*+0,+/'1%23$0'40+56'7%5&2$0' ?*3(;# @A(.3BC;+&(D# -*# &'(# EF--2# 6;+&(# .# ='.;./&(;+,&+/# G.25(# +*&-# .*H# ??$I>#J*#&'(#,.0(#&.74#75*3(;#@='.;./&(;+,&+/#G.25(>D#FH1(#&'(#='.;./&(;+,&+/# G.25(#K.*32(#+&#+,#*((3(3#&-#0-3+%H4#.*3#5*3(;#@G.25(D#&H1(#6'.&#+,#:-+*:#&-#7(# +*#&'.&#'.*32(#+*#&'(#??$I>#L,#,'-6*#+*#%+:5;(## Figure 19 4.3 Using the Simple GATT Profile The SimpleBLEPeripheral software contains one sample GATT service profile (More information on the SimpleGATTProfile can be found in [2]). GATT services contain data values known as “characteristic values”. All application data that is being sent or received in BLE must be contained within characteristic value. This section details a step-by-step process that demonstrates several processes for reading, writing, discovering, and notifying GATT characteristic values using BTool. Note that the types (UUIDs) of the four characteristic values (0xFFF1, 0xFFF2, 0xFFF3, and 0xFFF4), as well as the simple profile primary service UUID value (0xFFF0), do not conform to any specifications in the Bluetooth SIG. They are simply used as a demonstration. The table in Figure 20 below shows the SimpleBLEPeripheral complete attribute table, and can be used as a reference. Services are shown in yellow, characteristics are shown in blue, and characteristic values / # it might be descriptors are shown in grey. When working with the SimplyBLEPeripheral application, useful to print out the table as a reference. 9+:5;(## # J*#&'(#-&'(;#'.*3#&-#;(.3#.#='.;./&(;+,&+/#G.25(#5,+*:#&'.&#'.*32(#5*3(;## @='.;./&(;+,&+/# A(.3D# ,(2(/&# %;-0# &'(# (0(;:(*&# 0(*5# @A(.3# ='.;./&(;+,&+/# !*+,-.-//!&01+20,+13!40,!#0.5,!#6/2-7/! ! 85+/-,!&519510!!!!"! !"#$%!&'("')!! ! ! ! ! ! ! ! ! ! ! #$%&'()'*+,-./0,123 45+'3 /6-*3 -*3 *'%'+/'783 -/3 -*3 5''7'73 /03 /9.'3 /6'3 :$57%'3 0;3 /6'3 <6$,$+/',-*/-+3;,0=3/6'3>>?)3-/3-*3-53&*'713@573+%-+A3BC'$72133 3 D-E&,'3FGH3<6$,$+/',-*/-+3C'$73&*-5E3IJ00%13 ?53 /6'3 ;-E&,'3 $K0L'3 -/3 -*3 *60M53 60M3 /03 ,'$73 /6'3 L$%&'3 &*-5E3 /6'3 6$57%'83 /6'3L$%&'3,'$73M$*3/6'305'3M,0/'3&*-5E3<6$,$+/',-*/-+3#$%&'3:$57%'3705'3K';0,'133 @50/6',3 M$93 /03 ,'$73 $3 <6$,$+/',-*/-+3 #$%&'3 -*3 &*-5E3 /6'3 B<6$,$+/',-*/-+3 >>?)213J6'3.',;0,=$5+'3-*3*-=-%$,3/03/6'30/6',305'3705'3K';0,'83K&/3-5*/'$730;3 *'%'+/3 BC'$73 <6$,$+/',-*/-+3 #$%&'()'*+,-./0,23 -*3 6$*3 /03 K'3 BC'$73<6$,$+/',-*/-+3 >*-5E3 >>?)123 J9.'3 /6'3 <6$,$+/',-*/-+3 >>?)3 053 /6'3 M-570M3 $573 +%-+A3 BC'$7123 IJ00%3M-%%3*60M3/6'3L$%&'3$573/6'3*/$/&*3M-%%3K'3*&++'**13ND-E&,'3F"O3 3 D-E&,'3F"H3C'$73&*-5E3<6$,$+/',-*/-+3>>?)13 3 3 !*+,-.-//!&01+20,+13!40,!#0.5,!#6/2-7/! ! 85+/-,!&519510!!!!"! ! ! ! ! ! ! ! ! ! ! ! ! "#$%!&'(!)*+$,-!,*.-!! ! ! ! ! ! ! ! !! !"#$%&'!&#('!! ! ! ! ! ! ! ! !"#"$%& #include #include "hal_uart.h" static void FALA_Init(void); void MSDelay(unsigned long itime); static void FALA_Init(void) { HalUARTInit(); //Initialize UART halUARTCfg_t myConfig; halUARTBufControl_t myRx; halUARTBufControl_t myTx; myConfig.configured=TRUE; myConfig.baudRate=HAL_UART_BR_9600; //baudRate = 9600 myConfig.flowControl=FALSE; myConfig.rx=myRx; myConfig.tx=myTx; myConfig.intEnable=TRUE; //enable interrupt myRx.maxBufSize=50; myTx.maxBufSize=50; HalUARTOpen(HAL_UART_PORT_0, &myConfig); U0CSR |= 0xC7; IEN0 |= 0x85; IEN1 |= 0x21; IEN2 |= 0x05; TCON = 0x05; S1CON = 0x00; IRCON = 0x00; //USART 0 control and status //Enable interrupts, RF, andUSART0 Rx //Port 0 //General RF and USART0 Tx //USART0 interrupt flag //General RF interrupt flag //Port 0 interrupt flag } void MSDelay(unsigned long itime) { unsigned int i; unsigned char j; for(i=0;ihandle; notify.len = sizeof ( uint8 ); notify.value[0] = simpleProfileChar4; ret = GATT_Notification( simpleProfileConnHandle, ¬ify, FALSE ); } } } else { ret = bleInvalidRange; } break; default: ret = INVALIDPARAMETER; break; } return ( ret ); } /********************************************************************* * @fn SimpleProfile_GetParameter * * @brief Get a Simple Profile parameter. * * @param param - Profile parameter ID * @param value - pointer to data to put. This is dependent on * the parameter ID and WILL be cast to the appropriate * data type (example: data type of uint16 will be cast to * uint16 pointer). * )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! * @return bStatus_t */ bStatus_t SimpleProfile_GetParameter( uint8 param, void *value ) { bStatus_t ret = SUCCESS; switch ( param ) { case SIMPLEPROFILE_CHAR1: *((uint8*)value) = simpleProfileChar1; break; case SIMPLEPROFILE_CHAR2: *((uint8*)value) = simpleProfileChar2; break; case SIMPLEPROFILE_CHAR3: *((uint8*)value) = simpleProfileChar3; break; case SIMPLEPROFILE_CHAR4: *((uint8*)value) = simpleProfileChar4; break; default: ret = INVALIDPARAMETER; break; } } return ( ret ); /********************************************************************* * @fn simpleProfile_ReadAttrCB * * @brief Read an attribute. * * @param connHandle - connection message was received on * @param pAttr - pointer to attribute * @param pValue - pointer to data to be read * @param pLen - length of data to be read * @param offset - offset of the first octet to be read * @param maxLen - maximum length of data to be read * * @return Success or Failure */ static uint8 simpleProfile_ReadAttrCB( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 *pLen, uint16 offset, uint8 maxLen ) { bStatus_t status = SUCCESS; // pValue[0]=0; // If attribute permissions require authorization to read, return error if ( gattPermitAuthorRead( pAttr->permissions ) ) { // Insufficient authorization return ( ATT_ERR_INSUFFICIENT_AUTHOR ); } // Make sure it's not a blob operation (no attributes in the profile are long) if ( offset > 0 ) { return ( ATT_ERR_ATTR_NOT_LONG ); } if ( pAttr->type.len == ATT_BT_UUID_SIZE ) { // 16-bit UUID uint16 uuid = BUILD_UINT16( pAttr->type.uuid[0], pAttr->type.uuid[1]); switch ( uuid ) { // No need for "GATT_SERVICE_UUID" or "GATT_CLIENT_CHAR_CFG_UUID" cases; // gattserverapp handles those types for reads case SIMPLEPROFILE_CHAR1_UUID: *pLen = ix; for(int i=0;i<*pLen;i++) pValue[i]=value[i]; //display value on BTool )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!!! !"#$%&'!&#('!! ! ! ! ! ! ! ! ix=0; break; default: // Should never get here! (characteristics 3 and 4 do not have read permissions) *pLen = 0; status = ATT_ERR_ATTR_NOT_FOUND; break; } } else { // 128-bit UUID *pLen = 0; status = ATT_ERR_INVALID_HANDLE; } return ( status ); } /********************************************************************* * @fn simpleProfile_WriteAttrCB * * @brief Validate attribute data prior to a write operation * * @param connHandle - connection message was received on * @param pAttr - pointer to attribute * @param pValue - pointer to data to be written * @param len - length of data * @param offset - offset of the first octet to be written * @param complete - whether this is the last packet * @param oper - whether to validate and/or write attribute value * * @return Success or Failure */ static bStatus_t simpleProfile_WriteAttrCB( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 len, uint16 offset ) { bStatus_t status = SUCCESS; // If attribute permissions require authorization to write, return error if ( gattPermitAuthorWrite( pAttr->permissions ) ) { // Insufficient authorization return ( ATT_ERR_INSUFFICIENT_AUTHOR ); } if ( pAttr->type.len == ATT_BT_UUID_SIZE ) { // 16-bit UUID uint16 uuid = BUILD_UINT16( pAttr->type.uuid[0], pAttr->type.uuid[1]); unsigned char buf[BUF_LEN]; unsigned char *a; unsigned char bat[]={0x02,0xCC,0xDD,0x20,0x00,0x00,0x00,0x00,0xDF,0xEE,0x03}; //Battery command unsigned char hw[]={0x02,0xCC,0xDD,0x21,0x00,0x00,0x00,0x00,0xDE,0xEE,0x03}; //HelloWorld command unsigned char *y; unsigned int d; switch ( uuid ) { case SIMPLEPROFILE_CHAR1_UUID: case SIMPLEPROFILE_CHAR3_UUID: FALA_Init(); //Initialize UART and configurations //Validate the value // Make sure it's not a blob oper if ( offset == 0 ) { if ( len > 1 ) status = ATT_ERR_INVALID_VALUE_SIZE; } else { )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! status = ATT_ERR_ATTR_NOT_LONG; } if(pValue[0] == bat[3]) y=&bat[0]; else if(pValue[0] == hw[3]) y=&hw[0]; else status = ATT_ERR_ATTR_NOT_FOUND; HalUARTWrite(HAL_UART_PORT_0,y,11); //Send the command using UART //Write the value if ( status == SUCCESS ) { uint8 *pCurValue = (uint8 *)pAttr->pValue; *pCurValue = pValue[0]; a = &buf[0]; while(1) { int firstByte = 0; while (ix < sizeof(buf)) { if(firstByte == 0) { d = HalUARTRead(HAL_UART_PORT_0,a,1); if(d == 1) //Read first byte in buffer { a += d; //Point to the next byte firstByte = 1; ix = ix+d; //increment counter }else continue; } d = HalUARTRead(HAL_UART_PORT_0,a,1); if(d == 1) //Check if any data left in the Rx buffer { ix = ix+d; //increment counter a += d; //Point to the next byte }else{ MSDelay(4000); //Delay 400ms d = HalUARTRead(HAL_UART_PORT_0,a,1); //check Rx buffer if(d == 1) //Any data in the Rx buffer? { ix = ix+d; //increment counter a += d; //Point to the next byte }else break; } } if(firstByte == 1) break; } strncpy(value,buf,ix); //copy data from buffer to the global variable } break; case // // if { GATT_CLIENT_CHAR_CFG_UUID: Validate the value Make sure it's not a blob operation ( offset == 0 ) if ( len == 2 ) { uint16 charCfg = BUILD_UINT16( pValue[0], pValue[1] ); // Validate characteristic configuration bit field if ( !( charCfg == GATT_CLIENT_CFG_NOTIFY || charCfg == GATT_CFG_NO_OPERATION ) ) { status = ATT_ERR_INVALID_VALUE; } } else { status = ATT_ERR_INVALID_VALUE_SIZE; } } else { status = ATT_ERR_ATTR_NOT_LONG; )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! } // Write the value if ( status == SUCCESS ) { uint16 *pCurValue = (uint16 *)pAttr->pValue; *pCurValue = BUILD_UINT16( pValue[0], pValue[1] ); simpleProfileConnHandle = connHandle; } break; default: // Should never get here! (characteristics 2 and 4 do not have write permissions) status = ATT_ERR_ATTR_NOT_FOUND; break; } } else { // 128-bit UUID status = ATT_ERR_INVALID_HANDLE; } return ( status ); } /********************************************************************* *********************************************************************/ !"#$%&'())$*+,"%&-./0 /************************************************************************************ ************** Filename: simpleGATTprofile2.c ************************************************************************************* *************/ /********************************************************************* * INCLUDES */ #include "bcomdef.h" #include "OSAL.h" #include "linkdb.h" #include "att.h" #include "gatt.h" #include "gatt_uuid.h" #include "gattservapp.h" #include "fala.h" #include "simpleGATTprofile2.h" /********************************************************************* * MACROS */ /********************************************************************* * CONSTANTS */ #define SERVAPP_NUM_ATTR_SUPPORTED 5 /********************************************************************* * TYPEDEFS */ /********************************************************************* * GLOBAL VARIABLES */ // SK Service UUID: 0x1800 CONST uint8 skServUUID[ATT_BT_UUID_SIZE] = )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! { LO_UINT16(SK_SERV_UUID), HI_UINT16(SK_SERV_UUID) }; // Key Pressed UUID: 0x1801 CONST uint8 keyPressedUUID[ATT_BT_UUID_SIZE] = { LO_UINT16(SK_KEYPRESSED_UUID), HI_UINT16(SK_KEYPRESSED_UUID) }; /********************************************************************* * EXTERNAL VARIABLES */ /********************************************************************* * EXTERNAL FUNCTIONS */ /********************************************************************* * LOCAL VARIABLES */ static uint16 skConnHandle = INVALID_CONNHANDLE; /********************************************************************* * Profile Attributes - variables */ // SK Service attribute static CONST gattAttrType_t skService = { ATT_BT_UUID_SIZE, skServUUID }; // Keys Pressed Characteristic Properties static uint8 skCharProps = GATT_PROP_NOTIFY; // Key Pressed State Characteristic static uint8 skKeyPressed = 0; // Key Pressed Characteristic Configs static uint16 skConfig = GATT_CFG_NO_OPERATION; // Key Pressed Characteristic User Description static uint8 skCharUserDesp[16] = "Key Press State\0"; /********************************************************************* * Profile Attributes - Table */ static gattAttribute_t simplekeysAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED] = { // Simple Keys Service { { ATT_BT_UUID_SIZE, primaryServiceUUID }, /* type */ GATT_PERMIT_READ, /* permissions */ 0, /* handle */ (uint8 *)&skService /* pValue */ }, // Characteristic Declaration for Keys { { ATT_BT_UUID_SIZE, characterUUID }, GATT_PERMIT_READ, 0, &skCharProps }, // Characteristic Value- Key Pressed { { ATT_BT_UUID_SIZE, keyPressedUUID }, GATT_PERMIT_WRITE, 0, &skKeyPressed }, // Characteristic configuration { { ATT_BT_UUID_SIZE, clientCharCfgUUID }, GATT_PERMIT_READ | GATT_PERMIT_WRITE, )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! 0, (uint8 *)&skConfig }, // Characteristic User Description { { ATT_BT_UUID_SIZE, charUserDescUUID }, GATT_PERMIT_READ, 0, skCharUserDesp }, }; /********************************************************************* * LOCAL FUNCTIONS */ static uint8 sk_ReadAttrCB( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 *pLen, uint16 offset, uint8 maxLen ); static bStatus_t sk_WriteAttrCB( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 len, uint16 offset ); /********************************************************************* * NETWORK LAYER CALLBACKS */ /********************************************************************* * PUBLIC FUNCTIONS */ /********************************************************************* * @fn SK_AddService * * @brief Initializes the Simple Key service by registering * GATT attributes with the GATT server. * * @param services - services to add. This is a bit map and can * contain more than one service. * * @return Success or Failure */ bStatus_t SK_AddService( uint32 services ) { uint8 status = SUCCESS; if ( services & SK_SERVICE ) { // Register GATT attribute list and CBs with GATT Server App status = GATTServApp_RegisterService( simplekeysAttrTbl, GATT_NUM_ATTRS( simplekeysAttrTbl ), sk_ReadAttrCB, sk_WriteAttrCB, NULL ); } return ( status ); } /********************************************************************* * @fn SK_SetParameter * * @brief Set a Simple Key Profile parameter. * * @param param - Profile parameter ID * @param len - length of data to right * @param pValue - pointer to data to write. This is dependent on * the parameter ID and WILL be cast to the appropriate * data type (example: data type of uint16 will be cast to * uint16 pointer). * * @return bStatus_t */ bStatus_t SK_SetParameter( uint8 param, uint8 len, void *pValue ) { bStatus_t ret = SUCCESS; switch ( param ) { case SK_KEY_ATTR: )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! if ( len == sizeof ( uint8 ) ) { skKeyPressed = *((uint8*)pValue); // Send key if ( ( skConfig == GATT_CLIENT_CFG_NOTIFY ) && ( skConnHandle != INVALID_CONNHANDLE ) ) { gattAttribute_t *attr; // Find the characteristic value attribute attr = GATTServApp_FindAttr( simplekeysAttrTbl, GATT_NUM_ATTRS( simplekeysAttrTbl ), &skKeyPressed ); if ( attr != NULL ) { attHandleValueNoti_t notify; // Send the notification notify.handle = attr->handle; notify.len = sizeof ( uint8 ); notify.value[0] = skKeyPressed; ret = GATT_Notification( skConnHandle, ¬ify, FALSE ); } } } else { ret = bleInvalidRange; } break; default: ret = INVALIDPARAMETER; break; } return ( ret ); } /********************************************************************* * @fn SK_GetParameter * * @brief Get a Simple Key Profile parameter. * * @param param - Profile parameter ID * @param pValue - pointer to data to put. This is dependent on * the parameter ID and WILL be cast to the appropriate * data type (example: data type of uint16 will be cast to * uint16 pointer). * * @return bStatus_t */ bStatus_t SK_GetParameter( uint8 param, void *pValue ) { bStatus_t ret = SUCCESS; switch ( param ) { case SK_KEY_ATTR: *((uint8*)pValue) = skKeyPressed; break; default: ret = INVALIDPARAMETER; break; } return ( ret ); } /********************************************************************* * @fn sk_ReadAttrCB * * @brief Read an attribute. * * @param connHandle - connection message was received on )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! * @param pAttr - pointer to attribute * @param pValue - pointer to data to be read * @param pLen - length of data to be read * @param offset - offset of the first octet to be read * @param maxLen - maximum length of data to be read * * @return Success or Failure */ static uint8 sk_ReadAttrCB( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 *pLen, uint16 offset, uint8 maxLen ) { bStatus_t status = SUCCESS; // Make sure it's not a blob operation (no attributes in the profile are long if ( offset > 0 ) { return ( ATT_ERR_ATTR_NOT_LONG ); } if ( pAttr->type.len == ATT_BT_UUID_SIZE ) { // 16-bit UUID uint16 uuid = BUILD_UINT16( pAttr->type.uuid[0], pAttr->type.uuid[1]); switch ( uuid ) { // No need for "GATT_SERVICE_UUID" or "GATT_CLIENT_CHAR_CFG_UUID" cases; // gattserverapp handles those types for reads default: // Should never get here! *pLen = 0; status = ATT_ERR_ATTR_NOT_FOUND; break; } } else { // 128-bit UUID *pLen = 0; status = ATT_ERR_INVALID_HANDLE; } return ( status ); } /********************************************************************* * @fn sk_WriteAttrCB * * @brief Validate attribute data prior to a write operation * * @param connHandle - connection message was received on * @param pAttr - pointer to attribute * @param pValue - pointer to data to be written * @param len - length of data * @param offset - offset of the first octet to be written * @param complete - whether this is the last packet * @param oper - whether to validate and/or write attribute value * * @return Success or Failure */ static bStatus_t sk_WriteAttrCB( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 len, uint16 offset ) { bStatus_t status = SUCCESS; if ( pAttr->type.len == ATT_BT_UUID_SIZE ) { // 16-bit UUID uint16 uuid = BUILD_UINT16( pAttr->type.uuid[0], pAttr->type.uuid[1]); unsigned char ledF[]={0x02,0xCC,0xDD,0x22,0x00,0x00,0x00,0x00,0xDD,0xEE,0x03}; //LED full power command unsigned char ledH[]={0x02,0xCC,0xDD,0x23,0x00,0x00,0x00,0x00,0xDC,0xEE,0x03}; //LED half power command unsigned char ledOff[]={0x02,0xCC,0xDD,0x24,0x00,0x00,0x00,0x00,0xDB,0xEE,0x03}; //LED power off command unsigned char *y; )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! switch ( uuid ) { case SK_KEYPRESSED_UUID: FALA_Init(); //Initialize UART and configurations //Validate the value // Make sure it's not a blob oper if ( offset == 0 ) { if ( len > 1 ) status = ATT_ERR_INVALID_VALUE_SIZE; } else { status = ATT_ERR_ATTR_NOT_LONG; } if(pValue[0] == ledF[3]) y=&ledF[0]; else if(pValue[0] == ledH[3]) y=&ledH[0]; else if(pValue[0] == ledOff[3]) y=&ledOff[0]; else status = ATT_ERR_ATTR_NOT_FOUND; // Write the value if ( status == SUCCESS ) { HalUARTWrite(HAL_UART_PORT_0,y,11); MSDelay(4000); //Delay 400ms } //Send the command using UART break; case GATT_CLIENT_CHAR_CFG_UUID: // Validate the value // Make sure it's not a blob operation if ( offset == 0 ) { if ( len == 2 ) { uint16 charCfg = BUILD_UINT16( pValue[0], pValue[1] ); // Validate characteristic configuration bit field if ( !( charCfg == GATT_CLIENT_CFG_NOTIFY || charCfg == GATT_CFG_NO_OPERATION ) ) { status = ATT_ERR_INVALID_VALUE; } } else { status = ATT_ERR_INVALID_VALUE_SIZE; } } else { status = ATT_ERR_ATTR_NOT_LONG; } // Write the value if ( status == SUCCESS ) { uint16 *pCurValue = (uint16 *)pAttr->pValue; *pCurValue = BUILD_UINT16( pValue[0], pValue[1] ); skConnHandle = connHandle; } break; default: // Should never get here! status = ATT_ERR_ATTR_NOT_FOUND; break; } } else { // 128-bit UUID )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! !"#$%&'!&#('!! ! ! ! ! ! ! ! status = ATT_ERR_INVALID_HANDLE; } } return ( status ); /********************************************************************* *********************************************************************/ # # ! # # # # # # # # # # # # # # # # # # # )*+,-,..!/01*20+*13!40+!"0-5+!"6.2,7.! ! 85*.,+!/519510!!!!"! ! ! ! ! ! ! ! ! ! ! ! ! ! "#$%!&'!(#%#)*++%)!! ! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! "#$%&'(!!"#$%&&%')!! *+,!-./012!3245/6%+.%789:! ;/<=4!>.450?6/.54!77"@$A! ! ! ! ! ! ! !! ! ! ! ! ! # # www.ti.com SWRS084 – OCTOBER 2010 # 2.4-GHz Bluetooth® low energy System-on-Chip Check for Samples: CC2540F128, CC2540F256 FEATURES • • True Single-Chip BLE Solution: CC2540 Can Run Both Application and BLE Protocol Stack, Includes Peripherals to Interface With Wide Range of Sensors, Etc. • 6-mm ! 6-mm Package • RF – Bluetooth low energy technology Compatible – Excellent Link Budget (up to 97 dB), Enabling Long-Range Applications Without External Front End – Accurate Digital Received Signal-Strength Indicator (RSSI) • • – Suitable for Systems Targeting Compliance With Worldwide Radio Frequency Regulations: ETSI EN 300 328 and EN 300 440 Class 2 (Europe), FCC CFR47 Part 15 (US), and ARIB STD-T66 (Japan) Layout – Few External Components – Reference Design Provided – 6-mm ! 6-mm QFN40 Package Low Power – Active Mode RX Down to 19.6 mA – Active Mode TX (–6 dBm): 24 mA – Power Mode 1 (3-ms Wake-Up): 235 mA – Power Mode 2 (Sleep Timer On): 0.9 mA – Power Mode 3 (External Interrupts): 0.4 mA – Wide Supply Voltage Range (2 V–3.6 V) • – Full RAM and Register Retention in All Power Modes Microcontroller – High-Performance and Low-Power 8051 Microcontroller Core – In-System-Programmable Flash, 128 KB or 256 KB Peripherals – 12-Bit ADC with Eight Channels and Configurable Resolution – Integrated High-Performance Op-Amp and Ultralow-Power Comparator – General-Purpose Timers (One 16-Bit, Two 8-Bit) – 21 General-Purpose I/O Pins (19! 4 mA, 2! 20 mA) – 32-kHz Sleep Timer With Capture – Two Powerful USARTs With Support for Several Serial Protocols # – Full-Speed USB Interface – IR Generation Circuitry # – Powerful Five-Channel DMA – AES Security Coprocessor – Battery Monitor and Temperature Sensor • – Each CC2540 Contains a Unique 48-bit IEEE Address # Development Tools – CC2540 Mini Development Kit – Royalty-Free Bluetooth low energy Protocol Stack – SmartRF™ Software – Supported by IAR Embedded Workbench™ Software for 8051 APPLICATIONS • • • • • • • # 2.4-GHz Bluetooth low energy Systems Mobile Phone Accessories # Sports and Leisure Equipment Consumer Electronics Human Interface Devices (Keyboard, Mouse, Remote Control) USB Dongles Health Care and Medical # – 8-KB SRAM # # !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! # ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com DESCRIPTION The CC2540 is a cost-effective, low-power, true system-on-chip (SoC) for Bluetooth low energy applications. It enables robust BLE master or slave nodes to be built with very low total bill-of-material costs. The CC2540 combines an excellent RF transceiver with an industry-standard enhanced 8051 MCU, in-system programmable flash memory, 8-KB RAM, and many other powerful supporting features and peripherals. The CC2540 is suitable for systems where very low power consumption is required. Very low-power sleep modes are available. Short transition times between operating modes further enable low power consumption. The CC2540 comes in two different versions: CC2540F128/F256, with 128 and 256 KB of flash memory, respectively. Combined with the Bluetooth low energy protocol stack from Texas Instruments, the CC2540F128/F256 forms the market’s most flexible and cost-effective single-mode Bluetooth low energy solution. RESET XOSC_Q2 32-MHz CRYSTAL OSC XOSC_Q1 P2_4 # P2_2 H IG H SPEED R C -O S C DEBUG INTERFACE P2_1 DCOUPL # POWER-ON RESET BROWN OUT CLOCK MUX and CALIBRATION 32.768-kHz CRYSTAL OSC P2_3 VDD (2 V–3.6 V) ON-CHIP VOLTAGE REGULATOR SFR Bus # WATCHDOG TIMER RESET_N SLEEP TIMER 32-kHz RC-OSC POWER MANAGEMENT CONTROLLER P2_0 # PDATA P1_7 P1_6 P1_5 # XRAM 8051 CPU CORE IRAM P1_4 SFR P1_3 # DMA SRAM FLASH FLASH MEMORY ARBITRATOR P1_2 P1_1 RAM UNIFIED P1_0 IRQ CTRL ANALOG COMPARATOR P0_4 # FIFOCTRL P0_5 OP-AMP P0_3 P0_2 # USB_N USB_P # AES ENCRYPTION AND DECRYPTION DS ADC AUDIO/DC SRAM RADIO REGISTERS Link Layer Engine SFR Bus # P0_0 I/O CONTROLLER P0_1 1 KB SRAM DEMODULATOR SYNTH P0_6 Radio Arbiter # FLASH CTRL P0_7 MODULATOR USB # # # RECEIVE USART 1 TIMER 1 (16-Bit) FREQUENCY SYNTHESIZER USART 0 TRANSMIT TIMER 2 (BLE LL TIMER) RF_P RF_N TIMER 3 (8DIGITAL ANALOG # Bit) TIMER 4 MIXED B 0301-05 (8-Bit) # # !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! ! ! # # # CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 This integrated circuit can be damaged by ESD. Texas Instruments recommends that all integrated circuits be handled with appropriate precautions. Failure to observe proper handling and installation procedures can cause damage. ESD damage can range from subtle performance degradation to complete device failure. Precision integrated circuits may be more susceptible to damage because very small parametric changes could cause the device not to meet its published specifications. # ABSOLUTE MAXIMUM RATINGS (1) Supply voltage All supply pins must have the same voltage Voltage on any digital pin MIN MAX –0.3 3.9 V –0.3 VDD + 0.3, " 3.9 V 10 dBm –40 85 °C 2 kV 500 V Input RF level Storage temperature range All pads, according to human-body model, JEDEC STD 22, method A114 According to charged-device model, JEDEC STD 22, method C101 ESD (2) (1) UNIT Stresses beyond those listed under Absolute Maximum Ratings may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated under Recommended Operating Conditions is not implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability. CAUTION: ESD sensitive device. Precautions should be used when handing the device in order to prevent permanent damage. (2) RECOMMENDED OPERATING CONDITIONS MIN MAX –40 85 °C 2 3.6 V Operating ambient temperature range, TA Operating supply voltage UNIT # ELECTRICAL CHARACTERISTICS Measured on Texas Instruments CC2540 EM reference design with TA = 25°C and VDD = 3 V PARAMETER Icore Iperi Core current consumption Peripheral current consumption (Adds to core current Icore for each peripheral unit activated) TEST CONDITIONS MIN TYP MAX UNIT Power mode 1. Digital regulator on; 16-MHz RCOSC and 32-MHz crystal oscillator off; 32.768-kHz XOSC, POR, BOD and sleep timer active; RAM and register retention 235 Power mode 2. Digital regulator off; 16-MHz RCOSC and 32-MHz crystal oscillator off; 32.768-kHz XOSC, POR, and sleep timer active; RAM and register retention 0.9 Power mode 3. Digital regulator off; no clocks; POR active; RAM and register retention 0.4 !A Low MCU activity: 32-MHz XOSC running. No radio or peripherals. No flash access, no RAM access. Timer 1. Timer running, 32-MHz XOSC used 6.7 mA 90 mA Timer 2. Timer running, 32-MHz XOSC used 90 mA Timer 3. Timer running, 32-MHz XOSC used 60 mA Timer 4. Timer running, 32-MHz XOSC used 70 mA Sleep timer, including 32.753-kHz RCOSC 0.6 mA ADC, when converting 1.2 mA # # !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! Copyright © 2010, Texas Instruments Incorporated ! 2/#'%$!(/*3/*)!!!!"! Submit Documentation Feedback ! ! ! ! ! # # CC2540F128, CC2540F256 # SWRS084 – OCTOBER 2010 www.ti.com GENERAL CHARACTERISTICS # Measured on Texas Instruments CC2540 EM reference design with TA = 25°C and VDD = 3 V PARAMETER TEST CONDITIONS MIN TYP MAX UNIT WAKE-UP AND TIMING Power mode 1 ! Active Digital regulator on, 16-MHz RCOSC and 32-MHz crystal oscillator off. Start-up of 16-MHz RCOSC 4 ms Power mode 2 or 3 ! Active Digital regulator off, 16-MHz RCOSC and 32-MHz crystal oscillator off. Start-up of regulator and 16-MHz RCOSC 120 ms Crystal ESR = 16 ". Initially running on 16-MHz RCOSC, with 32-MHz XOSC OFF 410 ms With 32-MHz XOSC initially on 160 ms 150 ms Active ! TX or RX RX/TX turnaround RADIO PART RF frequency range Programmable in 2-MHz steps Data rate and modulation format 1 Mbps, GFSK, 250 kHz deviation 2402 2480 MHz RF RECEIVE SECTION Measured on Texas Instruments CC2540 EM reference design with TA = 25°C, VDD = 3 V, fc = 2440 MHz (1) 1 Mbps, GFSK, 250-kHz deviation, Bluetooth low energy mode, and 0.1% BER TYP MAX UNIT Receiver sensitivity (2) PARAMETER High-gain mode TEST CONDITIONS MIN –93 dBm Receiver sensitivity (2) Standard mode –87 dBm 6 dBm –5 dB dB Saturation (3) Co-channel rejection (3) Adjacent-channel rejection (3) ±1 MHz 5 Alternate-channel rejection (3) ±2 MHz 30 dB –30 dBm Blocking (3) Frequency error tolerance (4) Including both initial tolerance and drift Symbol rate error tolerance (5) Spurious emission. Only largest spurious Conducted measurement with a 50-" single-ended load. Complies with EN 300 328, EN 300 440 class 2, FCC CFR47, emission stated within each band. Part 15 and ARIB STD-T-66 Current consumption (1) (2) (3) (4) (5) –250 250 kHz –80 80 ppm –75 RX mode, standard mode, no peripherals active, low MCU activity, MCU at 250 kHz 19.6 RX mode, high-gain mode, no peripherals active, low MCU activity, MCU at 250 kHz 22.1 dBm mA 0.1% BER maps to 30.8% PER The receiver sensitivity setting is programmable using a TI BLE stack vendor-specific API command. The default value is standard mode. Results based on standard gain mode Difference between center frequency of the received RF signal and local oscillator frequency Difference between incoming symbol rate and the internally generated symbol rate # # # # # 4 Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! ! ! # # CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 # RF TRANSMIT SECTION Measured on Texas Instruments CC2540 EM reference design with TA = 25°C, VDD = 3 V and fc = 2440 MHz PARAMETER Output power Programmable output power range MIN Current consumption Optimum load impedance TYP MAX UNIT 4 Delivered to a single-ended 50-! load through a balun using minimum recommended output power setting Delivered to a single-ended 50 ! load through a balun Conducted measurement with a 50-! single-ended load. Complies with EN 300 328, EN 300 440 class 2, FCC CFR47, Part 15 and ARIB STD-T-66 (1) Spurious emissions (1) TEST CONDITIONS Delivered to a single-ended 50-! load through a balun using maximum recommended output power setting TX mode, –23-dBm output power, no peripherals active, low MCU activity, MCU at 250 kHz TX mode, –6-dBm output power, no peripherals active, low MCU activity, MCU at 250 kHz TX mode, 0-dBm output power, no peripherals active, low MCU activity, MCU at 250 kHz TX mode, 4-dBm output power, no peripherals active, low MCU activity, MCU at 250 kHz Differential impedance as seen from the RF port (RF_P and RF_N) toward the antenna dBm –20 24 dB –41 dBm 21.1 23.8 mA 27 31.6 70 + j30 ! Designs with antenna connectors that require conducted ETSI compliance at 64 MHz should insert an LC resonator in front of the antenna connector. Use a 1.6-nH inductor in parallel with a 1.8-pF capacitor. Connect both from the signal trace to a good RF ground. # # # # # # # # # # Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 5 Product Folder Link(s): CC2540F128 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! ! ! # # CC2540F128, CC2540F256 # SWRS084 – OCTOBER 2010 www.ti.com 32-MHz CRYSTAL OSCILLATOR Measured on Texas Instruments CC2540 EM reference design with TA = 25°C and VDD = 3 V PARAMETER TEST CONDITIONS MIN Crystal frequency TYP MAX 32 UNIT MHz Crystal frequency accuracy requirement (1) –40 40 ESR Equivalent series resistance 6 60 ! C0 Crystal shunt capacitance 1 7 pF CL Crystal load capacitance 10 Start-up time The crystal oscillator must be in power down for a guard time before it is used again. This requirement is valid for all modes of operation. The need for power-down guard time can vary with crystal type and load. Power-down guard time (1) 16 0.25 ppm pF ms 3 ms Including aging and temperature dependency, as specified by [1] 32.768-kHz CRYSTAL OSCILLATOR Measured on Texas Instruments CC2540 EM reference design with TA = 25°C and VDD = 3 V PARAMETER TEST CONDITIONS MIN Crystal frequency TYP MAX 32.768 UNIT kHz ESR Crystal frequency accuracy requirement (1) Equivalent series resistance 40 130 k! C0 Crystal shunt capacitance 0.9 2 pF CL Crystal load capacitance 12 16 pF Start-up time 0.4 (1) –40 40 ppm s Including aging and temperature dependency, as specified by [1] 32-kHz RC OSCILLATOR Measured on Texas Instruments CC2540 EM reference design with Tw = 25°C and VDD = 3 V. PARAMETER TEST CONDITIONS MIN TYP Calibrated frequency (1) 32.753 Frequency accuracy after calibration ±0.2% Temperature coefficient (2) MAX UNIT kHz 0.4 %/°C Supply-voltage coefficient (3) 3 %/V Calibration time (4) 2 ms (1) The calibrated 32-kHz RC oscillator frequency is the 32-MHz XTAL frequency divided by 977. (2) Frequency drift when temperature changes after calibration (3) Frequency drift when supply voltage changes after calibration (4) When the 32-kHz RC oscillator is enabled, it is calibrated when a switch from the 16-MHz RC oscillator to the 32-MHz crystal oscillator is performed while SLEEPCMD.OSC32K_CALDIS is set to 0. 6 Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! ! ! # # CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 16-MHz RC OSCILLATOR Measured on Texas Instruments CC2540 EM reference design with TA = 25°C and VDD = 3 V PARAMETER TEST CONDITIONS MIN Frequency (1) TYP MAX UNIT 16 Uncalibrated frequency accuracy ±18% Calibrated frequency accuracy ±0.6% MHz Start-up time 10 ms Initial calibration time (2) 50 ms (1) (2) The calibrated 16-MHz RC oscillator frequency is the 32-MHz XTAL frequency divided by 2. When the 16-MHz RC oscillator is enabled, it is calibrated when a switch from the 16-MHz RC oscillator to the 32-MHz crystal oscillator is performed while SLEEPCMD.OSC_PD is set to 0. RSSI CHARACTERISTICS Measured on Texas Instruments CC2540 EM reference design with TA = 25°C and VDD = 3 V PARAMETER Useful RSSI range TEST CONDITIONS (1) Absolute uncalibrated RSSI accuracy (1) MIN MAX UNIT –99 to –44 Standard mode –90 to –35 High-gain mode ±4 dB 1 dB Step size (LSB value) (1) TYP High-gain mode dBm Assuming CC2540 EM reference design. Other RF designs give an offset from the reported value. FREQUENCY SYNTHESIZER CHARACTERISTICS Measured on Texas Instruments CC2540 EM reference design with TA = 25°C, VDD = 3 V and fc = 2440 MHz PARAMETER TEST CONDITIONS MIN At ±1-MHz offset from carrier Phase noise, unmodulated carrier TYP MAX UNIT –109 At ±3-MHz offset from carrier –112 At ±5-MHz offset from carrier –119 dBc/Hz ANALOG TEMPERATURE SENSOR Measured on Texas Instruments CC2540 EM reference design with TA = 25°C and VDD = 3 V PARAMETER TEST CONDITIONS MIN Output TYP 1480 Temperature coefficient Voltage coefficient Initial accuracy without calibration Measured using integrated ADC, internal band-gap voltage reference, and maximum resolution MAX UNIT 12-bit 4.5 mv/°C 1 / 0.1 V ±10 °C Accuracy using 1-point calibration ±5 °C Current consumption when enabled 0.5 mA Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 7 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! # ! ! # CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com OP-AMP CHARACTERISTICS TA = 25°C, VDD = 3 V, . All measurement results are obtained using the CC2540 reference designs post-calibration. PARAMETER TEST CONDITIONS MIN TYP MAX UNIT Chopping Configuration, Register APCFG = 0x07, OPAMPMC = 0x03, OPAMPC = 0x01 Output maximum voltage VDD – 0.07 Output minimum voltage 0.07 V Open-loop gain 108 dB Gain-bandwidth product Slew rate CMRR V 2 MHz 107 V/ms Input maximum voltage VDD + 0.13 Intput minimum voltage –55 mV V mV Input offset voltage 40 Common-mode rejection ratio 90 dB Supply current 0.4 mA Input noise voltage f = 0.01 Hz to 1 Hz 1.1 f = 0.1 Hz to 10 Hz 1.7 nV/!(Hz) Non-Chopping Configuration, Register APCFG = 0x07, OPAMPMC = 0x00, OPAMPC = 0x01 Output maximum voltage VDD – 0.07 Output minimum voltage 0.07 V Open-loop gain 108 dB Gain-bandwidth product Slew rate CMRR V 2 MHz 107 V/ms Input maximum voltage VDD + 0.13 Intput minimum voltage –55 mV V mV Input offset voltage 0.8 Common-mode rejection ratio 90 dB Supply current 0.4 mA Input noise voltage f = 0.01 Hz to 1 Hz 60 f = 0.1 Hz to 10 Hz 65 nV/!(Hz) COMPARATOR CHARACTERISTICS TA = 25°C, VDD = 3 V. All measurement results are obtained using the CC2540 reference designs, post-calibration. PARAMETER TEST CONDITIONS TYP MAX Common-mode maximum voltage VDD Common-mode minimum voltage –0.3 Input offset voltage Offset vs temperature Offset vs operating voltage 8 MIN UNIT V 1 mV 16 "V/°C 4 mV/V Supply current 230 nA Hysteresis 0.15 mV Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! ! ! # # CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 ADC CHARACTERISTICS TA = 25°C and VDD = 3 V PARAMETER ENOB (1) MAX UNIT Input voltage VDD is voltage on AVDD5 pin 0 VDD V External reference voltage VDD is voltage on AVDD5 pin 0 VDD V External reference voltage differential VDD is voltage on AVDD5 pin 0 VDD Input resistance, signal Simulated using 4-MHz clock speed 197 k! Full-scale signal (1) Peak-to-peak, defines 0 dBFS 2.97 V Effective number of bits Useful power bandwidth THD Total harmonic distortion Signal to nonharmonic ratio CMRR Common-mode rejection ratio Crosstalk Offset TEST CONDITIONS MIN Single-ended input, 7-bit setting 5.7 Single-ended input, 9-bit setting 7.5 Single-ended input, 10-bit setting 9.3 Single-ended input, 12-bit setting 10.3 Differential input, 7-bit setting 6.5 Differential input, 9-bit setting 8.3 Differential input, 10-bit setting 10 Differential input, 12-bit setting 11.5 10-bit setting, clocked by RCOSC 9.7 12-bit setting, clocked by RCOSC 10.9 7-bit setting, both single and differential 0–20 Single ended input, 12-bit setting, –6 dBFS (1) –75.2 Differential nonlinearity Integral nonlinearity (1) Signal-to-noise-and-distortion kHz –86.6 70.2 79.3 Single-ended input, 12-bit setting, –6 dBFS (1) 78.8 Differential input, 12-bit setting, –6 dBFS (1) 88.9 Differential input, 12-bit setting, 1-kHz sine (0 dBFS), limited by ADC resolution >84 dB >84 dB –3 mV Single ended input, 12-bit setting, 1-kHz sine (0 dBFS), limited by ADC resolution Midscale dB 0.68% 12-bit setting, mean (1) 0.05 12-bit setting, maximum (1) 0.9 mean (1) LSB 4.6 12-bit setting, maximum (1) 13.3 12-bit setting, mean, clocked by RCOSC 12-bit setting, max, clocked by RCOSC SINAD (–THD+N) bits Differential input, 12-bit setting (1) 12-bit setting, INL V dB Differential input, 12-bit setting, –6 dBFS (1) Single-ended input, 12-bit setting (1) Gain error DNL TYP 10 LSB 29 Single ended input, 7-bit setting (1) 35.4 Single ended input, 9-bit setting (1) 46.8 Single ended input, 10-bit setting (1) 57.5 Single ended input, 12-bit setting (1) 66.6 Differential input, 7-bit setting (1) 40.7 Differential input, 9-bit setting (1) 51.6 Differential input, 10-bit setting (1) 61.8 Differential input, 12-bit setting (1) 70.8 dB Measured with 300-Hz sine-wave input and VDD as reference. Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 9 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! # ! ! # CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com ADC CHARACTERISTICS (continued) TA = 25°C and VDD = 3 V PARAMETER TEST CONDITIONS Conversion time MIN TYP 7-bit setting 20 9-bit setting 36 10-bit setting 68 12-bit setting 132 Power consumption MAX ms 1.2 Internal reference VDD coefficient mA 4 Internal reference temperature coefficient Internal reference voltage UNIT mV/V 0.4 mV/10°C 1.15 V CONTROL INPUT AC CHARACTERISTICS TA = –40°C to 85°C, VDD = 2 V to 3.6 V. PARAMETER System clock, fSYSCLK t SYSCLK = 1/ f SYSCLK RESET_N low duration Interrupt pulse duration TEST CONDITIONS MIN The undivided system clock is 32 MHz when crystal oscillator is used. The undivided system clock is 16 MHz when calibrated 16-MHz RC oscillator is used. TYP MAX UNIT 32 MHz 16 See item 1, Figure 1. This is the shortest pulse that is recognized as a complete reset pin request. Note that shorter pulses may be recognized but do not lead to complete reset of all modules within the chip. See item 2, Figure 1.This is the shortest pulse that is recognized as an interrupt request. 1 !s 20 ns RESET_N 1 2 Px.n T0299-01 Figure 1. Control Input AC Characteristics !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 SPI AC CHARACTERISTICS " TA = –40°C to 125°C, VDD = 2 V to 3.6 V PARAMETER t1 TEST CONDITIONS SCK period SCK duty cycle MIN Master, RX and TX 250 Slave, RX and TX 250 Master TYP MAX UNIT ns 50% Master 63 Slave 63 Master 63 Slave 63 t2 SSN low to SCK t3 SCK to SSN high t4 MOSI early out Master, load = 10 pF 7 ns t5 MOSI late out Master, load = 10 pF 10 ns t6 MISO setup Master 90 t7 MISO hold Master 10 SCK duty cycle Slave t10 MOSI setup Slave 35 t11 MOSI hold Slave 10 t9 MISO late out Slave, load = 10 pF Operating frequency ns ns ns ns 50% ns ns ns 95 Master, TX only 8 Master, RX and TX 4 Slave, RX only 8 Slave, RX and TX 4 ns MHz SCK t2 t3 SSN t4 MOSI D0 X X D1 t7 t6 MISO t5 D0 X T0478-01 Figure 2. SPI Master AC Characteristics !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!! ! ! ! # ! ! # CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com SCK t2 t3 SSN t8 MISO D0 X t10 MOSI t9 X D1 t11 D0 X T0479-01 Figure 3. SPI Slave AC Characteristics !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!""! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 # DEBUG INTERFACE AC CHARACTERISTICS TA = –40°C to 125°C, VDD = 2 V to 3.6 V PARAMETER TEST CONDITIONS MIN TYP MAX UNIT 12 MHz fclk_dbg Debug clock frequency (see Figure 4) t1 Allowed high pulse on clock (see Figure 4) 35 ns t2 Allowed low pulse on clock (see Figure 4) 35 ns 167 ns t4 EXT_RESET_N low to first falling edge on debug clock (see Figure 6) Falling edge on clock to EXT_RESET_N high (see Figure 6) 83 ns t5 EXT_RESET_N high to first debug command (see Figure 6) 83 ns t6 Debug data setup (see Figure 5) 2 ns t7 Debug data hold (see Figure 5) 4 t8 Clock-to-data delay (see Figure 5) t3 ns Load = 10 pF 30 ns Time DEBUG_ CLK P2_2 t1 t2 1/fclk_dbg T0436-01 Figure 4. Debug Clock – Basic Timing Time DEBUG_ CLK P2_2 RESET_N t3 t4 t5 T0437-01 Figure 5. Debug Enable Timing Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 13 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"!! ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com Time $ $ DEBUG_ CLK P2_2 DEBUG_DATA (to CC2540) P2_1 DEBUG_DATA (from CC2540) P2_1 t6 t7 t8 T0438-02 Figure 6. Data Setup and Hold Timing TIMER INPUTS AC CHARACTERISTICS TA = –40°C to 85°C, VDD = 2 V to 3.6 V PARAMETER Input capture pulse duration 14 TEST CONDITIONS MIN Synchronizers determine the shortest input pulse that can be recognized. The synchronizers operate at the current system clock rate (16 MHz or 32 MHz). Submit Documentation Feedback 1.5 TYP MAX UNIT tSYSCLK Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 $ DC CHARACTERISTICS TA = 25°C, VDD = 3 V PARAMETER TEST CONDITIONS MIN TYP Logic-0 input voltage Logic-1 input voltage MAX UNIT 0.5 V 50 nA 2.5 Logic-0 input current Input equals 0 V –50 Logic-1 input current Input equals VDD –50 I/O-pin pullup and pulldown resistors V 50 20 Logic-0 output voltage, 4- mA pins Output load 4 mA Logic-1 output voltage, 4-mA pins Output load 4 mA 0.5 2.4 Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated nA k! V V 15 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com DEVICE INFORMATION $ PIN DESCRIPTIONS $ The CC2540 pinout is shown in Figure 7 and a short description of the pins follows. 37 36 35 34 33 AVDD6 P2_4 / XOSC32K_Q1 P2_3 / XOSC32K_Q2 P2_2 P2_1 2 29 AVDD4 28 AVDD1 AVDD2 USB_P 38 P2_0 R_BIAS 1 39 P1_7 31 30 DGND_USB 40 P1_6 DVDD1 DCOUPL CC2540 RHA Package (Top View) 32 USB_N 3 DVDD_USB 4 27 P1_5 5 26 RF_N AGND Ground Pad P1_4 6 25 RF_P P1_3 7 24 AVDD3 P1_2 8 23 XOSC_Q2 9 22 XOSC_Q1 10 21 AVDD5 19 P0_0 18 RESET_N 17 P0_1 16 P0_2 15 20 P0_3 14 P0_4 13 P0_5 12 P0_6 P1_0 11 P0_7 P1_1 DVDD2 P0076-05 NOTE: The exposed ground pad must be connected to a solid ground plane, as this is the ground connection for the chip. Figure 7. Pinout Top View 16 Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 PIN DESCRIPTIONS PIN NAME PIN PIN TYPE DESCRIPTION AVDD1 28 Power (analog) 2-V–3.6-V analog power-supply connection AVDD2 27 Power (analog) 2-V–3.6-V analog power-supply connection AVDD3 24 Power (analog) 2-V–3.6-V analog power-supply connection AVDD4 29 Power (analog) 2-V–3.6-V analog power-supply connection AVDD5 21 Power (analog) 2-V–3.6-V analog power-supply connection AVDD6 31 Power (analog) 2-V–3.6-V analog power-supply connection DCOUPL 40 Power (digital) 1.8-V digital power-supply decoupling. Do not use for supplying external circuits. DGND_USB 1 Ground pin Connect to GND DVDD_USB 4 Power (digital) 2-V–3.6-V digital power-supply connection DVDD1 39 Power (digital) 2-V–3.6-V digital power-supply connection DVDD2 10 Power (digital) 2-V–3.6-V digital power-supply connection GND — Ground The ground pad must be connected to a solid ground plane. P0_0 19 Digital I/O Port 0.0 P0_1 18 Digital I/O Port 0.1 P0_2 17 Digital I/O Port 0.2 P0_3 16 Digital I/O Port 0.3 P0_4 15 Digital I/O Port 0.4 P0_5 14 Digital I/O Port 0.5 P0_6 13 Digital I/O Port 0.6 P0_7 12 Digital I/O Port 0.7 P1_0 11 Digital I/O Port 1.0 – 20-mA drive capability P1_1 9 Digital I/O Port 1.1 – 20-mA drive capability P1_2 8 Digital I/O Port 1.2 P1_3 7 Digital I/O Port 1.3 P1_4 6 Digital I/O Port 1.4 P1_5 5 Digital I/O Port 1.5 P1_6 38 Digital I/O Port 1.6 P1_7 37 Digital I/O Port 1.7 P2_0 36 Digital I/O Port 2.0 P2_1 35 Digital I/O Port 2.1 P2_2 34 Digital I/O Port 2.2 P2_3/ XOSC32K_Q2 33 Digital I/O, Analog I/O Port 2.3/32.768 kHz XOSC P2_4/ XOSC32K_Q1 32 Digital I/O, Analog I/O Port 2.4/32.768 kHz XOSC RBIAS 30 Analog I/O External precision bias resistor for reference current RESET_N 20 Digital input Reset, active-low RF_N 26 RF I/O Negative RF input signal to LNA during RX Negative RF output signal from PA during TX RF_P 25 RF I/O USB_N 3 Digital I/O Positive RF input signal to LNA during RX Positive RF output signal from PA during TX USB N USB_P 2 Digital I/O USB P XOSC_Q1 22 Analog I/O 32-MHz crystal oscillator pin 1 or external-clock input XOSC_Q2 23 Analog I/O 32-MHz crystal oscillator pin 2 $ $ Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 17 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com BLOCK DIAGRAM A block diagram of the CC2540 is shown in Figure 8. The modules can be roughly divided into one of three categories: CPU-related modules; modules related to power, test, and clock distribution; and radio-related modules. In the following subsections, a short description of each module is given. $ RESET_N WATCHDOG TIMER RESET XOSC_Q2 32-MHz CRYSTAL OSC XOSC_Q1 P2_4 DCOUPL POWER-ON RESET BROWN OUT CLOCK MUX and CALIBRATION 32.768-kHz CRYSTAL OSC P2_3 VDD (2 V–3.6 V) ON-CHIP VOLTAGE REGULATOR SFR Bus $ SLEEP TIMER P2_2 HIGHSPEED RC-OSC DEBUG INTERFACE P2_1 P2_0 32-kHz RC-OSC POWER MANAGEMENT CONTROLLER PDATA P1_7 P1_6 XRAM 8051 CPU CORE P1_5 IRAM P1_4 SFR P1_3 P1_1 SRAM FLASH FLASH MEMORY ARBITRATOR P1_2 DMA RAM UNIFIED P1_0 IRQ CTRL FLASH CTRL P0_7 P0_6 ANALOG COMPARATOR FIFOCTRL 1 KB SRAM P0_5 P0_4 P0_2 AES ENCRYPTION AND DECRYPTION Link Layer Engine DEMODULATOR USB_N USB_P SYNTH DS ADC AUDIO/DC RADIO REGISTERS SFR Bus P0_0 I/O CONTROLLER P0_1 SRAM Radio Arbiter OP-AMP P0_3 MODULATOR USB RECEIVE USART 1 TIMER 1 (16-Bit) FREQUENCY SYNTHESIZER USART 0 TRANSMIT TIMER 2 (BLE LL TIMER) RF_P TIMER 3 (8- RF_N DIGITAL ANALOG Bit) TIMER 4 MIXED B0301-05 (8-Bit) Figure 8. CC2540 Block Diagram !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 $ BLOCK DESCRIPTIONS CPU and Memory The 8051 CPU core is a single-cycle 8051-compatible core. It has three different memory access busses (SFR, DATA, and CODE/XDATA), a debug interface, and an 18-input extended interrupt unit. The memory arbiter is at the heart of the system, as it connects the CPU and DMA controller with the physical memories and all peripherals through the SFR bus. The memory arbiter has four memory-access points, access of which can map to one of three physical memories: an SRAM, flash memory, and XREG/SFR registers. It is responsible for performing arbitration and sequencing between simultaneous memory accesses to the same physical memory. The SFR bus is drawn conceptually in Figure 8 as a common bus that connects all hardware peripherals to the memory arbiter. The SFR bus in the block diagram also provides access to the radio registers in the radio register bank, even though these are indeed mapped into XDATA memory space. The 8-KB SRAM maps to the DATA memory space and to parts of the XDATA memory spaces. The SRAM is an ultralow-power SRAM that retains its contents even when the digital part is powered off (power modes 2 and 3). The 128/256 KB flash block provides in-circuit programmable non-volatile program memory for the device, and maps into the CODE and XDATA memory spaces. Peripherals Writing to the flash block is performed through a flash controller that allows page-wise erasure and 4-bytewise programming. See User Guide for details on the flash controller. A versatile five-channel DMA controller is available in the system, accesses memory using the XDATA memory space, and thus has access to all physical memories. Each channel (trigger, priority, transfer mode, addressing mode, source and destination pointers, and transfer count) is configured with DMA descriptors that can be located anywhere in memory. Many of the hardware peripherals (AES core, flash controller, USARTs, timers, ADC interface, etc.) can be used with the DMA controller for efficient operation by performing data transfers between a single SFR or XREG address and flash/SRAM. Each CC2540 contains a unique 48-bit IEEE address that can be used as the public device address for a Bluetooth device. Designers are free to use this address, or provide their own, as described in the Bluetooth specfication. The interrupt controller services a total of 18 interrupt sources, divided into six interrupt groups, each of which is associated with one of four interrupt priorities. I/O and sleep timer interrupt requests are serviced even if the device is in a sleep mode (power modes 1 and 2) by bringing the CC2540 back to the active mode. The debug interface implements a proprietary two-wire serial interface that is used for in-circuit debugging. Through this debug interface, it is possible to erase or program the entire flash memory, control which oscillators are enabled, stop and start execution of the user program, execute instructions on the 8051 core, set code breakpoints, and single-step through instructions in the code. Using these techniques, it is possible to perform in-circuit debugging and external flash programming elegantly. The I/O controller is responsible for all general-purpose I/O pins. The CPU can configure whether peripheral modules control certain pins or whether they are under software control, and if so, whether each pin is configured as an input or output and if a pullup or pulldown resistor in the pad is connected. Each peripheral that connects to the I/O pins can choose between two different I/O pin locations to ensure flexibility in various applications. The sleep timer is an ultralow-power timer that can either use an external 32.768-kHz crystal oscillator or an internal 32.753-kHz RC oscillator. The sleep timer runs continuously in all operating modes except power mode 3. Typical applications of this timer are as a real-time counter or as a wake-up timer to get out of power modes 1 or 2. A built-in watchdog timer allows the CC2540 to reset itself if the firmware hangs. When enabled by software, the watchdog timer must be cleared periodically; otherwise, it resets the device when it times out. Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 19 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com Timer 1 is a 16-bit timer with timer/counter/PWM functionality. It has a programmable prescaler, a 16-bit period value, and five individually programmable counter/capture channels, each with a 16-bit compare value. Each of the counter/capture channels can be used as a PWM output or to capture the timing of edges on input signals. It can also be configured in IR generation mode, where it counts timer 3 periods and the output is ANDed with the output of timer 3 to generate modulated consumer IR signals with minimal CPU interaction. Timer 2 is a 40-bit timer used by the Bluetooth low energy stack. It has a 16-bit counter with a configurable timer period and a 24-bit overflow counter that can be used to keep track of the number of periods that have transpired. A 40-bit capture register is also used to record the exact time at which a start-of-frame delimiter is received/transmitted or the exact time at which transmission ends. There are two 16-bit timer-compare registers and two 24-bit overflow-compare registers that can be used to give exact timing for start of RX or TX to the radio or general interrupts. Timer 3 and timer 4 are 8-bit timers with timer/counter/PWM functionality. They have a programmable prescaler, an 8-bit period value, and one programmable counter channel with an 8-bit compare value. Each of the counter channels can be used as PWM output. USART 0 and USART 1 are each configurable as either an SPI master/slave or a UART. They provide double buffering on both RX and TX and hardware flow control and are thus well suited to high-throughput full-duplex applications. Each USART has its own high-precision baud-rate generator, thus leaving the ordinary timers free for other uses. When configured as SPI slaves, the USARTs sample the input signal using SCK directly instead of using some oversampling scheme, and are thus well-suited for high data rates. The AES encryption/decryption core allows the user to encrypt and decrypt data using the AES algorithm with 128-bit keys. The AES core also supports ECB, CBC, CFB, OFB, CTR, and CBC-MAC, as well as hardware support for CCM. The ADC supports 7 to 12 bits of resolution with a corresponding range of bandwidths from 30-kHz to 4-kHz, respectively. DC and audio conversions with up to eight input channels (I/O controller pins) are possible. The inputs can be selected as single-ended or differential. The reference voltage can be internal, AVDD, or a single-ended or differential external signal. The ADC also has a temperature-sensor input channel. The ADC can automate the process of periodic sampling or conversion over a sequence of channels. The operational amplifier is intended to provide front-end buffering and gain for the ADC. Both inputs as well as the output are available on pins, so the feedback network is fully customizable. A chopper-stabilized mode is available for applications that need good accuracy with high gain. The ultralow-power analog comparator enables applications to wake up from PM2 or PM3 based on an analog signal. Both inputs are brought out to pins; the reference voltage must be provided externally. The comparator output is connected to the I/O controller interrupt detector and can be treated by the MCU as a regular I/O pin interrupt. $ 20 $ Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 TYPICAL CHARACTERISTICS RX CURRENT IN WAIT FOR SYNC vs TEMPERATURE TEMPERATURE 20.5 32.5 Gain = Standard Setting Input = -70 dBm V CC = 3 V TX Power Setting = 4 dBm V CC = 3 V 32 Current (mA) 20 Current (mA) $ TX CURRENT vs 19.5 31.5 19 31 18.5 -40 -20 0 20 40 Temperature ( °C) 60 30.5 -40 80 -20 0 G001 20 40 Temperature ( °C) Figure 9. Figure 10. RX SENSITIVITY vs TEMPERATURE TX POWER vs TEMPERATURE -83 60 80 G002 7 Gain = Standard Setting V CC = 3 V -84 TX Power Setting = 4 dBm V CC = 3 V 6 -85 5 Level (dBm) Level (dBm) -86 -87 -88 4 3 -89 2 -90 1 -91 -92 -40 -20 0 20 40 Temperature ( °C) 60 0 -40 80 0 20 40 Temperature ( °C) Figure 11. Figure 12. RX CURRENT IN WAIT FOR SYNC vs SUPPLY VOLTAGE TX CURRENT vs SUPPLY VOLTAGE 60 80 G004 32 19.7 Gain = Standard Setting 19.68 T A = 25°C TX Power Setting = 4 dBm 31.9 Input = -70 dBm T A = 25°C 19.66 31.8 31.7 Current (mA) 19.64 Current (mA) -20 G003 19.62 19.6 19.58 31.6 31.5 31.4 19.56 31.3 19.54 31.2 19.52 31.1 19.5 31 2 2.2 2.4 2.6 2.8 3 Supply Voltage (V) 3.2 3.4 3.6 2 2.2 2.4 G005 Figure 13. 2.6 2.8 3 Supply Voltage (V) 3.2 3.4 3.6 G006 Figure 14. Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 21 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com TYPICAL CHARACTERISTICS (continued) # # RX SENSITIVITY vs TX POWER vs SUPPLY VOLTAGE SUPPLY VOLTAGE -87 5 Gain = Standard Setting T A = 25°C 4.6 -87.6 4.4 -87.8 -88 -88.2 4.2 4 3.8 -88.4 3.6 -88.6 3.4 -88.8 3.2 -89 3 2 2.2 2.4 2.6 2.8 3 Supply Voltage (V) 3.2 3.4 3.6 2 Level (dBm) -87.6 2.4 2.6 2.8 3 Supply Voltage (V) 3.2 3.4 3.6 G008 Figure 15. Figure 16. RX SENSITIVITY vs FREQUENCY RX INTERFERER REJECTION (SELECTIVITY) vs INTERFERER FREQUENCY 60 Gain = Standard Setting T A = 25°C V CC = 3 V 50 40 Rejection (dB) -87.4 2.2 G007 -87 -87.2 T A = 25°C TX Power Setting = 4 dBm 4.8 -87.4 Level (dBm) Level (dBm) -87.2 -87.8 -88 -88.2 30 20 -88.4 Gain = Standard Setting TA = 25°C V CC = 3V Wanted Signal at 2426 MHz with -67 dBm Level 10 -88.6 0 -88.8 -89 2400 2480 2410 2420 2430 2440 2450 2460 -10 2400 2480 2470 G009 2410 2420 2430 2440 2450 Frequency (MHz) Figure 17. Figure 18. 4.6 2470 TX POWER vs FREQUENCY 5 4.8 2460 G010 Frequency (MHz) T A = 25°C TX Power Setting = 4 dBm V CC = 3 V Level (dBm) 4.4 4.2 4 3.8 3.6 3.4 3.2 3 2400 2480 2410 2420 2430 2440 2450 2460 2470 G011 Frequency (MHz) Figure 19. 22 Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 TYPICAL CHARACTERISTICS (continued) " Table 1. Output Power and Current Consumption (1) (2) (1) (2) Typical Output Power (dBm) Typical Current Consumption (mA) 4 32 0 27 –6 24 –23 21 Measured on Texas Instruments CC2540 EM reference design with TA = 25°C, VDD = 3 V and fc = 2440 MHz. The transmitter output power setting is programmable using a TI BLE stack vendor-specific API command. The default value is 0 dBm. Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 23 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!!! ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com APPLICATION INFORMATION # # Few external components are required for the operation of the CC2540. A typical application circuit is shown in Figure 20. Optional 32-kHz Crystal (1) C331 2-V to 3.6-V Power Supply XTAL2 C401 3 USB_N 4 DVDD_USB 5 P1_5 6 P1_4 7 31 29 AVDD2 27 RF_N 26 RF_P 25 AVDD3 24 XOSC_Q2 23 P0_1 P0_0 RESET_N 19 20 P0_2 18 P0_4 15 17 P0_5 14 P0_3 P0_6 13 16 P0_7 11 P1_0 P1_1 DVDD2 AVDD4 L251 C251 Antenna (50 W) C252 L252 C261 L253 L261 C262 C253 XOSC_Q1 22 12 9 30 AVDD1 28 DIE ATTACH PAD P1_3 10 R301 RBIAS CC2540 P1_2 8 AVDD6 34 36 P2_0 P2_2 37 P1_7 P2_1 35 38 P2_4/XOSC32K_Q1 32 USB_P P2_3/XOSC32K_Q2 33 2 P1_6 40 DCOUPL 1 DGND_USB DVDD1 39 C321 AVDD5 21 XTAL1 C221 Power Supply Decoupling Capacitors are Not Shown Digital I/O Not Connected C231 S0383-03 (1) 32-kHz crystal is mandatory when running the chip in low-power modes, except if the link layer is in the standby state (Vol. 6 Part B Section 1.1 in [1]). NOTE: Different antenna alternatives will be provided as reference designs. Figure 20. CC2540 Application Circuit Table 2. Overview of External Components (Excluding Supply Decoupling Capacitors) Component 24 Description Value C221 32-MHz xtal loading capacitor 12 pF C231 32-MHz xtal loading capacitor 12 pF C251 Part of the RF matching network 18 pF C252 Part of the RF matching network 1 pF C253 Part of the RF matching network 1 pF C261 Part of the RF matching network 18 pF C262 Part of the RF matching network 1 pF C321 32-kHz xtal loading capacitor 15 pF C331 32-kHz xtal loading capacitor 15 pF C401 Decoupling capacitor for the internal digital regulator 1 !F Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! ! ! CC2540F128, CC2540F256 www.ti.com SWRS084 – OCTOBER 2010 Table 2. Overview of External Components (Excluding Supply Decoupling Capacitors) (continued) Component Description Value L251 Part of the RF matching network 2 nH L252 Part of the RF matching network 1 nH L253 Part of the RF matching network 3 nH L261 Part of the RF matching network 2 nH R301 Resistor used for internal biasing 56 k! Input/Output Matching When using an unbalanced antenna such as a monopole, a balun should be used to optimize performance. The balun can be implemented using low-cost discrete inductors and capacitors. The recommended balun shown consists of C262, L261, C252, and L252. # Crystal An external 32-MHz crystal, XTAL1, with two loading capacitors (C221 and C231) is used for the 32-MHz crystal oscillator. See 32-MHz CRYSTAL OSCILLATOR for details. The load capacitance seen by the 32-MHz crystal is given by: 1 CL = + Cparasitic 1 1 + C221 C231 (1) XTAL2 is an optional 32.768-kHz crystal, with two loading capacitors (C321 and C331) used for the 32.768-kHz crystal oscillator. The 32.768-kHz crystal oscillator is used in applications where both very low sleep-current consumption and accurate wake-up times are needed. The load capacitance seen by the 32.768-kHz crystal is given by: 1 CL = + Cparasitic 1 1 + C321 C331 (2) A series resistor may be used to comply with the ESR requirement. On-Chip 1.8-V Voltage Regulator Decoupling The 1.8-V on-chip voltage regulator supplies the 1.8-V digital logic. This regulator requires a decoupling capacitor (C401) for stable operation. Power-Supply Decoupling and Filtering Proper power-supply decoupling must be used for optimum performance. The placement and size of the decoupling capacitors and the power supply filtering are very important to achieve the best performance in an application. TI provides a compact reference design that should be followed very closely. References 1. Bluetooth® Core Technical Specification document, version 4.0 http://www.bluetooth.com/SiteCollectionDocuments/Core_V40.zip 2. CC253x System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 and ZigBee® Applications/CC2540 System-on-Chip Solution for 2.4-GHz Bluetooth low energy Applications (SWRU191) Additional Information Texas Instruments offers a wide selection of cost-effective, low-power RF solutions for proprietary and standard-based wireless applications for use in industrial and consumer applications. Our selection includes RF transceivers, RF transmitters, RF front ends, and System-on-Chips as well as various software solutions for the sub-1- and 2.4-GHz frequency bands. Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated 25 Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! ! ! CC2540F128, CC2540F256 SWRS084 – OCTOBER 2010 www.ti.com In addition, Texas Instruments provides a large selection of support collateral such as development tools, technical documentation, reference designs, application expertise, customer support, third-party and university programs. The Low-Power RF E2E Online Community provides technical support forums, videos and blogs, and the chance to interact with fellow engineers from all over the world. With a broad selection of product solutions, end application possibilities, and a range of technical support, Texas Instruments offers the broadest low-power RF portfolio. We make RF easy! The following subsections point to where to find more information. # Texas Instruments Low-Power RF Web Site • • • # Forums, videos, and blogs RF design help E2E interaction Join us today at www.ti.com/lprf-forum. Texas Instruments Low-Power RF Developer Network Texas Instruments has launched an extensive network of low-power RF development partners to help customers speed up their application development. The network consists of recommended companies, RF consultants, and independent design houses that provide a series of hardware module products and design services, including: • RF circuit, low-power RF, and ZigBee® design services • Low-power RF and ZigBee module solutions and development tools • RF certification services and RF circuit manufacturing Need help with modules, engineering services or development tools? Search the Low-Power RF Developer Network tool to find a suitable partner. www.ti.com/lprfnetwork Low-Power RF eNewsletter The Low-Power RF eNewsletter keeps you up-to-date on new products, news releases, developers’ news, and other news and events associated with low-power RF products from TI. The Low-Power RF eNewsletter articles include links to get more online information. Sign up today on www.ti.com/lprfnewsletter 26 Submit Documentation Feedback Copyright © 2010, Texas Instruments Incorporated Product Folder Link(s): CC2540F128 CC2540F256 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! ! ! ! ! ! ! ! ! ! # !(45!6778!!! !(/9#1!:**);/+#)*!<%&#;%$%=!! # # # # # # !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! ! ! # # # 19-1289; Rev 5; 2/11 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus All devices achieve a 1!A supply current using Maxim’s revolutionary AutoShutdown Plus™ feature. These devices automatically enter a low-power shutdown mode when the RS-232 cable is disconnected or the transmitters of the connected peripherals are inactive, and the UART driving the transmitter inputs is inactive for more than 30 seconds. They turn on again when they sense a valid transition at any transmitter or receiver input. AutoShutdown Plus saves power without changes to the existing BIOS or operating system. T h e M A X 3 2 2 5 /M A X 3 2 2 7 /M A X 3 2 4 5 a ls o fe a tu r e MegaBaud™ operation, guaranteeing 1Mbps for highspeed applications such as communicating with ISDN modems. The MAX3224/MAX3226/MAX3244 guarantee 250kbps operation. The transceivers have a proprietary low-dropout transmitter output stage enabling true RS232 performance from a +3.0V to +5.5V supply with a dual charge pump. The charge pump requires only four small 0.1!F capacitors for operation from a 3.3V supply. The MAX3224–MAX3227 feature a logic-level output (READY) that asserts when the charge pump is regulating and the device is ready to begin transmitting. All devices are available in a space-saving TQFN, TSSOP, and SSOP packages. Applications _Next Generation Device Features !" For Smaller Packaging: MAX3228/MAX3229: +2.5V to +5.5V RS-232 Transceivers in UCSP™ !" For Low-Voltage or Data Cable Applications: MAX3380E/MAX3381E: +2.35V to +5.5V, 1!A, 2 Tx/2 Rx RS-232 Transceivers with ±15kV ESDProtected I/O and Logic Pins !" For Integrated ESD Protection: MAX3222E/MAX3232E/MAX3237E/MAX3241E/ MAX3246E: ±15kV ESD-Protected, Down to 10nA, +3.0V to +5.5V, Up to 1Mbps, True RS-232 Transceivers (MAX3246E Available in UCSP) Ordering Information PART TEMP RANGE PIN-PACKAGE MAX3224CPP+ 0°C to +70°C 20 PDIP MAX3224CAP+ 0°C to +70°C 20 SSOP MAX3224CTP+ 0°C to +70°C 20 TQFN-EP* MAX3224CUP+ 0°C to +70°C 20 TSSOP MAX3224EPP+ -40°C to +85°C 20 PDIP MAX3224EAP+ -40°C to +85°C 20 SSOP MAX3224ETP+ -40°C to +85°C 20 TQFN-EP* MAX3224EUP+ -40°C to +85°C 20 TSSOP +Denotes a lead(Pb)-free/RoHS-compliant package. *EP = Exposed pad. Ordering Information continued at end of data sheet. Notebook, Subnotebook, and Palmtop Computers Cellular Phones Selector Guide Battery-Powered Equipment Handheld Equipment PART Peripherals Printers NO. OF GUARANTEED READY DRIVERS/ DATA RATE OUTPUT RECEIVERS (bps) AutoShutdown Plus MAX3224 2/2 250k ! ! MAX3225 2/2 1M ! ! MAX3226 1/1 250k ! ! MAX3227 1/1 1M ! ! MAX3244 3/5 250k — ! MAX3245 3/5 1M — ! MAX3224–MAX3227/MAX3244/MAX3245 General Description The MAX3224–MAX3227/MAX3244/MAX3245 are 3Vpowered EIA/TIA-232 and V.28/V.24 communications interfaces with automatic shutdown/wakeup features and high data-rate capabilities. AutoShutdown Plus, MegaBaud, and UCSP are trademarks of Maxim Integrated Products, Inc. Maxim Integrated Products 1 For pricing, delivery, and ordering information, please contact Maxim Direct at 1-888-629-4642, or visit Maxim’s website at www.maxim-ic.com. !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! ! ! # MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus ABSOLUTE MAXIMUM RATINGS VCC to GND ..............................................................-0.3V to +6V V+ to GND (Note 1) ..................................................-0.3V to +7V V- to GND (Note 1) ...................................................+0.3V to -7V V+ + !V-!(Note 1) ................................................................+13V Input Voltages T_IN, FORCEON, FORCEOFF to GND ................ -0.3V to +6V R_IN to GND ....................................................................±25V Output Voltages T_OUT to GND .............................................................±13.2V R_OUT, INVALID, READY to GND .........-0.3V to (VCC + 0.3V) Short-Circuit Duration T_OUT to GND .......................................................Continuous Continuous Power Dissipation (TA = +70°C) 16-Pin SSOP (derate 7.14mW/°C above +70°C) .........571mW 20-Pin PDIP (derate 11.11mW/°C above +70°C) ............889mW 20-Pin TQFN (derate 21.3mW/°C above +70°C)........1702.1mW 20-Pin SSOP (derate 8.00mW/°C above +70°C) .........640mW 20-Pin TSSOP (derate 7.00mW/°C above +70°C) .......559mW 28-Pin SO (W) (derate 12.5mW/°C above +70°C) ............. 1W 28-Pin SSOP (derate 9.52mW/°C above +70°C) .........762mW Operating Temperature Ranges MAX32_ _C_ _.....................................................0°C to +70°C MAX32_ _E_ _ ..................................................-40°C to +85°C Storage Temperature Range .............................-65°C to +160°C Lead Temperature (soldering, 10s) .................................+300°C Soldering Temperature (reflow) .......................................+260°C Note 1: V+ and V- can have maximum magnitudes of 7V, but their absolute difference cannot exceed 13V. Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. ELECTRICAL CHARACTERISTICS (VCC = +3V to +5.5V, C1–C4 = 0.1!F, tested at 3.3V ±10%; C1 = 0.047!F, C2–C4 = 0.33!F, tested at 5.0V ±10%; TA = TMIN to TMAX, unless otherwise noted. Typical values are at TA = +25°C.) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS DC CHARACTERISTICS (VCC = 3.3V or 5.0 , TA = +25°C) Supply Current, AutoShutdown Plus FORCEON = GND, FORCEOFF = VCC, all R_IN idle, all T_IN idle 1 10 !A Supply Current, Shutdown FORCEOFF = GND 1 10 !A Supply Current, AutoShutdown Plus Disabled FORCEON = FORCEOFF = VCC, no load 0.3 1 mA 0.8 V LOGIC INPUTS AND RECEIVER OUTPUTS Input Logic Threshold Low T_IN, FORCEON, FORCEOFF Input Logic Threshold High T_IN, FORCEON, FORCEOFF VCC = 3.3V 2 VCC = 5.0V 2.4 Transmitter Input Hysteresis V 0.5 V Input Leakage Current T_IN, FORCEON, FORCEOFF ±0.01 ±1 !A Output Leakage Current R_OUT (MAX3244/MAX3245), receivers disabled ±0.05 ±10 !A Output Voltage Low IOUT = 1.6mA 0.4 V Output Voltage High IOUT = -1.0mA V CC - 0.6 V CC - 0.1 RECEIVER INPUTS Input Voltage Range -25 Input Threshold Low T A = +25°C Input Threshold High T A = +25°C +25 V CC = 3.3V 0.6 1.2 V CC = 5.0V 0.8 1.5 1.5 2.4 V CC = 5.0V 1.8 2.4 0.5 T A = +25°C 3 5 V V V CC = 3.3V Input Hysteresis Input Resistance V V V 7 k! 2 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! # ! ! # 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus ELECTRICAL CHARACTERISTICS (continued) (VCC = +3V to +5.5V, C1–C4 = 0.1!F, tested at 3.3V ±10%; C1 = 0.047!F, C2–C4 = 0.33!F, tested at 5.0V ±10%; TA = TMIN to TMAX, unless otherwise noted. Typical values are at TA = +25°C.) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS TRANSMITTER OUTPUTS Output Voltage Swing All transmitter outputs loaded with 3k! to ground ±5 ±5.4 Output Resistance VCC = V+ = V- = 0, transmitter outputs = ±2V 300 10M Output Short-Circuit Current VCC = 0 or 3V to 5.5V, VOUT = ±12V, Transmitters disabled Output Leakage Current V ! ±60 mA ±25 !A MOUSE DRIVEABILITY (MAX32 4/MAX324 ) T1IN = T2IN = GND, T3IN = VCC, T3OUT loaded with 3k! to GND, T1OUT and T2OUT loaded with 2.5mA each Transmitter Output Voltage ±5 V AutoShutdown Plus (FORCEON = GND, F RCEOFF = VCC) Receiver Input Threshold to INVALID Output High Figure 4a Receiver Input Threshold to INVALID Output Low Figure 4a INVALID, READY (MAX3224–MAX3227) Output Voltage Low IOUT = -1.6mA INVALID, READY (MAX3224–MAX3227) Output Voltage High IOUT = -1.0mA Positive threshold Negative threshold 2.7 -2.7 -0.3 V 0.3 V 0.4 V VCC - 0.6 V Receiver Positive or Negative Threshold to INVALID High tINVH VCC = 5V, Figure 4b 1 !s Receiver Positive or Negative Threshold to INVALID Low tINVL VCC = 5V, Figure 4b 30 !s Receiver or Transmitter Edge to Transmitters Enabled tWU V CC = 5V, Figure 5b (Note 2) 100 !s Receiver or Transmitter Edge to Transmitters Shutdown tAUTOSHDN V CC = 5V, Figure 5b (Note 2) 15 30 60 s 3 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! ! ! # # # MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus TIMING CHARACTERISTICS—MAX3224/MAX3226/MAX3244 (VCC = +3V to +5.5V, C1–C4 = 0.1!F, tested at 3.3V ±10%; C1 = 0.047!F, C2–C4 = 0.33!F, tested at 5.0V ±10%; TA = TMIN to TMAX, unless otherwise noted. Typical values are at TA = +25°C.) PARAMETER SYMBOL Maximum Data Rate Receiver Propagation Delay CONDITIONS MIN RL = 3k!, CL = 1000pF, one transmitter switching tPHL tPLH TYP MAX 250 kbps 0.15 R_IN to R_OUT, CL = 150pF UNITS !s 0.15 Receiver Output Enable Time Normal operation (MAX3244 only) 200 Receiver Output Disable Time Normal operation (MAX3244 only) 200 ns (Note 3) 100 50 ns ns Transmitter Skew Receiver Skew ! tPHL - tPLH ! ! tPHL - tPLH ! VCC = 3.3V, TA = +25°C, RL = 3k! to 7k!, measured from +3V to -3V or -3V to +3V Transition-Region Slew Rate ns CL = 150pF to 1000pF 6 30 CL = 150pF to 2500pF 4 30 V/!s TIMING CHARACTERISTICS—MAX3225/MAX3227/MAX3245 (VCC = +3V to +5.5V, C1–C4 = 0.1!F, tested at 3.3V ±10%; C1 = 0.047!F, C2–C4 = 0.33!F, tested at 5.0V ±10%; TA = TMIN to TMAX, unless otherwise noted. Typical values are at TA = +25°C.) PARAMETER SYMBOL Maximum Data Rate Receiver Propagation Delay tPHL tPLH CONDITIONS MIN RL = 3k!, CL = 1000pF, one transmitter switching 250 VCC = 3.0V to 4.5V, RL = 3k!, CL = 250pF, one transmitter switching 1000 VCC = 4.5V to 5.5V, RL = 3k!, CL = 1000pF, one transmitter switching 1000 TYP MAX kbps 0.15 R_IN to R_OUT, CL = 150pF UNITS !s 0.15 Receiver Output Enable Time Normal operation (MAX3245 only) 200 ns Receiver Output Disable Time Normal operation (MAX3245 only) 200 ns (Note 3) 25 ns 50 ns Transmitter Skew Receiver Skew Transition-Region Slew Rate ! tPHL - tPLH ! ! tPHL - tPLH ! V CC = 3.3V, T A = +25°C, R L = 3k! to 7k!, C L = 150pF to 1000pF, measured from +3V to -3V or -3V to +3V 24 150 V/!s Note 2: A transmitter/receiver edge is defined as a transition through the transmitter/receiver input logic thresholds. Note 3: Transmitter skew is measured at the transmitter zero cross points. 4 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!!"! ! ! ! $ ! ! $ 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus MAX3224/MAX3226 TRANSMITTER OUTPUT VOLTAGE vs. LOAD CAPACITANCE 12 T1 TRANSMITTING AT 250kbps T2 (MAX3224) TRANSMITTING AT 15.6kbps 1 0 -1 -2 -3 +SLEW 8 6 4 -4 V OUT- -5 2000 3000 4000 5000 0 1000 2000 3000 4000 5000 MAX3224-03 T2 (MAX3224) TRANSMITTING AT 15.6kbps 0 1000 2000 3000 4000 MAX3225/MAX3227 OPERATING SUPPLY CURRENT vs. LOAD CAPACITANCE MAX3224-05 MAX3225/MAX3227 SLEW RATE vs. LOAD CAPACITANCE MAX3224-04 MAX3225/MAX3227 TRANSMITTER OUTPUT VOLTAGE vs. LOAD CAPACITANCE 70 SLEW RATE (V/µs) (MAX3225) LOAD = 3k! + C L 50 +SLEW 30 20 -5.0 1500 2000 2500 MAX3225/MAX3227 TRANSMITTER SKEW vs. LOAD CAPACITANCE 500 30 25 20 AVERAGE; 10 PARTS 15 0 20 1000 1500 2000 2500 3000 500 1000 1500 2000 MAX3224–MAX3227 READY TURN-ON TIME vs. TEMPERATURE MAX3224–MAX3227 READY TURN-OFF TIME vs. TEMPERATURE 26 22 0 LOAD CAPACITANCE (pF) 28 5 LOAD CAPACITANCE (pF) 2500 34 24 1Mbps LOAD CAPACITANCE (pF) 36 10 500 2000 200 180 READY TURN-OFF TIME (ns) 1 TRANSMITTER AT 30kbps (MAX3225) LOAD = 3k! + C L 1500 MAX3224-08 40 1000 38 READY TURN-ON TIME (µs) 1 TRANSMITTER AT 512kbps MAX3224-07 45 1.5Mbps 40 0 0 LOAD CAPACITANCE (pF) 50 2Mbps 60 10 0 1000 70 20 10 500 1 TRANSMITTER AT 1/16 DATA RATE (MAX3225) LOAD = 3k! + C L 80 1 TRANSMITTER AT 1Mbps 1 TRANSMITTER AT 62.5kbps (MAX3225) 5000 1 TRANSMITTER AT FULL DATA RATE 90 SUPPLY CURRENT (mA) 60 -7.5 TRANSMITTER SKEW (ns) T1 TRANSMITTING AT 250kbps LOAD CAPACITANCE (pF) 1 TRANSMITTER AT FULL DATA RATE 0 20kbps 15 LOAD CAPACITANCE (pF) 2Mbps 35 20 LOAD CAPACITANCE (pF) 5.0 0 120kbps 25 0 0 1000 30 5 FOR DATA RATES UP TO 250kbps 0 250kbps 35 10 2 -6 TRANSMITTER OUTPUT VOLTAGE (V) -SLEW 10 40 MAX3224-06 2 45 2500 MAX3224-09 3 14 SUPPLY CURRENT (mA) 4 16 MAX3224-02 V OUT+ MAX3224-01 5 SLEW RATE (V/µs) TRANSMITTER OUTPUT VOLTAGE (V) 6 MAX3224/MAX3226 OPERATING SUPPLY CURRENT vs. LOAD CAPACITANCE MAX3224/MAX3226 SLEW RATE vs. LOAD CAPACITANCE MAX3224–MAX3227/MAX3244/MAX3245 Typical Operating Characteristics (VCC = +3.3V, 250kbps data rate, C1–C4 = 0.1!F, all transmitters loaded with 3k! and CL, TA = +25°C, unless otherwise noted.) 160 140 120 100 80 60 40 20 -40 -20 0 20 40 60 80 TEMPERATURE (°C) 100 0 -40 -20 0 20 40 60 80 100 TEMPERATURE (°C) 5 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! # ! ! # Typical Operating Characteristics (continued) (VCC = +3.3V, 250kbps data rate, C1–C4 = 0.1!F, all transmitters loaded with 3k! and CL, TA = +25°C, unless otherwise noted.) 12 2 TRANSMITTERS AT 15.6kbps 1 10 SLEW RATE (V/µs) 1 TRANSMITTER AT 250kbps 0 -1 -2 8 6 4 -3 -4 0 1000 2000 3000 4000 20kbps 20 0 0 5000 1000 2000 3000 4000 5000 60 SLEW RATE (V/µs) 2Mbps 1.5Mbps 1Mbps 1 TRANSMITTER AT FULL DATA RATE 2 TRANSMITTERS AT 1/16 DATA RATE 2Mbps 3000 4000 5000 MAX3224-14 70 MAX3224-13 1.5Mbps 1Mbps 50 40 30 20 -5.0 10 -7.5 0 1 TRANSMITTER AT 1Mbps 2 TRANSMITTERS AT 62.5kbps 400 800 1200 1600 2000 0 1200 1600 MAX3245 OPERATING SUPPLY CURRENT vs. LOAD CAPACITANCE MAX3245 TRANSMITTER SKEW vs. LOAD CAPACITANCE 50 MAX3224-15 90 80 45 2Mbps 60 800 LOAD CAPACITANCE (pF) 100 70 400 LOAD CAPACITANCE (pF) 1.5Mbps 50 40 30 1Mbps 20 2000 MAX3224-16 0 TRANSMITTER SKEW (ns) TRANSMITTER OUTPUT VOLTAGE (V) 5.0 2.5 2000 MAX3245 SLEW RATE vs. LOAD CAPACITANCE 7.5 SUPPLY CURRENT (mA) 1000 LOAD CAPACITANCE (pF) MAX3245 TRANSMITTER OUTPUT VOLTAGE vs. LOAD CAPACITANCE -2.5 0 LOAD CAPACITANCE (pF) LOAD CAPACITANCE (pF) 0 120kbps 30 0 -6 250kbps 40 10 2 V OUT- -5 1 TRANSMITTER AT 250kbps 2 TRANSMITTERS AT 15.6kbps 50 SUPPLY CURRENT (mA) 3 2 60 MAX3224-11 V OUT+ 4 14 MAX3224-10 6 5 MAX3244 OPERATING SUPPLY CURRENT vs. LOAD CAPACITANCE MAX3244 SLEW RATE vs. LOAD CAPACITANCE MAX3224-12 MAX3244 TRANSMITTER OUTPUT VOLTAGE vs. LOAD CAPACITANCE TRANSMITTER OUTPUT VOLTAGE (V) MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus 40 35 30 25 20 15 10 1 TRANSMITTER AT FULL DATA RATE 2 TRANSMITTERS AT 1/16 DATA RATE 10 5 0 0 0 400 800 1200 1600 2000 0 LOAD CAPACITANCE (pF) 1000 2000 3000 LOAD CAPACITANCE (pF) 6 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"!! ! ! ! # ! ! # 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus PIN MAX3224 MAX3225 MAX3226 MAX3227 MAX3244 MAX3245 NAME FUNCTION 19 1 — READY Ready to Transmit Output, Active High. READY is enabled high when V- goes below -4V and the device is ready to transmit. 2 1 2 28 C1+ 3 20 3 27 V+ +5.5V Generated By the Charge Pump 4 2 4 24 C1- Negative Terminal of Voltage-Doubler Charge-Pump Capacitor 5 3 5 1 C2+ Posit ive Terminal of Inverting Charge-Pump Capacitor 6 4 6 2 C2- Negative Terminal of Inverting Charge-Pump Capacitor PDIP/ SSIP/ TSSOP TQFNEP 1 7 5 7 3 V- 8, 17 6, 15 13 9, 10, 11 T_OUT Posit ive Terminal of Voltage-Doubler Charge-Pump Capacitor -5.5V Generated By the Charge Pump RS-232 Transmitter Outputs 9, 16 7, 14 8 4–8 R_IN 10, 15 8, 13 9 15–19 R_OUT RS-232 Receiver Input s TTL/CMOS Receiver Outputs 11 9 10 21 INVALID Valid Signal Detector Output, Act ive Low. A logic-high indicates that a valid RS-232 level is present on a receiver input. 12, 13 10, 11 11 12, 13, 14 T_IN 14 12 12 23 FORCEON 18 16 14 25 GND Ground 19 17 15 26 VCC +3.0V to +5.5V Single Supply Voltage 20 18 16 22 — — — 20 R2OUTB TTL/CMOS Noninverting Complementary Receiver Outputs. Always active. — — — — EP Exposed Pad (TQFN only). Solder the exposed pad to the ground, or leave unconnected. TTL/CMOS Transmitter Inputs Force-On Input, Act ive High. Drive high to override AutoShutdown Plus, keeping transmitters and receivers on (FORCEOFF must be high) (Table 1). Force-Off Input, Act ive Low. Drive low to shut down transmitters, FORCEOFF receivers (except R2OUTB), and charge pump. This overrides AutoShutdown Plus and FORCEON (Table 1). Detailed Description Dual Charge-Pump Voltage Converter The MAX3224–MAX3227/MAX3244/MAX3245’s internal power supply consists of a regulated dual charge pump that provides output voltages of +5.5V (doubling charge pump) and -5.5V (inverting charge pump), over the +3.0V to +5.5V range. The charge pump operates in discontinuous mode: if the output voltages are less MAX3224–MAX3227/MAX3244/MAX3245 Pin Description than 5.5V, the charge pump is enabled; if the output voltages exceed 5.5V, the charge-pump is disabled. Each charge pump requires a flying capacitor (C1, C2) and a reservoir capacitor (C3, C4) to generate the V+ and V- supplies. The READY output (MAX3224–MAX3227) is low when the charge pumps are disabled in shutdown mode. The READY signal asserts high when V- goes below -4V. 7 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!""! ! ! ! $ ! ! $ MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus POWERMANAGEMENT UNIT OR KEYBOARD CONTROLLER FORCEOFF VCC FORCEON INVALID PROTECTION DIODE MAX3244 MAX3245 PREVIOUS RS-232 VCC Rx I 5k! UART Tx CPU GND I/O CHIP WITH UART SHDN = GND RS-232 a) OLDER RS-232: POWERED-DOWN UART DRAWS CURRENT FROM ACTIVE RECEIVER OUTPUT IN SHUTDOWN. VCC TO µP LOGIC TRANSITION DETECTOR Figure 1. Interface Under Control of PMU RS-232 Transmitters The transmitters are inverting level translators that convert CMOS-logic levels to 5.0V EIA/TIA-232 levels. The M AX3224/M AX3226/M AX3244 guarantee a 250kbps data rate (1Mbps for the MAX3225/MAX3227/ MAX3245) with worst-case loads of 3k! in parallel with 1000pF, providing compatibility with PC-to-PC communication software (such as LapLink ® ). Transmitters can be paralleled to drive multiple receivers. Figure 1 shows a complete system connection. When FORCEOFF is driven to ground or when the AutoShutdown Plus circuitry senses that all receiver and transmitter inputs are inactive for more than 30sec, the transmitters are disabled and the outputs go into a highimpedance state. When powered off or shut down, the outputs can be driven to ±12V. The transmitter inputs do not have pull-up resistors. Connect unused inputs to GND or V CC . MAX3244 MAX3245 I PROTECTION DIODE R2OUTB VCC Rx UART Tx GND b) R2IN R2OUT THREE-STATED T1IN 5k! T1OUT FORCEOFF = GND NEW MAX3244/MAX3245: IN SHUTDOWN, R2OUTB IS USED TO MONITOR EXTERNAL DEVICES AND R2OUT IS THREE STATED, ELIMINATING A CURRENT PATH THROUGH THE UART’S PROTECTION DIODE. Figure 2. The MAX3244/MAX3245 detect RS-232 activity when the UART and interface are shut down. LapLink is a registered trademark of Laplink Software, Inc. 8 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! $ ! ! $ 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus Table 1. Output Control Truth Table RECEIVER OR TRANSMITTER EDGE WITHIN 30sec T_OUT R_OUT (MAX3224/ MAX3225/ MAX3226/ MAX3227) R_OUT (MAX3244/ MAX3245) R2OUTB (MAX3244/ MAX3245) FORCEON FORCEOFF VALID RECEIVER LEVEL Shutdown (Forced Off) X 0 X X High-Z Active High-Z Active Normal Operation (Forced On) 1 1 X X Active Active Active Active Normal Operation (AutoShutdown Plus) 0 1 X Yes Active Active Active Active Shutdown (AutoShutdown Plus) 0 1 X No High-Z Active Active Active Normal Operation INVALID* 1 Yes X Active Active Active Active Normal Operation INVALID* 1 X Yes Active Active Active Active Shutdown INVALID* 1 No No High-Z Active Active Active Normal Operation (AutoShutdown) INVALID* INVALID** Yes X Active Active Active Active Shutdown (AutoShutdown™) INVALID* INVALID** No X High-Z Active High-Z Active OPERATION STATUS X = Don’t care *INVALID connected to FORCEON **INVALID connected to FORCEON and FORCEOFF RS-232 Receivers The receivers convert RS-232 signals to CMOS-logic output levels. The MAX3224–MAX3227 feature inverting outputs that alw ays rem ain active (T able 1). T he MAX3244/MAX3245 have inverting three-state outputs that are high impedance when shut down (FORCEOFF = GND) (Table 1). T h e M A X 3 2 4 4 /M A X 3 2 4 5 fe a tu re a n e xtra , a lw a ys active, noninverting output, R2OUTB. R2OUTB output monitors receiver activity while the other receivers are high impedance, allowing Ring Indicator applications to be monitored without forward biasing other devices connected to the receiver outputs. This is ideal for syste m s w h e re V C C is se t to g ro u n d in s h u td o w n to accommodate peripherals such as UARTs (Figure 2). The MAX3224–MAX3227/MAX3244/MAX3245 feature an INVALID output that is enabled low when no valid RS-232 voltage levels have been detected on all receiver inputs. Because INVALID indicates the receiver input’s condition, it is independent of FORCEON and FORCEOFF states (Figures 3 and 4). AutoShutdown Plus Mode The MAX3224–MAX3227/MAX3244/MAX3245 achieve a 1!A supply current with Maxim’s AutoShutdown Plus feature, which operates when FORCEOFF is high and a FORCEON is low. When these devices do not sense a valid signal transition on any receiver and transmitter input for 30sec, the on-board charge pumps are shut down, reducing supply current to 1!A. This occurs if the RS-232 cable is disconnected or if the connected AutoShutdown is a trademark of Maxim Integrated Products, Inc. !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! $ $ $ EDGE DETECT R_IN 30µs TIMER R -0.3V INVALID R_IN Figure 3a. INVALID Functional Diagram, INVALID Low FORCEOFF S 30sec TIMER EDGE DETECT INVALID ASSERTED IF ALL RECEIVER INPUTS ARE BETWEEN +0.3V AND -0.3V FOR AT LEAST 30µs. AUTOSHDN R FORCEON Figure 3c. AutoShutdown Plus Logic +2.7V FORCEOFF POWERDOWN* FORCEON R_IN 30µs TIMER R -2.7V AUTOSHDN INVALID * POWERDOWN IS ONLY AN INTERNAL SIGNAL. IT CONTROLS THE OPERATIONAL STATUS OF THE TRANSMITTERS AND THE POWER SUPPLIES. INVALID DEASSERTED IF ANY RECEIVER INPUT HAS BEEN BETWEEN +2.7V AND -2.7V FOR LESS THAN 30µs. Figure 3b. INVALID Functional Diagram, INVALID High Figure 3d. Power-Down Logic Table 2. INVALID Truth Table INVALID HIGH RS-232 SIGNAL PRESENT AT ANY RECEIVER INPUT INVALID OUTPUT Yes High No Low peripheral transmitters are turned off, and the UART driving the transmitter inputs is inactive. The system turns on again when a valid transition is applied to any RS-232 receiver or transmitter input. As a result, the system saves power without changes to the existing BIOS or operating system. Figures 3a and 3b depict valid and invalid RS-232 receiver voltage levels. INVALID indicates the receiver input’s condition, and is independent of FORCEON and FORCEOFF states. Figure 3 and Tables 1 and 2 summ arize the operating m odes of the M AX3224– MAX3227/MAX3244/MAX3245 devices. FORCEON and FORCEOFF override AutoShutdown Plus circuitry. W h e n n e ith e r c o n tro l is a s s e rte d , th e IC s e le c ts +2.7V RECEIVER INPUT LEVELS MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus INDETERMINATE +0.3V 0 INVALID LOW -0.3V INDETERMINATE -2.7V INVALID HIGH Figure 4a. Receiver Positive/Negative Thresholds for INVALID between these states automatically based on the last receiver or transmitter input edge received. When shut down, the device’s charge pumps turn off, V+ is pulled to V CC , V- is pulled to ground, the transmitter outputs are high im pedance, and READY (MAX3224–MAX3227) is driven low. The time required to exit shutdown is typically 100!s (Figure 6). 10 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! $ ! ! $ 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus MAX3224–MAX3227/MAX3244/MAX3245 RECEIVER INPUTS INVALID } REGION TRANSMITTER INPUTS TRANSMITTER OUTPUTS INVALID OUTPUT VCC tINVL 0 tINVH tAUTOSHDN tAUTOSHDN tWU tWU *VCC OUTPUT 0 V+ VCC 0 V- *MAX3224–MAX3227 Figure 4b. AutoShutdown Plus, INVALID, and READY Timing Diagram By connecting FORCEON to INVALID, the MAX3224– MAX3227/MAX3244/MAX3245 shut down when no valid receiver level and no receiver or transmitter edge is detected for 30sec, and wake up when a valid receiver level or receiver or transmitter edge is detected. POWERMANAGEMENT UNIT 0.1µF By connecting FORCEON and FORCEOFF to INVALID, the MAX3224–MAX3227/MAX3244/MAX3245 shutdown when no valid receiver level is detected and wake up when a valid receiver level is detected (same functionality as AutoShutdown feature on MAX3221/MAX3223/ MAX3243). A mouse or other system with AutoShutdown Plus may need time to wake up. Figure 5 shows a circuit that forces the transmitters on for 100ms, allowing enough time for the other system to realize that the MAX3244/ MAX3245 is awake. If the other system outputs valid RS-232 signal transitions within that time, the RS-232 ports on both systems remain enabled. MASTER SHDN LINE 1M! FORCEOFF FORCEON MAX3224 MAX3225 MAX3226 MAX3227 MAX3244 MAX3245 Figure 5. AutoShutdown Plus Initial Turn-On to Wake Up a Mouse or Another System 11 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! $ ! ! $ MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus Software-Controlled Shutdown If direct software control is desired, use INVALID to indicate DTR or Ring Indicator signal. Tie FORCEOFF and FORCEON together to bypass the AutoShutdown Plus so the line acts like a SHDN input. transmitter is loaded with 3k! in parallel with 1000pF. The transmitter outputs display no ringing or undesirable transients as they come out of shutdown. Note that the transmitters are enabled only when the magnitude of V- exceeds approximately -3V. Applications Information The capacitor type used for C1–C4 is not critical for proper operation; polarized or nonpolarized capacitors can be used. The charge pump requires 0.1!F capacitors for 3.3V operation. For other supply voltages, see Table 3 for required capacitor values. Do not use values smaller than those listed in Table 3. Increasing the capacitor values (e.g., by a factor of 2) reduces ripple on the transmitter outputs and slightly reduces power consumption. C2, C3, and C4 can be increased without changing C1’s value. However, do not increase C1 without also increasing the values of C2, C3, C4, and C BYPASS, to maintain the proper ratios (C1 to the other capacitors). When using the minimum required capacitor values, m ake sure the capacitor value does not degrade excessively with temperature. If in doubt, use capacitors with a larger nominal value. The capacitor’s equivalent series resistance (ESR), which usually rises at low temperatures, influences the amount of ripple on V+ and V-. FORCEON = FORCEOFF 5V/div 0 Capacitor Selection T1OUT 2V/div 0 Figure 6. Transmitter Outputs when Exiting Shutdown or Powering Up VCC CBYPASS VCC C1+ In most circumstances, a 0.1!F V CC bypass capacitor is adequate. In applications that are sensitive to powersupply noise, use a capacitor of the same value as charge-pump capacitor C1. Connect bypass capacitors as close to the IC as possible. C1 C2- MAX3224 MAX3225 MAX3226 MAX3227 MAX3244 MAX3245 T_ IN Figure 6 shows two transmitter outputs when exiting shutdown mode. As they become active, the two transmitter outputs are shown going to opposite RS-232 levels (one transmitter input is high; the other is low). Each FORCEOFF C4 R_ IN 5k! FORCEON VCC V- T_ OUT R_ OUT Table 3. Required Minimum Capacitance Values V+ C3* C1C2+ C2 Transmitter Outputs when Exiting Shutdown C1, C BYPASS (!F) READY 5µs/div Power-Supply Decoupling V CC (V) T2OUT VCC = 3.3V C1– C4 = 0.1µF 5V/div 0 1000pF GND C2, C3, C4 (!F) 3.0 to 3.6 0.1 0.1 4.5 to 5.5 3.0 to 5.5 0.047 0.22 0.33 1 *C3 CAN BE RETURNED TO VCC OR GND. Figure 7. Loopback Test Circuit 12 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! $ ! ! $ 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus T1IN The MAX3225/MAX3227/MAX3245 maintain the RS-232 ±5.0V minimum transmitter output voltage at data rates up to 1Mbps (MegaBaud). Figure 10 shows a loopback test result with a single transmitter driven at 1Mbps and all transmitters loaded with an RS-232 receiver in parallel with 250pF. Mouse Driveability The MAX3244/MAX3245 are specifically designed to power serial mice while operating from low-voltage power supplies. They have been tested with leading mouse brands from manufacturers such as Microsoft and Logitech. The MAX3244/MAX3245 successfully 5V/div T1IN 5V/div 5V/div T1OUT 5V/div T1OUT 5V/div R1OUT 5V/div R1OUT VCC = 3.3V VCC = 3.3V 2µs/div 200ns/div T1IN 5V/div T1OUT 5V/div Figure 10. MAX3225/MAX3227/MAX3245 Loopback Test Result at 1Mbps TRANSMITTER OUTPUT VOLTAGE (V) Figure 8. MAX3224/MAX3226/MAX3244 Loopback Test Result at 120kbps 5V/div R1OUT 6 5 4 VOUT+ VCC = 3.0V 3 2 MAX3224–MAX3227/MAX3244/MAX3245 High Data Rates The MAX3224/MAX3226/MAX3244 maintain the RS-232 ±5.0V minimum transmitter output voltage even at high data rates. Figure 7 shows a transmitter loopback test c irc u it. F ig u re 8 sh o w s a lo o p b a ck te s t re s u lt a t 120kbps, and Figure 9 shows the sam e test at 250kbps. For Figure 8, all transmitters were driven simultaneously at 120kbps into RS-232 loads in parallel with 1000pF. For Figure 9, a single transmitter was driven at 250kbps, and all transmitters were loaded with an RS-232 receiver in parallel with 250pF. VOUT+ 1 0 -1 -2 -3 VCC VOUTVOUT- -4 -5 VCC = 3.3V -6 0 2µs/div 1 2 3 4 5 6 7 8 9 10 LOAD CURRENT PER TRANSMITTER (mA) Figure 9. MAX3224/MAX3226/MAX3244 Loopback Test Result at 250kbps Figure 11a. MAX324_ Transmitter Output Voltage vs. Load Current per Transmitter 13 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! $ ! ! $ MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus +3.3V 26 0.1µF 28 C1 0.1µF 24 1 C2 0.1µF 2 LOGIC INPUTS VCC 27 C1+ V+ C3 0.1µF C1C2+ MAX3244 MAX3245 V- COMPUTER SERIAL PORT 3 C4 0.1µF C2- 14 T1IN T1OUT +V 13 T2IN T2OUT 10 +V 12 T3IN T3OUT 11 -V 20 R2OUTB 19 R1OUT 9 GND R1IN 4 R2IN 5 R3IN 6 R4IN 7 R5IN 8 Tx 5k! 18 R2OUT 5k! LOGIC OUTPUTS 17 R3OUT RS-232 INPUTS 5k! 16 R4OUT 5k! 15 23 VCC TO POWERMANAGEMENT UNIT 22 21 R5OUT SERIAL MOUSE 5k! FORCEON FORCEOFF INVALID GND 25 Figure 11b. Mouse Driver Test Circuit 14 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! $ ! ! $ 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus Interconnection with 3V and 5V Logic T h e M A X 3 2 2 4 – M A X 3 2 2 7 /M A X 3 2 4 4 /M A X 3 2 4 5 c a n directly interface with various 5V logic families, including ACT and HCT CMOS. See Table 4 for more information on possible combinations of interconnections. Table 5 lists other Maxim 3.0V to 5.5V powered transceivers. Table 4. Logic Family Compatibility with Various Supply Voltages SYSTEM POWER-SUPPLY VOLTAGE (V) VCC SUPPLY VOLTAGE (V) 3.3 3.3 5 5 5 3.3 COMPATIBILITY Compatible with all CMOS families Compatible with all TTL and CMOS families Compatible with ACT and HCT CMOS, and with AC, HC, or CD4000 CMOS Table 5. 3.0V to 5.5V Powered RS-232 Transceivers from Maxim PART SUPPLY VOLTAGE RANGE (V) NO. OF Tx/Rx SUPPLY CURRENT (!A) AutoShutdown Plus AutoShutdown GUARANTEED DATA RATE (bps) MAX3241 +3.0 to +5.5 3/5 300 — — 120k MAX3243 +3.0 to +5.5 3/5 1 — Yes 120k MAX3244 +3.0 to +5.5 3/5 1 Yes — 250k MAX3245 +3.0 to +5.5 3/5 1 Yes — 1M MAX3232 +3.0 to +5.5 2/2 300 — — 120k MAX3222 +3.0 to +5.5 2/2 300 — — 120k MAX3223 +3.0 to +5.5 2/2 1 — Yes 120k MAX3224 +3.0 to +5.5 2/2 1 Yes — 250k MAX3225 +3.0 to +5.5 2/2 1 Yes — 1M MAX3221 +3.0 to +5.5 1/1 1 — Yes 120k MAX3226 +3.0 to +5.5 1/1 1 Yes — 250k MAX3227 +3.0 to +5.5 1/1 1 Yes — 1M MAX3224–MAX3227/MAX3244/MAX3245 drove all serial mice tested and met their respective current and voltage requirem ents. The M AX3244/ MAX3245 dual charge pump ensures the transmitters will supply at least ±5V during worst-case conditions. Figure 11a shows the transmitter output voltages under increasing load current. Figure 11b shows a typical mouse connection. 15 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! # ! ! # 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus MAX3224–MAX3227/MAX3244/MAX3245 Typical Operating Circuits +3.3V +3.3V 15 0.1µF CBYPASS 2 C1 0.1µF 4 5 C2 0.1µF 6 C1+ C1C2+ VCC 3 V+ MAX3226 MAX3227 V- 7 C2- 11 T1IN CBYPASS 0.1µF C1 0.1µF 24 C4 0.1µF C2 0.1µF 2 1 R1IN 8 12 AUTOSHUTDOWN INVALID 10 PLUS FORCEOFF 16 FORCEON GND C1+ V+ TO POWERMANAGEMENT UNIT VCC 14 C3 0.1µF C2+ MAX3244 MAX3245 2 C1 0.1µF 4 5 C2 0.1µF 6 C1+ C1C2+ V+ 13 T2IN T2OUT 10 12 T3IN T3OUT 11 22 FORCEOFF 23 FORCEON 20 R2OUTB 19 R1OUT TTL/CMOS INPUTS V- 18 3 AUTOSHUTDOWN PLUS R2OUT R2IN 5 7 5k! 17 R3OUT R3IN 6 C4 0.1µF 5k! 16 T1OUT 17 R4OUT R4IN 7 5k! RS-232 OUTPUTS T2OUT 8 12 T2IN INVALID 21 R1IN 4 C3 0.1µF C2- 13 T1IN C4 0.1µF 5k! VCC MAX3224* MAX3225* 3 T1OUT 9 19 0.1µF V- C2- +3.3V CBYPASS 27 C1- 14 T1IN 5k! 1 READY 28 C3 0.1µF T1OUT 13 9 R1OUT 26 VCC 15 R5OUT R5IN 8 5k! 15 R1IN 16 R1OUT TTL/CMOS OUTPUTS 10 R2OUT GND RS-232 INPUTS 5k! 25 R2IN 9 5k! 1 READY 14 AUTOSHUTDOWN PLUS FORCEON INVALID 11 FORCEOFF 20 GND TO POWERMANAGEMENT UNIT VCC 18 *MAX3224/MAX3225 PINOUT REFERS TO PDIP/SSOP/TSSOP PACKAGES. 16 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"!! ! ! ! $ ! ! $ 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus TOP VIEW READY 1 + 20 FORCEOFF C1+ 2 READY 1 V+ 3 18 GND MAX3224 MAX3225 C2+ 5 C2- 6 V- 7 C1- 4 16 R1IN C2+ 5 15 R1OUT C2- 6 14 FORCEON 13 T1IN R2IN 9 12 T2IN R2OUT 10 14 GND MAX3226 MAX3227 R1IN 8 9 13 12 C2+ 1 R2IN 5 T2IN MAX3244 MAX3245 24 C1- 23 FORCEON R4IN 7 22 FORCEOFF R5IN 8 21 INVALID 8 R2OUT T1OUT 9 20 R2OUTB 7 R2IN T2OUT 10 19 R1OUT 6 T2OUT T3OUT 11 18 R2OUT T3IN 12 17 R3OUT 5 T2IN 13 16 R4OUT V- 4 C2-. 3 C2+ 2 R3IN 6 GND INVALID T1IN 14 15 R5OUT *EP C1- C1+ 1 26 VCC 25 9 MAX3244 MAX3225 + 27 V+ V- 3 11 VCC 17 READY 19 28 C1+ R1IN 4 10 FORCEOFF 18 + C2- 2 GND 16 R1OUT SSOP T1IN FORCEON R1OUT T1OUT R1IN 14 12 FORCEON 10 INVALID 11 INVALID 15 13 T1OUT 11 T1IN V- 7 DIP/SSOP/TSSOP V+ 20 15 VCC V+ 3 17 T1OUT T2OUT 8 16 FORCEOFF C1+ 2 19 VCC C1- 4 + TQFN MAX3224–MAX3227/MAX3244/MAX3245 Pin Configurations SO/SSOP *CONNECT EP TO GND. 17 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! # ! ! # MAX3224–MAX3227/MAX3244/MAX3245 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus Ordering Information (continued) PART TEMP RANGE PIN-PACKAGE Chip Information PROCESS: BiCMOS MAX3225CPP+ 0°C to +70°C 20 PDIP MAX3225CAP+ 0°C to +70°C 20 SSOP MAX3225CTP+ 0°C to +70°C 20 TQFN-EP* MAX3225CUP+ 0°C to +70°C 20 TSSOP MAX3225EPP+ -40°C to +85°C 20 PDIP MAX3225EAP+ -40°C to +85°C 20 SSOP MAX3225ETP+ -40°C to +85°C 20 TQFN-EP* MAX3225EUP+ -40°C to +85°C 20 TSSOP PACKAGE TYPE PACKAGE CODE OUTLINE NO. LAND PATTERN NO. MAX3225EUP/V+ -40°C to +85°C Package Information For the latest package outline information and land patterns (footprints), go to www.maxim-ic.com/packages. Note that a “+”, “#”, or “-” in the package code indicates RoHS status only. Package drawings may show a different suffix character, but the drawing pertains to the package regardless of RoHS status. 20 TSSOP 16 SSOP A16+2 21-0056 90-0106 MAX3226CAE+ 0°C to +70°C 16 SSOP 20 SSOP A20+2 21-0056 90-0094 MAX3226EAE+ -40°C to +85°C 16 SSOP 20 TQFN-EP T2055+5 21-0140 90-0010 MAX3227CAE+ 0°C to +70°C 16 SSOP 20 TSSOP U20+2 21-0066 90-0116 MAX3227EAE+ -40°C to +85°C 16 SSOP MAX3244CWI+ 0°C to +70°C 28 SO (W) 20 PDIP P20+3 21-0043 — MAX3244CAI+ 0°C to +70°C 28 SSOP 28 SO (W) W28+6 21-0042 90-0109 MAX3244EWI+ -40°C to +85°C 28 SO (W) 28 SSOP A28+1 21-0056 90-0095 MAX3244EAI+ -40°C to +85°C 28 SSOP MAX3245CWI+ 0°C to +70°C 28 SO (W) MAX3245CAI+ 0°C to +70°C 28 SSOP MAX3245EWI+ -40°C to +85°C 28 SO (W) MAX3245EAI+ -40°C to +85°C 28 SSOP +Denotes a lead(Pb)-free/RoHS-compliant package. *EP = Exposed pad. /V denotes an automotive qualified part. 18 !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!""! ! ! ! ! ! $ 1!A Supply Current, 1Mbps, 3.0V to 5.5V, RS-232 Transceivers with AutoShutdown Plus Revision History REVISION NUMBER REVISION DATE PAGES CHANGED DESCRIPTION 3 5/05 Added new packaging types 4 10/08 Added automotive qualif ied product information 1, 18 5 2/11 Changed all the parts in the Ordering Informat ion to lead-free 1, 18 Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are implied. Maxim reserves the right to change the circuitry and specifications without notice at any time. Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 © 2011 Maxim Integrated Products 19 Maxim is a registered trademark of Maxim Integrated Products, Inc. !"#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! ! ! ! ! ! ! ! ! ! "#$%&'()!**+!!,-#.'$)!/$0'&1)*$/!! ! ! ! $ & $ '%7 *%5- %9 \ *%5*$5- '%7 '$ 8=%F+ ' 2%52$5- '$7 '$7 8=%F+ $ " ! 9 # : 1-& %" $8 '# 1-& 6'' %\ '%7 '%d '$7 '$d 67 6d 2%342 2$342 %: [ 2%342 *%342 *$342 %! %8 *%342 5-6)/5& *&a %% % 4% 1-& % *%342 $ 2%5# " .%,! ! .%," 9 .%,# : [ .%,% \ %8 +3*']3+3*']3++ 1-& '% 4$ 2%5- %# %$ &1-&,4B( 4B(,. 4B(,&6&&,4B( .%,! .%," .%,# .%,$ .%,% &6&&$ '! 8=%F+ ''$!"8 6'' '#%% 8=%F+ '$\% & .8,: .8,9 .8,! .8," .8,# .8,$ .8,% .8,8 8=%F+ U)^#$$" '" '#\% 8=%F+ .$,% .$,$ '/0$% '/0$$ 1-& # *%5$ 2%342 % 6'' '"8% 8=%F+ .%,: 7#=#6 ;$ ;# % $ # " ! 9 : [ \ %8 .8,9 .%,! .8,: .%,: .8,% .%," .8,8 .%,# .%,% % $ # " ! 9 : [ \ %8 .$,$ .$,% .8," .8,! ;#<: .8,# .8,$ ) `])&]*I%8 '$!% '$!$ %Z+ '$9% /$9$ ]% !8I3OGT /$!$ /$!# %H` #H` ' '$"% 8=%F+ '$%% 8=%F+ '/0%% '/0 %$a% a$ #$U`b #$=:9[0`b '$$% %$Z+ '$#% %$Z+ ( '/0$$ '#$% %!Z+ '##% %!Z+ *+,. ) %[Z+ `])&]*I%8 *% %H` 2>?@A '$!# %Z+ '$9$ %Z+ B>CA ) cI3OGT S>KA@ATTIUDH>?DK>HVIBEOAGM?>E &DEFGAH?I-FGJAK Q&DER &M?AN ! "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! 8=%F+ '$:% '/0%$ *+,%[Z+ '/0%% '/0%$ $$8Z+ (! BS52'` /$!% $H` *+,*+,. '[ 1-& .8,% !903OGT '$[% (" BS52'` ( *(5)B )6&&" )6&&% )6&&$ *+,*+,. )6&&# ^3B',_$ ^8B',_% )6&&! ;#<: .8,8 *#8% #8 $\ $[ $: $9 $! $" $# $$ %$%H+ *$ $=:I03OGT 1-& 8=%F+ 8=%F+ "8 #\ #[ #: #9 #! #" ## #$ #% 1-& 6'' ;% `])&]*I# % 1-& # 1-& " 1-& ! ! &'34./ &6&&% .%,9 .%,: .$,8 .$,% .$,$ .$,#<^3B'#$0,_$ .$,"<^3B'#$0,_% )6&&9 ! .%,8 .8,: .8,9 .8,! .8," .8,# .8,$ .8,% .8,8 *]B]2,- ! ! %% %$ %# %" %! %9 %: %[ %\ $8 ! " ! *AL %=$ UDHWMXYIUMXI8$YI$8%% # BOAA? $ ! ! % DP % % ! ! ! 2/#'%$!(/*3/*)!!!!!!!!!"#$ ! ! ! ! ! ! ! ! ! "#$%&'()!***+!!)'$,(*$-.! /0'$*1*$-)*#(/!/,'')!! ! ! ! ! ! ! ! ! ! ! "#$%&!'(!)'*+&*+,! ! ! "#$%&'(!)*$ +,-.,++/.,-!"0,12/3.,21! )45$ !%!%$ &'()(*+'$ !",$ !%-%$ ./)01/'203/4+5+26$ !",$ !%"%$ &)7+3()*8)2/5$ !",$ !%9%$ &2:+';$ !9<$ !%=%$ >0;2/+)/4+5+26$ !9<$ "#$%&'(!6*$ +,-.,++/.,-!123,73/71! )8)$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ "#$%&%''!()*#+)$#*,!-)$!.)&/$!.0'+%1'! ! 2/#'%$!(/*3/*)!!!!"#! !"#$%&'$()!*+#$','$("'-&*!*%##"!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "#$%&'(!)* +,-.,++/.,-!"0,12/3.,21! $ $ )*)* +4565784! %&'$ ()*+,$ -./0123$ '(()2)'*3,4$ 5''36$ 3&'$ 7108'3$ 2.'+3'0$ 74$ 3&'$ 2/5-+*4$ 9:;:$ %'2&*/,/8)'6<$ %&)6$ 7108'3$ 0'3'.5)*'6$ 3&'$ 5+=)515$ >+,1'$ 3&+3$ 3&'$ -./0123$&+6$3/$7'?$3&)6$)6$+./1*0$@!AB$-'.$1*)3<$:6$3&'$7108'3$-.'6'*3'0$)*$3&)6$ .'-/.3$6&/C6$3&+3$3&'$()*+,$-./0123$C/1,0$7'$+./1*0$@BB$-'.$1*)3<$D3$)6$6&/C*$ 3&+3$ 3&)6$ 8+08'3$ C/1,0$ 5''3$ +,,$ .'E1).'5'*36$ /($ ,/C$ 2/63$ )*$ 3/0+46$ ,/C$ 0/C*$ '2/*/54<$$ $ )*9* :$6;<$4&;($=8>8&?! %&'$ ()*+,$ -./0123$ /($ 3&)6$ -./F'23$ 5''36$ 3&'$ .'E1).'5'*36$ /($ 7')*8$ 0'6)8*'0$ (/.$ 5+*1(+231.+7),)34<$ :22/.0)*8$ 3/$ 3&'$ 0'6)8*$ .'E1).'5'*36$ (./5$ 9:;:$%'2&*/,/8)'6$+*0$3&'$2+,21,+3)/*6$0/*'G$3&'$()*+,$-./0123$C),,$7'$,'66$3&+*$ #$ )*"<$ %&'6'$ 0)5'*6)/*6$ C),,$ 0'-'*0$ /*$ 3&'$ HIJ$ ,+4/13?$ )3$ 2/1,0$ 7'$ C)3&$ +$ -./('66)/*+,$,+4/13$,'66$3&+3$&+,($/($#)*"<$$ :*/3&'.$ )5-/.3+*3$ )661'$ )6$ 3&+3$ 3&'$ 3'2&*/,/84$ )*>/,>'0$ )6$ 63+3'K/(K3&'K +.3$3'2&*/,/84G$3&'$()*+,$-./0123$)6$7+6)2+,,4$(/1.$0)(('.'*3$&+.0C+.'$-+.36G$'+64$ 3/$ )5-,'5'*3$ 74$ +*$ ','23.)2+,$ '*8)*''.$ C)3&$ '=-'.)'*2'$ )*$ HIJ$ ,+4/13G$ 6/$ 3&)6$ C),,$*/3$7'$+$-./7,'5$)*$3'.56$/($5+*1(+231.+7),)34<$$ $ )*@* +6A8(567'6&$>! %&'$-./2'66$3/$2.'+3'$3&'$()*+,$-./0123$)6$+,5/63$8.''*G$3&'$-/C'.$16'0$3/$ 5+)*3+)*$ 3&'$ 0'>)2'$ )6$ +,5/63$ ,+18&+7,'<$ %&'$ 2/*615-3)/*6$ +.'$ 6&/C*$ )*$ 3&'$ (/,,/C)*8$3+7,'<$$ $ $ ./012133!456/750/68!950!*52:0!*;371<3! ! =:/310!4:6>:65!!!!"#! !"#$%&'$()!*+#$','$("'-&*!*%##"!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"# %$&"'()*+,-"'% $%&'()*+,-)*./* !012*3$* $%&'()*+,-)*4/* 5"*3$* 6,7)8*+,-)*!*9:;3<*=>?);@AB* 5:C*D$* 6,7)8*+,-)*5*9EF))A*4'3)8*GHB* #10*D$* 6,7)8*+,-)*:*9I/&)8H>F*JH&)88KA&LF)*!M*NN5C"#*6,7)8*N,H&K8)<1* * 4P)*3,&'(>&',H*,Q*&P'<*A8,R)%&*'<*L><)-*,H*S)&&'HS*>*L)&&)8*7>T*&,*3>H>S)* <,F>8*A>H)F<1*JQ*&P)*A,7)8*3>H>S)3)H&*,Q*&P)*<,F>8*A>H)F<*'<*L)&&)8*>H-*)><')8U* &P)8)*7'FF*L)*3,8)*A,7)8*<>()-1*E,*'H*&P)*)H-U*&P'<*A8,R)%&*&8')<*&,*%,3)*KA*7'&P* >*<,FK&',H*&,*H-*)HP>H%)*S8))H*A,7)81*$H,&P)8*'3A,8&>H&*'<&* &P)*Q'H>F*-)('%)*'<*>*3'%8,)F)%&8,H'%*-)('%)*<,*'&*-,)<*H,&*8)F)><)*S><)<*><*NG5*,8* ,&P)8*A,FFK&>H&<1** * ./0/ 1,2-3(% $<*<&>&)-*'H*&P)*A8)(',K<*<)%&',HU*&P)*Q'H>F*A8,-K%&*,Q*&P'<*A8,R)%&*3))&<* >FF* <&>H->8-<* ,Q* )&P'%<1* O'8<&* ,Q* >FF* '&<* 3>HKQ>%&K8>L'F'&T* '<* %P)>A* F'?)* ,&P)8* &)%PH,F,S')<* &P>&* %,3)* KA* 8)%)H&FT1* VK)* &,* &P)* )%,H,3'%* <'&K>&',H* '&* '<* H)%)<<>8T*&,*%8)>&)*-)('%)<*&P>&*P)FA*A),AF)*7'&P,K&*%8)>&)*>*<)()8)*S>A*'H*&P)'8* LK-S)&<1* E)%,H-U* '<* &P>&* '&* 3))&<* )H('8,H3)H&>F* %,H<&8>'H&FFT* '3A,8&>H&* &,->T* 7P)8)* '&* '<* -)3>H-)-* &,* <))?* Q,8* >F&)8H>&'()* <,FK&',H<* &,* ,'F1* 4P'<* A8,-K%&* 7,KF-* L)* >* A)8Q)%&* &,,F* &,* 3,H'&,8* <,F>8* A>H)FR,8* S8))H* )H)8ST*&,->T*'H*&P)*@H'&)-*E&>&)<1* * ./4/ 5)(,6-'67-8-,9% 4P'<*'H>L'F'&T*%,H<&8>'H&*'<*3)&*><*>*8)FU* )&P'%U* >H-* )%,H,3'%1* J&* '<* ?H,7* &P>&* &P)* &P8))* %,8H)8<&,H)<* ,Q* 'H>LF)* -)()F,A3)H&* >8)M* )%,F,S'%>F* -)()F,A3)H&U* )&P'%W<,%'>F* -)()F,A3)H&U* >H-* )%,H,3'%>F* -)()F,A3)H&1* $<* '&* '<* L,()* &P'<* A8,R)%&* 3))&<* >FF* &P,<)* 8)XK'8)3)H&<* >H-* &P)8)Q,8)* %,3AF')<* 7'&P* &P)* 'H>LF)* -)()F,A3)H&1** * * ./012133!456/750/68!950!*52:0!*;371<3! ! =:/310!4:6>:65!!!!"#! !"#$%&'$()!*+#$','$("'-&*!*%##"!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! # "#$%&'(!)* +,-.,++/.,-!012,32/30! # # $%&#&'()'&&*)'(#+,-'.-*.+#/&,#01#,%)+#2*34&5,#-*&6## ! 7888# 9:;&**&.# ,3# ,%&# ?@A&,33,%# "<:# 53//A')5-,)3'#5*&-,&.#0&,B&&'#,%&#C&1>30#-'.#,%&#DE?#.3'(@&<# ! 87F#GEH;I;<#$%)+#+,-'.-*.#)+#*&>&**&.#,3#,%&#DFG$#53//A')5-,)3'J# ,%)+# /&-'+# +&*)-@# 53//A')5-,)3'# )'# 3*.&*# ,3# (&,# .-,-# >*3/# ,%&# KFLF#53',*3@@&*<## ! DE?# M?A+# E&*)-@# E,-'.-*.N<# D+&.# )'# ,%&# 53''&5,)3'# 0&,B&&'# ?$# .3'(@&#-'.#53/2A,&*<# ! O&&,#,%&#*&PA)*&/&',+#+&,#016#Q55A2-,)3'-@#E->&,1#-'.#R&-@,%#F5,# &+,-0@)+%&.#)'#!ST:<# ! E1+,&/+#-*&#.&+)('&.#,3#>A@>)@@#,%&#DU8J#78V#-'.#8U#-22@)5-0@&#,3# +A5%# 2*3.A5,+J# -+# B&@@# -+# 8$E7# M8A*32&-'# $&@&53//A')5-,)3'+# E,-'.-*.#7'+,),A,&NJ#FUE7#MF/&*)5-'#U-,)3'-@#E,-'.-*.+#7'+,),A,&NJ# KVV#MK&.&*-@#V3//A')5-,)3'+#V3//)++)3'N#>3*#GK#+1+,&/+<# ! 7EQ#S9SS<#V#2*3(*-//)'(#@-'(A-(&<# ! 7EQ#99=S<#FEV77#5%-*-5,&*+<## # ./012133!456/750/68!950!*52:0!*;371<3! ! =:/310!4:6>:65!!!!"!! ! ! ! ! ! ! ! ! ! "#$%&'()!*+,!!-.#/'$)!0%"1')!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "#$%&!'(!)'*+&*+,! ! ! "#$%&'(!)*! +,-."-+/0!"12+1.3.45! )67! "$"$! %&''!()!*+,-.&+'/! "#0! "$1$! 234&56-7,!+78!9(('/! "#:! "$;$! <(),=+.-! "#:! "$#$! >&.-?,!@+A(.! "#:! "#$%&'(!8*! 9.-4!+,-"3! )6:! 1$"$! %&''!()!*+,-.&+'/! "#B! 1$1$! 234&56-7,!+78!9(('/! "#C! 1$;$! <(),=+.-! "#C! 1$#$! >&.-?,!@+A(.! "#C! "#$%&'(!;*! )6&.-?,!@+A(.! "0E! "#$%&'(!6*! )7)! =3.3,/0!>9?=34! ! ! ! ! ! ! ! ! ! ! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"##!!! -.#/'$)!0%"1')!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! )-#.+&/!01 2345)4267!)89285:5";! ! ! 9F&/! ?F+5,-.! '&/,/! ,F-! 47&,/! ()! ,F-! ?(65(7-7,/! +78! -34&56-7,! 4/-8G! +/! =-''! +/! ,F-! F(4./! +,,.&A4,+A'-! ,(! ,F-! 5.(H-?,G! 8&I&8-8! &7! /-I-.+'! 8&))-.-7,! F-+8&7J/$!! ! 0101 <=%%!'(!9#+&/=#%,! ! )'>.'*&*+!5#>&! ?@#*+=+A! KL!(!7(,!6(47,! "! Y-/&/,(.!1BE!MO*!"]"E^!"_!E#E1!<*>! 1! Y-/&/,(.!1$BE`!MO*!"]"E^!"_!E#E1!<*>! "! Y-/&/,(.!0:$E`!MO*!"]"E^!"_!E#E1!<*>! "! @2>!a@KUNaZ!Y2>]NYU!L@Y!E:E:!<*>! "! K784?,(.!"$EUO!;EE*a!E#E1! "! K784?,(.!1$1UO!;EE*a!E#E1! 1! K784?,(.!*4',&'+[-.!;$EUO!E#E1! "! %4bb-.!ZK2PM!10RZcZ!#`OP!ZL!*9! "! L(77-?,&(7!O-+8-.!R2Y9!$"EE!"1ZM!%@`!ZL! 1! L.[/,+'!;1$EEEE*OP!"CZT!Ld@! "! L.[/,+'!;1$B:C`OP!"1$0ZT!Ld@! "! L(77-?,&(7!O-+8-.!$E0Ee!;ZM!NM@>! "! ^F&5!a7,-77+!aU9!1$#NOP!"]1!^aR2!0e!Ya!Q$T@! "! ":cCE,(!>KZ!a8+5,-.]%.-+f(4,!%(+.8! 1! KL!YT!T.(7,!278!1$#NOP!":cSTU! "! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"#0!!! -.#/'$)!0%"1')!!! ! ! ! ! ! ! ! 01B1 ! ! ! ! ! :C@=.>&*+!#*D!"''%,! ! ! ! 2/'E&F+! G'@/,!'(!@,&!.&/! :%&>&*+! ?@#*+=+A! G'@/,! A&#/! L(654,-.! "! #EE! ":EE! >-I-'(56-7,!`&,$!VLL10#EW! 1! #EE! ":EE! Z(=-.!<455'[!:!c!1ER>L!!]!1$0!c!E$0a! "! 1EE! #EE! M/?&''(/?(5-!1!LF+77-'/! "! ;E! ;EE! *4',&6-,-.! "! 1E! 1EE! ! 01H1 ;'(+I#/&! ! ! ! 2/'E&F+! G'@/,!'(!@,&!.&/! 2/'J/#>! ?@#*+=+A! G'@/,! A&#/! KaY!26A-88-8!^(.fA-7?F! "! 10E! "EEE! %9(('! "! "0E! ;EE! <6+.,YT!T'+/F!Z.(J.+66-.! "! 1E! 1E! Q?(7! "! "EE! 1EE! L(8-gg%'(?f/! "! "0E! "0E! M.La>!":!! "! "0E! ;EE! ! 01K1 L=/&F+!7#$'/! ! 6F+=M=+A! G'@/,! -/&J7! "0E! Z.(,(,[5-!a//-6A'[! 0E! Z.(J.+66&7J! ;EE! 9-/,&7J!+78!9.(4A'-/F((,&7J! 1EE! Z.(H-?,!>(?46-7,+,&(7! "EE! 9(,+'!O(4./! CEE! ! ! ! ! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"#:!!! -.#/'$)!0%"1')!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! )-#.+&/!B1 N54"!234):! ! ! 9F&/! ?F+5,-.! '&/,/! ,F-! 5.&?-/! ()! -+?F! ()! ,F-! -'-6-7,/! 7-?-//+.[! ,(! ?+..[! (4,!,F&/!5.(H-?,G!=F&?F!+.-!?&,-8!+A(I-$! ! B101 <=%%!'(!9#+&/=#%,! ! )'>.'*&*+!5#>&! 2/=F&O:#F-!PQR! KL!(!7(,!6(47,! ! Y-/&/,(.!1BE!MO*!"]"E^!"_!E#E1!<*>! E$E:! Y-/&/,(.!1$BE`!MO*!"]"E^!"_!E#E1!<*>! E$E:! Y-/&/,(.!0:$E`!MO*!"]"E^!"_!E#E1!<*>! E$E:! @2>!a@KUNaZ!Y2>]NYU!L@Y!E:E:!<*>! E$0;! K784?,(.!"$EUO!;EE*a!E#E1! E$EB! K784?,(.!1$1UO!;EE*a!E#E1! E$EB! K784?,(.!*4',&'+[-.!;$EUO!E#E1! E$E0! %4bb-.!ZK2PM!10RZcZ!#`OP!ZL!*9! E$D1! L(77-?,&(7!O-+8-.!R2Y9!$"EE!"1ZM!%@`!ZL! #$E;! L.[/,+'!;1$EEEE*OP!"CZT!Ld@! E$D:! L.[/,+'!;1$B:C`OP!"1$0ZT!Ld@! E$;E! L(77-?,&(7!O-+8-.!$E0Ee!;ZM!NM@>! E$1:! ^F&5!a7,-77+!aU9!1$#NOP!"]1!^aR2!0e!Ya!Q$T@! "E$:0! ":cCE,(!>KZ!a8+5,-.]%.-+f(4,!%(+.8! #$0E! KL!YT!T.(7,!278!1$#NOP!":cSTU! 0$#E! ! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"#B!!! -.#/'$)!0%"1')!!! ! ! ! ! ! ! ! B1B1 ! ! ! ! ! :C@=.>&*+!#*D!"''%,! ! :%&>&*+! 2/=F&O:#F-!PQR! L(654,-.! CEE! >-I-'(56-7,!`&,$!VLL10#EW! "EE! Z(=-.!<455'[!:!c!1ER>L!!]!1$0!c!E$0a! :"0! M/?&''(/?(5-!1!LF+77-'/! #GDD0! *4',&6-,-.! 11E! ! B1H1 ;'(+I#/&! ! 2/'J/#>! 2/=F&O:#F-!PQR! KaY!26A-88-8!^(.fA-7?F! BD0! %9(('! K7?'48-8!! <6+.,YT!T'+/F!Z.(J.+66-.! K7?'48-8! Q?(7! T.--! L(8-gg%'(?f/! T.--! M.La>!":!! :GDD0! ! B1K1 L=/&F+!7#$'/! ! 6F+=M=+A! 2/=F&!PQOG'@/R! -/&J7! B0! Z.(,(,[5-!a//-6A'[! ;E! Z.(J.+66&7J! ;E! 9-/,&7J!+78!9.(4A'-/F((,&7J! DE! Z.(H-?,!>(?46-7,+,&(7! :E! ! ! ! ! ! ! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"#C!!! -.#/'$)!0%"1')!!! ! ! ! ! ! ! ! ! ! ! ! ! ! )-#.+&/!H1 263"467!"8"674"4:;! ! ! K7! ,F&/! ?F+5,-.! 5.-/?.&A-/! ,F-! 5+.,&+'! ,(,+'&,&-/! ()! -+?F! ()! ,F-! -'-6-7,/! ,F+,! ?(7)(.6! ,F-! &,-6/G! =F&?F! F+I-! A--7! ?+'?4'+,-8! ).(6! ,F-! 5.&7?&5+'! ?(65(7-7,/!+78!47&,!5.&?-/$!! ! H101 <=%%!'(!>#+&/=#%,! ! )'>.'*&*+!5#>&! ?@#*+=+A! 2/=F&O:#F-!PQR! "'+#%!)',+!PQR! KL!(!7(,!6(47,! "! ! ! Y-/&/,(.!1BE!MO*!"]"E^!"_!E#E1!<*>! 1! E$E:! E$"1! Y-/&/,(.!1$BE`!MO*!"]"E^!"_!E#E1!<*>! "! E$E:! E$E:! Y-/&/,(.!0:$E`!MO*!"]"E^!"_!E#E1!<*>! "! E$E:! E$E:! @2>!a@KUNaZ!Y2>]NYU!L@Y!E:E:!<*>! "! E$0;! E$0;! K784?,(.!"$EUO!;EE*a!E#E1! "! E$EB! E$EB! K784?,(.!1$1UO!;EE*a!E#E1! 1! E$EB! E$"#! K784?,(.!*4',&'+[-.!;$EUO!E#E1! "! E$E0! E$E0! %4bb-.!ZK2PM!10RZcZ!#`OP!ZL!*9! "! E$D1! E$D1! L(77-?,&(7!O-+8-.!R2Y9!$"EE!"1ZM!%@`!ZL! 1! #$E;! C$E:! L.[/,+'!;1$EEEE*OP!"CZT!Ld@! "! E$D:! E$D:! L.[/,+'!;1$B:C`OP!"1$0ZT!Ld@! "! E$;E! E$;E! L(77-?,&(7!O-+8-.!$E0Ee!;ZM!NM@>! "! E$1:! E$1:! ^F&5!a7,-77+!aU9!1$#NOP!"]1!^aR2!0e!Ya!Q$T@! "! "E$:0! "E$:0! ":cCE,(!>KZ!a8+5,-.]%.-+f(4,!%(+.8! 1! #$0E! D$EE! KL!YT!T.(7,!278!1$#NOP!":cSTU! "! 0$#E! ! ! ! 9(,+'! ! 10!A(+.8/! 0$#E! 00$:"! ";DE$10! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"#D!!! -.#/'$)!0%"1')!!! ! ! ! ! ! ! ! H1B1 ! ! ! ! ! :C@=.>&*+!#*D!"''%,! 9(! ?+'?4'+,-! ,F-! +,,.&A4,+A'-! ?(/,! ()! -34&56-7,! +78! ,(('/G! +! ,[5&?+'! 5+[A+?f! 5-.&(8! ()! #! [-+./! F+/! A--7! /-'-?,-8! +78! &,! F+/! A--7! 8&/,.&A4,-8! +/! +'&34(,/!+/!+!)47?,&(7!()!,F-!746A-.!()!F(4./!=(.f-8$!! ! ! ! 2/'E&F+! G'@/,!@,&! 2/=F&O! 6**@#%! )',+! :%&>&*+! ?+A! G'@/,! OA&#/! :#F-!PQR! L&./&F=#+='*! PQR! L(654,-.! "! #EE! ":EE! CEE! 10_! 0E! >-I-'(56-7,!`&,$!VLL10#EW! 1! #EE! ":EE! "EE! 10_! "1$0! Z(=-.!<455'[!:!c!1ER>L!!]!1$0!c!E$0a! "! 1EE! #EE! :"0! 10_! B:$CC! M/?&''(/?(5-!1!LF+77-'/! "! ;E! ;EE! #GDD0! 10_! "1#$CC! *4',&6-,-.! "! 1E! 1EE! 11E! 10_! 0$0! ! ! ! ! ! 9(,+'! 1:D$B:! ! H1H1 ;'(+I#/&! <(),=+.-!&/!J-7-.+''[!+6(.,&b-8!(I-.!)&I-![-+./$!! ! ! ! 2/'E&F+! G'@/,!@,&! 2/=F&O! 6**@#%! :%&>&*+! ?+A! G'@/,! OA&#/! :#F-!PQR! L&./&F=#+='*! KaY!26A-88-8!^(.fA-7?F! "! 10E! "EEE! BD0! 1E_! M.La>!":!! "! "0E! ;EE! :GDD0! 1E_! ! ! ! ! ! 9(,+'! )',+!PQR! ;D$B0! :DD$0! B;D$10! ! H1K1 L=/&F+!7#$'/! ! ! ! 2/=F&! "'+#%! 6F+=M=+A! G'@/,! PQOG'@/R! )',+!PQR! -/&J7! "0E! B0! ""G10E! Z.(,(,[5-!a//-6A'[! 0E! ;E! "G0EE! Z.(J.+66&7J! ;EE! ;E! DGEEE! 9-/,&7J!+78!9.(4A'-/F((,&7J! 1EE! DE! "CGEEE! Z.(H-?,!>(?46-7,+,&(7! "EE! :E! :GEEE! ! 9(,+'! #0GB0E! ! ! ! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"0E!!! -.#/'$)!0%"1')!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! )-#.+&/!K1 S:5:367!&.-?,!@+A(.! #0GB0E! "#$%&! '()*'+,-.! ! 23456577!&893:8439;!<84!=86>4!=?7:5@7! ! A>3754!&>9B>98!!!!"0"!!!