際際滷

際際滷Share a Scribd company logo
PSoCまつり 
仝PSoCの胆龍しい創尖隈々 
PSoCを喘いたLEDドライバ?お返Xデジタル崙囮坿 
@betaEncoder
徭失B初 
betaEncoder について 
? twitterではこういうアイコンの繁★ 
? ふぁぼボタンの繁 
? 僥伏のLSI恬ってた&徨何瞳塁バイト 
? F塞b室g(dMみzみ瞳|砿尖) 
? よく聞うマイコンPSoC4/5LPLPC11Uxx 
? コミケMakeにたまに竃てる 
2 
ふぁぼボタン
云晩のおしながき 
? PSoCの胆龍しい侭とは 
? PSoCってどんな殆可 
? PSoCで採ができるの 
? PSoC4を創尖してみる 
? WS2812Bを殆可にLチカ 
? UDBを聞う 
? Datapathをたたいてみる 
? PSoC5LPを創尖してみる 
? PSoC4と採が`うの 
? デジタル崙囮坿に碧羨てる 
? DMAにやってもらう 
3
4 
PSoCの胆龍しい侭とは
PSoC1ってどんな殆可 
N源なアナログC嬬 
? AD/DA 
? アンプ 
? アクティブフィルタ 
? CapSense 
蒙に中易いのは 
スイッチトキャパシタ 
5 
デジタル 
アナログ
Switched capacitor とは 
? SCB : switched capacitor block 
? LSIの嶄ではポピュラ`な指揃 
? AD/DA吉アナログ佚催I尖によく喘いられる 
? スイッチとキャパシタでできている 
? スイッチの嘛タイミング否楚をPSoC Designerで峺協する 
ことで?な嘛が辛嬬 
★嫌匂(郡/掲郡)畠襖屁送匂フィルタAD/DAetc´ 
? フィルタOウィザ`ドや謹くのアナログC嬬ブロックはこれを 
徭啝したもの 
PSoC1で匯桑のパズル勣殆 
6
PSoC3ってどんな殆可 
? CPUが晒 
★8051コア 
? UDB 
? 20bitΔΣADC 
7 
PSoC4/5ってどんな殆可 
? ARMコアCPUCortex-M0/M3) 
? ARMだけど5V嘛 
? 20bitΔΣADC 
? 恷寄80MHz 
? DMA 
? DFB 
? UDB
Universal Digital Block とは 
? PLD(きQえ辛嬬なデジタル指揃)の匯N 
? UDB1つあたり8マクロセル(フリップフロップ) 
? Datapath 
? FIFO 
? ALU 
? シフトレジスタ 
? 曳^/匯崑 
? 0奮 
? 0xff奮 
? }方Datapathのチェ`ン 
? etc. 
UDBを聞えば販吭のペリフェラルを恬れる 
PSoC3゛5のパズル勣殆 
8 
UDB の夛 
Datapath の夛
9 
PSoCで採ができるの 
? ワンチップでアナログ指揃も坪i 
? SCBUDBでハ`ドウェアI尖 
? パズル 
? 箭えば´ 
? Lチカ佐どマウスだけでできる 
? レベルメ`タ(PSoC1) 
マイク 
BIAS 
GAIN 
嫌 
SCB 
畠襖屁送 
SCB 
LPF 
ADC 
LCD 
Bargraph API
10 
PSoC4を創尖してみるLチカ
WS2812B 
? Neo Pixel LED 
? シリアルでRGBの弼秤鵑鰛僕すると高る 
? 方帷、にしてたくさんのLEDを1云のシリアルで崙囮できる 
11
WS2812Bに送しzむ佚催は 
? 1/0はHのパルス嫌で僕る 
? 困(>50us)LがAくと弼が厚仟される 
? Rり卦し巓豚パルス嫌がシビア 
12
みんなどうやって聞ってる 
adafruit巷塀Arduinoサンプル 
アセンブラ 
デ`タ僕嶄は 
CPUを媼嗤してしまう 
13
PSoC4を試喘 
? タイミングにシビアな侭をUDBでI尖したら胆龍しいはず 
? 芦い(1ドル) 
14 
書指聞ったのはこれ●
クロックO協 
? 50ns蛍盾嬬をgFするためのクロックは20MHz 
? 蔚の40MHzをO協 
15
UDB?Datapath を澣く 
? シンボルを恬ってソ`スのひな侘を伏撹 
16 
歌孚Lynx-EyEDの咄IP仟^ 
PSoCでVerilog(http://lynxeyed.hatenablog.com/entry/2012/09/17/130644)
UDB坪の撹 
17 
FIFO 
レジスタA0 
恣シフト 
デ`タ勣箔 
タイミング奮 
レジスタA1 
レジスタD0 
レジスタA0 
Dec 
曳^匂CMP1 
パルス竃薦 
Shifter 
★UARTのような嘛 
PulseGen 
★PWM嘛 
PWM曳^ 
1bitづつ竃薦 
PWM曳^カウンタ 
兜豚(PERIOD) 
レジスタD1 
歌孚 
AN82156(PSoC? 3, PSoC 4, and PSoC 5LP C Designing PSoC Creator? Components WithUDB Datapaths) 
PSoC? 4 Architecture TRM
彜Bw卞 
IDLE 
LOAD 
FIFOから 
iみ竃し 
WAIT 
リクエスト 
棋ち 
SHIFT 
1bitシフト 
IDLE 
!PG_START 
LOAD 
PIからi 
み竃し 
DEC_A 
ZERO 
DEC_B 
18 
Shifter PulseGen 
FIFO_EMPTY 
!FIFO_EMPTY 
SHIFT_DATA_REQ 
!SHIFT_DATA_REQ 
SHIFT_CNT==0 
SHIFT_CNT>0 
PG_START 
!CMP1 
!ZEROSHIFT_DATA_REQ 
k佩 
CMP1 
!FIFO_EMPTY 
PG_START
Datapathウィザ`ドでO協 
19
ALUのParallel秘竃薦を聞うときの廣吭 
ALUの秘薦をダイナミック俳Q(8bitのパラレルIOを嗤浸)する 
ために 
PI DYN=Enable 
とする 
☆グレ`アウトしている侭は嘔クリックすると秘薦できるように 
なる 
20
ステ`トマシンを恬ってdatapathを、 
? ここが屎廷 
? たぶん匯桑コ`ドきが駅勣 
? Verilog-HDL 
? デバッグしにくいですCypressさん´ 
21 
ステ`トマシンこれをく◎ 
DatapathのO協は 
ウィザ`ドが徭喇撹◎
ビルドが宥ったら 
cyfitter.hに恬ったモジュ`ルのレジスタへアクセスするための 
#defineができている 
22
レジスタへのきzみは 
? マクロを聞ってアクセスする 
? CY_SET_REGX(addr, value) 
? CY_READ_REGX(addr) 
? 恬ったモジュ`ルを咾す蕕離疋薀ぅ个くと宴旋 
? 屡贋のコンポ`ネントのようにドライバやドキュメントを笋 
て壅旋喘/塘下しやすくすることもできる┐蕕靴ぃ 
23
main.c 
? 光モジュ`ルの軟 
? ドライバを澣く 
(FIFO_FULLをながらデ`タを送しzむ) 
24
竃薦襖侘 
25 
デバイスの秘薦パルス嫌勣周を祭 
0 竃薦パルス:400ns 
パルス嫌 
400ns 
1 竃薦パルス:800ns 
パルス嫌 
800ns 
竃薦パルス巓豚:1.25us 
パルスg侯 
1.25us 
デ`タシ`トよりパルス嫌勣周
デモ 
? PSoC4 PIONEER KIT 
☆arduinoシ`ルド児医聞ってるけどarduinoではない 
26
27 
PSoC5LPを創尖してみる砦酉匂
PSoC4でいろいろできるのは蛍かったが 
仝いちいちパズルやってらんないよ´々 
仝さすがに32マクロセルはちょっと´々 
仝碧並に聞えるレベルのC嬬が圀しい々 
たくさんUDBが\っている墳を聞いましょう 
恷寄24UDB(192マクロセル) 
PSoC3 or PSoC5LP 
28
?な坿トポロジ 
? リニア 
? チャ`ジポンプ 
? スイッチング 
? 週R 
? NR 
? N週R 
フィ`ドバック崙囮によるシステム 
29
デジタル崙囮坿とは 
? ADC/DACを聞ったCPUによるフィ`ドバック崙囮 
? 悲なフィ`ドバック崙囮が辛嬬 
? 恷除えてきた○ 互來嬬なCPUがたくさん竃てきたため 
? 指揃ト佐鵝 スイッチに紗えてCPUとIFが駅勣 
? O垢方佐鵝 崙囮にHWだけでなくSWも駅勣 
?これPSoC5を聞えばうまくいくのでは´ 
30
Oコンセプト 
? 竃栖る泙蟶gに({豚枠) 
? 竃栖る泙螢芥`ドはかない(レビュ`恷弌晒) 
? 竃栖る泙CPUを聞わない(CPUリソ`スを麼たるI尖へ) 
?PSoC5の隔つC嬬を試喘 
31
システム 
峺綜・侫ルタFET-SW LPF 竃薦 
ADC 
この何蛍をCPUでg廾する 
CPU:PSoC5LP(CY8C5868AXI) 
eみ児医を試喘!! 
32
指揃 
? 秘薦12V 
? 竃薦5V100mA參貧 
33
協方x協(ゲ`トドライバ) 
? ブ`トストラップ否楚C50.1uF 
★2SK2796の秘薦否楚Ciss(180pF)より噴蛍寄きいこと 
? ゲ`ト丘森R2, R3100Ω 
? ★Vgsの羨ち貧がりrg+羨ち貧がりrgがドライバのデッドタイムよりも玉いこと 
? r協方=Ciss〜R=180pF〜100Ω=18ns 
? tf=55ns 
2SK2796 
IRS2108 
34
協方x協(MOS-FET) 
? On丘森がO極に寄きくないこと 
★ <1Ω を朕芦 
? ゲ`トドライバのドライブRでonできること 
★ Vth<12 
2SK2796 
35
インダクタx協 
NJM2360アプリケ`ションノ`トを歌深 
? L45uH ★ E狼双より47uH 
? ピ`ク送331mA 
☆SW巓襖方は麿のARM狼CPUにも卞峅できるようBUS_CLK=48MHzを覿┐沓 
8bit蛍盾嬬でカウンタを指したrの巓襖方である48MHz/256=187.5kHzとした 
36
コンデンサx協 
NJM2360アプリケ`ションノ`トを歌深 
? リプルR<100mV ★ E狼双より4.7uF 
37
FB喘蛍R丘森x協 
? PSoCの秘薦R譯0゛3.3V 
? ★粧い5Vとなったときに秘薦R譴琳佰(1.65V) 
? ADCの秘薦インピ`ダンスを深] 
38
PSoC坪何指揃撹 
UDBに恬ったe蛍崙囮コントロ`ラ 
? ADQY惚はDMAでControl_Reg1に僕される 
? DMAの僕頼阻を鞭けてI_Controller1が處麻を佩う 
? カウンタ、番酉竃薦を曳^しPWMする 
? 匯業モジュ`ルを軟咾靴討靴泙┐CPUの初壓oし 
39
e蛍崙囮コントロ`ラ 
? UDBにVerilogでいて栽撹 
? PIDのI崙囮だけ 
★了猾aがg 
? 才處麻させるべきだった 
(瘁峰) 
峺綜 
k 
8bit 1-z-1 
8bit 
8bit Fixed Point 17bit 
40
栽撹BuildY惚 
? Flash used: 5670 of 262144 bytes (2.2%). 
? SRAM used: 20837 of 65536 bytes (31.8%). 
? datapathを聞えばadderでの 
リソ`スMをp辛嬬 
聞い圭よくわからない 
? つまり、まだまだ秘る。 
☆FPGA殻坪何塘に悲來が 
oいので、罪彭するとすぐに 
塘崔塘できなくなる 
41
main.c 
? 光モジュ`ルの軟 
? DMAのO協 
★wizardからコピペ 
? 瘁は採もしない 
42
匯儔止_蒙來(octave シミュレ`ション) 
? 了獏默90deg. 
? ゲイン噫圍20dB 
43
羨ち貧がり襖侘 
才處麻していないため 
蓐吝れが軟こることがある 
オ`バ`シュ`ト 
★I崙囮のみのため 
44
もっとg喘議にするためには 
? Oした坿のいところ 
? 詰蛍盾嬬 
? オ`バ`シュ`ト 
? 塞咾没憋Wい 
? 個鋲圭隈 
? 蛍盾嬬を貧げる 
★ADC峺綜、緑(泣參和も處麻する 
? I崙囮★PID崙囮 
? DFBを聞えばもっと}jなフィルタを聞える 
★f蒙鯢蓮DMAでCPU塞oし 
? X塞ならPFMモ`ドの圭が紳柄爾 
★PFMの圭がg 
いろいろな了猾a 
坿崙囮喘DSPでなくても、いろいろできる 
45
麿のUDB鮄 
? UART秘竃薦にインバ`タを秘れてRS-232C岷Y 
? ^徭各SPIバスインタ`フェイス ̄のADCとの俊A 
? etc´ 
46
PSoCは掲械にフレキシブルかつパワフルなCPUです 
?な辛嬬來を試かし試喘しましょう 
囮床ありがとうございました 
47

More Related Content

永皆看遺まつり仝永皆看遺の胆龍しい創尖隈々