Document Iv. Project Budget - Iit
-
Rating
-
Date
November 2018 -
Size
19.5MB -
Views
9,606 -
Categories
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:);)!"##$%&$'()*+"(#,-1/)2/) 07.71/)=#>() ?+/)@,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/-) ,./-) B,2) B3-,S:F) -,) ,+.1,A5) /) 2/) ,8<1,-/) TUQU) I,9M+:2:A3,-)),2)<1:.:.3<:)03+/2F)9:+),2),-67,8/)1/)1,/234/1)2/)=#>()) *2) -3-.,8/) B,) 9:87+39/935+) 38<2,8,+./B:) 1/) ,-./) /<239/935+F) 9:+-.3.7;,)7+/)8,V:1/);):<.3834/935+),+),-.,).3<:)B,)/<239/93:+,-F);/)67,)M/-./) ,2)8:8,+.:)+:)M/HP/),+),2)8,19/B:)+3+A7+/)/<239/935+)67,)1,/234/1/),-.,).3<:) B,)9:87+39/93:+,-()I,+3,+B:),+)97,+./)2/)1,93,+.,)/13935+)B,),-.,)<1:.:9:2:) B,) 9:87+39/935+) 3+/2G8H139/) ;) B,2) 9M3<) ##$%&'F) M/+) ,N3-.3B:) 879M:-) <1:H2,8/-),+)97/+.:)/)B:978,+./935+F)A7P/-)B,)7-7/13:)1/)2/)<1:A1/8/935+F) ,.9()=,1:)/2)03+/2);).,+3,+B:),+)97/+./).:B/-),-.:-)<1:H2,8/-F)-,)M/)9:+-,A73B:) 91,/1) 7+) -3-.,8/) ,-./H2,) B,) 9:87+39/935+) ,+.1,) 7+) :1B,+/B:1) <,1-:+/2) ;) ,2) 9:+.1:2/B:1)-:2/1()) ) !"#"$%"&' (#")*+) #:87+39/935+) 3+/2G8H139/F) >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.,*(,(<,%-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) *+))# /(,.49M;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(.?)#(22$1<)*(+$,(#)2-) '$+()5-.)%-.()2:01)0)/(0.)>$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(.),-11(,2$-1)$#)#:->1)$1)2:()5$<4.()D6)) )
) E$<4.()DF)@(,:1$,0')#&(,$5$,02$-1)7'4(2--2:)8->)91(.)1(2>-.G
) C'') 2:(#() 5(024.(#) 24.1) 2:() 7'4(2--2:) 8->) (1(.) *(+$,() $12-) 0) 50#2) 01*) .-;4#2)>$.('(##),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/10C$
!9*$
!@!$
(D5.?$
!)9E5.?$
(D5.?$
012+$')(33'4#""(&,5' 6("72&8'9+:('0$2%(95' ;$9<+99+2$'"(' =#$>(' ?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?10$S>0,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%1O6#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%& %%(,.A%& )$'(& *$./&'()%((',8&'(6&2.::&':,+&0%B=.0%&'&*+((%*)+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%1I16%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# ! M3N/-&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# /,# >&3.# ,(# ,-03.)/,# 4/,%/3# 0# ,/) /3,&-;01?# ,% :0,0# >/,.# 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/) 7=0:>/<) :-) .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?)# 1=#3?4(5#@?1=2#%2#<%&'()#*"C# #
!"#"$"
%&'()*+,-,./,0.-,1+)
9?%@# 6789# %2%5%4/%D45%12# <'235%12# %@# 34//):# 123)# 45# 5?)# @54(5'.C# 9?%@# <'235%12# ?4@# 51# E)# 34//):# E)<1()# 42A# 15?)(# 6789# <'235%12# 342# E)# 34//):C# F5# )24E/)@#6789#51#E)#%2%5%4/%D):#=%5?#E15?#()G'%():#42:#1.5%124/#.4(4-)5)(@C# H(1515A.)+#void HalUARTInit (void) 3/456577!8+./2+4/.9!:+4!'+614!';725,7!
!
<1/754!81.=1.+!!!!"!
!"#$%"&!!
! !
!
!
!"#"#"
!
!
!
!
"'()(!*+,,-./012/+.
$%&'()*+,(
#$%&'()*+,%-*'-./*&'0'.-1,'20&/3'-*',$/'+-*(%4)10,%-*',$0,'%&'.1-5%3/36'7' +08820+9'()*+,%-*'%&'08&-'1/4%&,/1/3'&-'/5/*,&'+0*'2/'$0*38/3'+-11/+,8:6' ;1-,-,:./<'uint8 HalUARTOpen (uint8 port, halUARTCfg_t *config); ;010=/,/1'3/,0%8&<'' !"#$%&&./+%(%/3'&/1%08'.-1,',-'2/'-./*/36'#028/'>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:'099'/0==''(,'''/0""'/0!!>' ' !"#$%&'!(#)'?%)*'+(@@6)*'$('$A,)'()'B42&'6$'C6-D'E(F%,# "#$%&'$('&%)*'+()$,(--%,.''/011'/022'/03G'/0//'/0//'/0//'/0//'/021'/044' 567$'$(',%+%78%'91:'(,';91:'099'/0==''(,'''/0""'/0!!>' ' !*#$%&'+(#)'?%)*'+(@@6)*'$('$A,)'(DD'B42 "#$%&'$('&%)*'+()$,(--%,.''/011'/022'/03!'/0//'/0//'/0//'/0//'/02"'/044' 567$'$(',%+%78%'91:'(,';91:'099'/0==''(,'''/0""'/0!!>' ' '
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* * -.* :$''(&* =>>@* A>%-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-./-:* >>)* +,(* :'-(%/* 1(B3(./* /F* 1($&* $''* :,$1$:/(1-./-:.* 7$'3(.* F8* $* :(1/$-%* /09(O* $%&* /,(* .(17(1* 1(.9F%&.* /F* /,(* :'-(%/* ;-/,* /,(* ,$%&'(.* $%&* 7$'3(.5* * +,(* :'-(%/* &F(.* %F/* %((&* /F* S%F;* /,(* ,$%&'(.5* L($&* :,$1$:/(1-./-:* 3.-%J* >>* /;FI ;$0*:FEE3%-:$/-F%*-.*.,F;%*F%*8-J31(*PT5* *
* R-J31(*PT)*L($&*M,$1$:/(1-./-:*3.-%J*>>*
415*(*66!7,01+,5108!9,5!:,(35!:;6+*/6!
!
<316*5!730=30,!!!!"!
!"#$%"&!!
! !
!
!
!
! !
!
!
!
!!!!!!!!'()*+,,+-!.,//)0123+1,0
! #$%&'()*+,-.*.&/)*$%/$&+01+223#4+5-)+&6$)7/+*)89)%/%+/'+:$%&'()*+ /-)+ -.7:6)+ ';+ .+ %<)&$;$&+ &-.*.&/)*$%/$&+ 01+ $/%+ /1<)=+ #$%&'()*+ &-.*.&/)*$%/$&+ 9%$7>+ 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# $UV,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:%>'7247049:'(,-./0123.' )2456/03-6'*,,372.-9'$?@>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$);8% B'6$(14$,);A%+,<4(.,%'5%$3,%!"#!$%!&'!(')$*!A%&3/<3%7,41.%$34$%,0,6;%$/7,%;'(% *'(+),% $3,% $'$4)% <(7()4$/0,% -6'*(<$/'1% '5% 4% -6'*(<$A% -6'*(<$/'1% <'.$.% 46,% 6,*(<,*%/1%4%<,6$4/1%47'(1$A%$3,%)'..,.%&/))%+,%6,*(<,*8%% H1<,% ,.$4+)/.3,*% /1% $3,% 746:,$A% .4),.% &/))% .$4+/)/I,% /1% $3,% 74$(6,% .$42,A% &3/<3%+,241%$'%6,-'6$%-6'5/$.%+,<4(.,%-6'*(<$/'1%<'.$.%&/))%<'1$/1(,%$'%*,<)/1,8% B/14));A%/$%&/))%<'7,%$3,%*,<)/1,%'5%$3,%-6'*(<$.8%%
-./01022'%34.53/.46'73/'(318/'(9250:2'
'
;8.20/'%84<843'''!"'
!"#$#%&"'()*+!,''
' '
'
'
'
'
'
#$%# &'%&()*+'%,# -./# 0+1/(/**# &'22)%+&3-+'%# +%4)*-15# +*# 3# */&-'1# 0+-.# 6)-)1/# /78/&-3-+'%*9# :'# 3&.+/;/# *)&&/**# +%# -.+*# %/0# 231-# %'0# +*# -./# -+2/# -'# 4/6+%/#0.3-#-./#*'&+/-5#4/23%4*#3%4#*-31-#0'1<+%=#'%#-./#4/;/('82/%-#'6#%/0# 81'-'-58/*9# >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"!!!
L,()* &P'<* A8,R)%&* 3))&<* >FF* &P,<)* 8)XK'8)3)H&<* >H-* &P)8)Q,8)* %,3AF')<* 7'&P* &P)*