Download [ダウンロード] - kitmanual

Transcript
PIC の周辺回路を
CPLD で作るキット
PIC
CPLD 入門 !
CPLD
※ACアダプタ 6V1W は別売
サンプルソース 10 本付属 For Windows XP
■商品特徴■
□ この商品は PIC と CPLD を連携させて様々なアプリケーションを実現します。
□ PIC で面倒だったタイミング処理をすべて CPLD におまかせ!
□ PIC ソースリスト (C 言語 ) や CPLD ソースリスト(Verilog HDL)付属ですぐに始められます。
□ CPLD と PIC のデータ転送は RS232 通信。
□ CPLD 入門にも最適!(CPLD の開発ツールは無料です。)
■サンプルソフト一覧■
PIC の周辺回路を CPLD で作るキットには以下のサンプルソフトが含まれています。
1 CPLD を PIC の拡張 IO 入出力として使う
2 PIC SW の入力を CPLD にて論理演算し、LED 出力する(PIC の論理演算出力)
3 CPLD SW の入力を CPLD にて論理演算し、PIC LED で出力する(PIC の論理演算入力)
4 CPLD を PIC の外部 2 系統 PWM 出力として使う(LED の PWM 調光)
5 CPLD でマトリクス LED 点灯制御する(カーソル移動)
6 PIC ボリュームの値を CPLD で 7 セグ LED 数字表示する(2 桁ダイナミック点灯制御)
7 CPLD を疑似正弦波生成装置として使う(PIC から周波数をコントロールする)
8 CPLD でドレミファの音階を作り、ブザーで鳴らす
9 CPLD を音階出力器として使い、メロディーを鳴らす
10 CPLD でサーボ信号を出力し、サーボモータを制御する
■ブロック図■
CPLD - PIC ボード
7SEGーLED 2
AMP
サーボモータ
ACアダプタ
6V 1W
LED
DA変換器
電子ブザー
LED 4
CPLD ボード
CLK
←PC
パラレルポート
LED 8
JTAG
CPLD
PIC
UART
書込回路
タクトSW 4
タクトSW 4
--
ボリューム
■部品表■
■ CPLD DIP40 モジュール
半導体
CU1
コンデンサ CC1,2,3,4
連結ソケット P1,2
基板
■ CPLD-PIC ボード本体
U1,2
U3
U4
半導体
U5
U6
TR1,2,3,4,5,6,7
抵抗
コンデンサ
LED
D1,2,3
R7,32,34
R8
R4,6,19,20,21,
22,23,24,25
R2,9,10,26,27,
28,29,31,33
R11,12,13,14
R1,15,16,17,18
R3,5,30
RA1,2,3
RA4,5
VR1
C3,4,5,6
C1,2,8,10,11
C9,12
C7
CL0,1,2,3,4,5,6,7
PL0,1,2,3
POWER, RUN,
DACOUT
DS1,2
CN1
CN2
CN3
SERVO
CS0,1,2,3
PS0,1,2,3,RESET
X1
SP
U1,2,3,5
JP1,CN4
XC9536XL VQ44
0.1 μ F
40P
20mm×53mm
1
4
1
1
CPLD
積層セラミックコンデンサ (104)
オス - オス連結ソケット
CPLD モジュール用
74HC125
PIC16F873A
TA4805S
TA48033S
2SA1015
1N4148
10 Ω
75 Ω
2
1
1
1
1
7
3
3
1
C-MOS ロジック IC
PIC マイコン
5V 低ドロップ電圧レギュレータ
CPLD DIP40 モジュール
3V 低ドロップ電圧レギュレータ
小信号 PNP トランジスタ
小信号ダイオード
1/6W 茶黒黒金 炭素皮膜抵抗
1/6W 紫緑黒金 炭素皮膜抵抗
330 Ω
9
1/6W 橙橙茶金 炭素皮膜抵抗
1 kΩ
9
1/6W 茶黒赤金 炭素皮膜抵抗
2 kΩ
4.7 kΩ
10 kΩ
100 Ω
330 Ω
10 kΩ
100pF
0.1 μ F
100 μ F
470 μ F
4
5
3
3
2
1
4
5
2
1
8
4
1/6W 赤黒赤金 炭素皮膜抵抗
1/6W 黄紫赤金 炭素皮膜抵抗
1/6W 茶黒橙金 炭素皮膜抵抗
4 素子独立集合抵抗 (8P)
4 素子独立集合抵抗 (8P)
ボリューム
セラミックコンデンサ (101)
積層セラミックコンデンサ (104)
電解コンデンサ
電解コンデンサ
緑色 φ 3mm
黄色 φ 3mm
3
赤色 φ 5mm
2 アノードコモン
1 基板取り付けタイプ
1 ※別売 AC アダプタ 6V 用
コネクタ
1 PIC 書込コネクタ (PICkit2 対応 )
1 サーボモータ用ピンヘッダ
4 青色
スイッチ
5 赤色
セラロック
1 セラミック発振子 (3 本足 )
スピーカー
1 圧電スピーカー ( 発振回路なし )
IC ソケット
14P×2,28P,40P
4 U1,U2,U3,U5 用
ジャンパ
7 抵抗のリードを使用
基板
150mm×120mm
1 CPLD-PIC ボード本体用
★以下の部品はこのキットに付属しません。別途購入願います。
○パラレルケーブル
○サーボモータ
○ AC アダプタ
7 セグ LED
D サブ 25P メス
DC ジャック
6P ピンヘッダ
3P ピンヘッダ
タクトスイッチ
タクトスイッチ
20MHz
D サブ 25P オス - オス ストレートケーブル
GWS サーボ NRH/BB/F
DC 6V 1W
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CB_P1
CB_P2
CB_P3
CB_P4
CB_P5
CB_P6
CB_P7
CB_P8
CB_P9
CB_P10
CB_P11
CB_P12
CB_P13
CB_P14
CB_P15
CB_P16
CB_P17
CB_P18
CB_P19
CB_P20
7
12
13
14
16
18
40
41
CB_P8
CB_P4
CB_P11
CB_P5
CB_P9
CB_P10
CB_P16
CB_P17
CB_P18
CB_P19
CB_P20
CB_P1
CB_P2
CB_P3
2
3
43
5
44
8
1
6
CB_P6
CB_P7
I/O/MC1-9
I/O/MC1-10
I/O/MC1-11
I/O/MC1-12
I/O/MC1-13
I/O/MC1-14
I/O/MC1-15
I/O/MC1-16
I/O/MC1-1
I/O/MC1-2
I/O/GCK1/MC1-3
I/O/MC1-4
I/O/GCK2/MC1-5
I/O/MC1-6
I/O/GCK3/MC1-7
I/O/MC1-8
I/O/MC1-17
P1
VCC
0.1u
CC1
VCC
I/O/MC2-9
I/O/MC2-10
I/O/MC2-11
I/O/MC2-12
I/O/MC2-13
I/O/MC2-14
I/O/MC2-15
I/O/MC2-16
CB_P30
CB_P29
CB_P28
CB_P27
CB_P26
CB_P25
CB_P24
CB_P23
31
30
29
28
27
23
22
21
CB_P22
CB_P21
CB_P37
CB_P34
CB_P35
CB_P33
CB_P32
CB_P36
CB_P31
19
39
36
37
34
33
38
32
CU1
XC9536XL-10VQ44C
1
I/O/MC2-1
I/O/MC2-2
I/O/GTS1/MC2-3
I/O/MC2-4
I/O/GTS2/MC2-5
I/O/GSR/MC2-6
I/O/MC2-7
I/O/MC2-8
CC4
0.1u
VCC
CC3
0.1u
VCC
CC2
0.1u
VCC
GND
GND
GND
4
17
25
-42
Output VCC
GND
Xtal
CB_P14
CB_P13
CB_P12
CB_P15
11
10
9
24
TCK
TMS
TDI
TDO
15
35
26
VCC INT
VCC INT
VCC IO
I/O/MC2-17
GND
CB_P38
CB_P37
CB_P36
CB_P35
CB_P34
CB_P33
CB_P32
CB_P31
CB_P30
CB_P29
CB_P28
CB_P27
CB_P26
CB_P25
CB_P24
CB_P23
CB_P22
CB_P21
VCC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P2
CPLD DIP40 モジュール
20
3
2
■回路図■
26
27
1
14
2
15
3
16
4
17
5
18
6
19
7
20
8
21
9
22
10
23
11
24
12
25
13
1
3
5
7
3
2
5
7
2
4
6
8
4
1
6
8
-C1
0.1u
VCC-J
74AC125
10
9
1
2
13
12
4
5
9
74AC125
U2C
74AC125
74AC125
U2A
74AC125
U2D
U2B
74AC125
10 U1C
11
U1D
74AC125
74AC125
U1B
U1A
8
3
11
6
8
13
12
6
3
C6
100p
C5
100p
C4
100p
C3
100p
R1
4.7k
VCC-J
C2
0.1u
VCC-J
1
3
5
7
100
RA3
R2
1k
VCC-J
2
4
6
8
1N4148
D2
3.3V
JTAG_TDO
JTAG_TDI
JTAG_TCK
JTAG_TMS
(JTAG 回路部分)
100
RA2
100
RA1
D1
1N4148
4
5
1
2
CPLD-PIC ボード 1/3
Dsub25P(M)
CN1
VCC-J
VCC-J
■回路図■
RUN
PL3
PL2
PL1
R3
10k
3.3V
1
3
5
7
2
2
4
6
8
C7
470u
1N4148
D3
CPLDTX
10
R32
PIC & CPLD RESET
R5
10k
VCC
X1
20MHz
RESET
CPLDRX
330
R4
330ohm
RA4
LED Output
1
3
PL0
CPLD_RESET
VCC
6V
1
3
2
VPP
TA4805S
R33
1k
VCC
Vin
Vout
GND
U4
8
19
1
9
10
11
12
13
14
15
16
17
18
10
R34
C8
0.1u
TA48033S
VSS
VSS
MCLR/VPP
OSC1/CLKI
OSC2/CLKO
C11
0.1u
VCC
VDD
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
CN3
PIC-ICSP
20
2
3
4
5
6
7
C10
0.1u
VCC
C12
100u
21
22
23
24
25
26
27
28
3.3V
PIC16F873A-I/SP
CPLD_CLK
Vin
Vout
GND
U6
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
U3
Jumper
JP1
C9
100u
VCC
MCLR
VCC
GND
PGD
PGC
-1
2
3
4
5
6
CN2
R6
330
3.3V
POWER
VR1
VCC
PS3
PS2
PS1
PS0
Vol Input
SW Input
■回路図■ CPLD-PIC ボード 2/3(PIC 周辺回路部分)
DACOUT
--
CS3
CS2
VPP
3.3V
R12
2k
R10
1k
4.7k
R18
R17
R16
R15
CS1
CS0
R11
2k
TR3
2SA1015 R9
1k
R8
75
R7
10
TR4
2SA1015
3.3V
3.3V
S
V
G
SERVO
R13
2k
R14
2k
3.3V
CS3
CS2
CS1
CS0
SW Input
DAC0
DAC1
DAC2
DAC LED Output
SRV
Servo Motor Output
SEGa
SEGb
SEGc
SEGd
SEGe
SEGf
SEGg
SEG0
SEG1
330
7SEG LED Output
CS3
CS2
CS1
SRV
BZ
DAC0
DAC1
DAC2
CLY1
CLY0
R19
R20
R21
R22
R23
R24
R25
a
7
b 6
c
4
d 2
e
1
f
9
g 10
5
a
7
b 6
c
4
d 2
e
1
f
9
g 10
5
1k
R27
1k
R26
JTAG
1
2
3
4
5
6
CPLD XC9536
CN4
TDI
TMS
TCK
TDO
P16
P17
P18
P19
P20
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
U5
3.3V
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
DS2
a
b
c
d
e
f
g
DP
a
b
c
d
e
f
g
DP
DS1
7
8
9
10
11
12
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
38
40
39
A
A
A
A
CPLD_CLK
3
8
3
8
TR5
2SA1015
3.3V
TR6
2SA1015
3.3V
SEG0
SEGa
SEGb
SEGc
SEGd
SEGe
SEGf
SEGg
SEG1
CLX3
CLX2
CLX1
CLX0
CPLDTX
CPLDRX
CPLD_RESET
CS0
3.3V
JTAG_TDO
JTAG_TCK
JTAG_TMS
JTAG_TDI
P37
P36
P35
P34
P33
P32
P31
P30
P29
P28
P27
P26
P25
P24
P23
P22
P21
P38
VCC
GND
2
4
6
8
R28
330ohm
RA5
1k
R29
1k
BZ
Buzzer Output
CLX0
CLX1
CLX2
CLX3
CLY1
CLY0
Matrix LED Output
10k
R30
1
3
5
7
R31
1k
TR7
2SA1015
3.3V
CL7
CL6
CL5
CL4
TR1
2SA1015
SP
3.3V
CL3
CL2
CL1
CL0
TR2
2SA1015
■回路図■ CPLD-PIC ボード 3/3(CPLD 周辺回路部分)
■部品配置図および配線図■
CPLD DIP40モジュール
黒線
6V
(+)
赤線
CPLD-PICボード本体
GND
(-)
U5にセット
パラレルケーブル
でPCと接続
━━の印の箇所にジャンパ線を取り付けてください。
■回路の製作■
必要な工具:はんだごて、ニッパー、ラジオペンチ
この取扱説明書の 2 ページの部品表の部品番号 (R1,C1 などの番号)と基板に印刷された部品番
号をよくお確かめの上、ハンダ付けしてください。
■ CPLD DIP40 モジュール
. CPLD が実装済みの基板にコンデンサ 4 個取り付けます。Xtal の部分は何も取り付けずに未
実装のままにしてください。
2. 40P のオス - オス連結ソケットを取り付けます。
■ CPLD-PIC ボード本体
. 抵 抗 (VR1 以 外 )、 集 合 抵 抗、 セ ラ ミ ッ ク コ ン デ ン サ、 ダ イ オ ー ド な ど の 高 さ の 低
い 部 品 か ら 取 り 付 け ま す。 ※ ダ イ オ ー ド は 極 性 が あ り ま す の で 注 意 し て く だ さ い。
ーつづくー
--
2. 抵抗やコンデンサの足を使い、CN4 の TDI、TMS、TCK、TDO と
JP1 の 5 カ所にジャンパ線を取り付けます。ジャンパ線の取り付け箇
所は 7 ページに示してあります。
1. エミッタ
2. コレクタ
3. ベース
3. セラロックを取り付けた後に、向きに注意して各 IC ソケットを取り
付けます。
3
4. PNP トランジスタを取り付けます。トランジスタには向きがあります。
2
1
トランジスタのピン
基板上の記号と向きを確認して取り付けてください。
5. LED(DS1,DS2 以 外 ) を 取 り 付 け ま す。
φmm
の緑色 LED を、PIC LED にはφ 3mm の黄色 LED を取り付けます。
LED には極性があります。基板上の + の記号の方に LED の足の
長い方をさして取り付けてください。
A
6. 電解コンデンサ C7、C9、C12 を取り付けます。電解コンデンサ
には極性がありますので気をつけてください。
+
K
+
-
コンデンサの極性
DACOUT にはφ 5mm の白色 LED を、CPLD LED にはφ 3mm
LEDの極性
POWER と RUN にはφ 5mm(φは直径の意味)の赤色 LED を、
7. 電圧レギュレータ U4、U6 と 7 セグ LED DS1、DS2 を基板上の記号と向きを確認して取
り付けます。
8. CPLD SW に青色のタクトスイッチを、PIC SW と RESET に赤色のタクトスイッチを取り
付けます。
9. CN1 と CN2 にそれぞれのコネクタを取り付け、CN3 と SERVO にはピンヘッダを取り付
けます。
0. ボリュームはラジオペンチで上図のように足を上向きに曲げて基板にハンダ付けしやすくし
ます。VR1 にボリュームをナット締めしてからボリュームの足をハンダ付けします。
. 圧電スピーカーの配線の赤色を SP の + に黒色を - に接続します。
2. DC6V 1W の AC ア ダ プ タ( 別 売 ) を お 持 ち の 場 合 は、CN2 に 接 続 し し ま す。
CPLD DIP40モジュール
黒線
AC アダプタはセンタープラス(コネクタの中心が+、外側 6V
が ー、 記 号:
) の も の を ご 使 用 く だ さ い。 (+)
AC アダプタがない場合は、6V の電源を左図のように基板に直
接、配線をハンダ付けしてください。
GND
(-)
--
■動作確認■
. ハンダ付けや電源配線、ジャンパ線をよく確認してください。
2. ICを挿入していない状態で電源を入れてください。異常がないようなら次のステップに進
みます。
3. 一度電源を切り、ICを挿入してください。向きを間違えないように挿入してください。
4. 再 び 電 源 を 入 れ、POWER と PL0 の LED が 点 灯 し て い る こ と を 確 認 し て く だ さ い。
※このとき、U4、U6( 電圧レギュレータ ) と CU1(CPLD) は多少熱くなりますので、ヤケ
ドをしないようにご注意ください。
5. それぞれの部品の動作確認は 10 本のソフトを動作させるときに確認することができます。
■ CPLD 特有の回路説明■
■ CPLD とは?
CPLD とは、PLD というユーザの手で IC 内部の論理回路を変更することができる集積回路の
一種です。論理回路はゲートやフリップフロップといったロジック IC で作りますが、規模が大
きくなると大量の IC が必要になり、現実的に基板に実装できなくなります。規模の大きな論理
回路を 1 つの IC で作ることができるのが、PLD(CPLD も含む)です。
このキットの CPLD(Xilinx XC9536XL) では、800 個のゲートと 36 個のフリップフロップ
を使って自由な論理回路を作ることができます。
通常、論理回路を設計するときは、状態遷移図、真理
値表から 1 つ 1 つゲートやフリップフロップなどを組み
合わせて設計しますが、CPLD では、ハードウェア記述
言語という C 言語などのプログラム言語に近いもので容
この中に設計した論理回路が組み込まれます
CPLD 内部
内部回路
易に設計することができます。このキットでは、中でも
VerilogHDL という C 言語の記述に近いものを使用して
いますので、面倒な論理設計も不要で、C 言語でプログラ
ムを書くような感覚で簡単に論理回路を作ることができま I/O は外部の信号を入出力するための回路です
す。
このキットでは、10 本のサンプルソース以外にも、お客様ご自身で CPLD のハードウェア記
述をすることができます。このキットのマニュアル中では、VerilogHDL の記述方法に関して説
明しておりませんので、記述方法は書籍をご参考ください。
■ CPLD の書込回路 (JTAG)
CPLD の書き込みには JTAG を使用します。Xilinx の PLD はほとんどがこの JTAG で書き込
むことができます。このキットでは、ロジック IC×2 個などで JTAG の書込回路を構築しています。
この回路はパラレルポート専用ですが、Xilinx Platform Cable USB などの Xilinx 対応の USBJTAG ケーブルを使用することもできます。
Xlinx Platform Cable USB のイメージ
--
■開発ツールのセットアップ■
セットアップ説明ページ
○ CPLD 書き込みソフト(開発ツール)
. 付属の CD を Windows のインストールされた PC に挿入します。
2. CD の中のスタートアップの画面が自動的に立ち上がります。(立
ち上がらない場合は、CD の中から「START.html」を開きます。)
3. 画面中程の「開発ツールのセットアップ」をクリックし、そのペー
ジの説明に従って開発ツールをダウンロードし、セットアップし
てください。
○基板にケーブルを接続
. 「パラレルケーブル D サブ 25P オス - オス ストレートケーブル」で PC のパラレルポート
と CPLD-PIC ボード本体の CN1 を接続してください。
■サンプルソフトの使用方法■
■サンプルソフトの使い方
PIC には No.1 ~ 10 のサンプルソフトに対応するソフトが組み込まれています。CPLD には
No.1 ~ 10 のサンプルソフト ( 論理回路 ) をその都度書き込んで動作させます。
■サンプルソフトの書き込み
「開発ツールのセットアップ」にて開発ツールのセットアップを終えた後に、No.1 ~ 10 のサ
ンプルソフトウェアを書き込みます。
. CD の中の「CPLD_Verilog」フォルダをすべてハードディスクの C ドライブ(ローカルディ
スク (C))にコピーします。
2. ボード本体と PC をパラレルケーブルで接続して、DC6V の電源を加えます。
3. PC にて [ スタート ] → [Xilinx ISE Design Suite 10.1] → [ISE] → [ アクセサリ ] → [iMPACT]
の順でスタートメニューより iMPACT を開きます。
画面1
画面 2
画面 3
4. [iMPACT Project] のウィンドウ ( 画面 1) が開き [create a new project (ipf)] を選択して
[OK] をクリックします。
5. [iMPACT - Welcome to iMPACT] のウィンドウ ( 画面 2) で [Finish] をクリックします。
6.
[Assign New Configuration File] のウィンドウで CPLD に書き込むファイルを選択しま
す。( 画面 3) 例:No.1 のソフトを選択 (C:\CPLD_Verilog\01ExIOPIC\ExIOPIC.jed)
- 10 -
画面 4
画面 5
画面 6
画面 7
7. ( 画面 4) のウィンドウは [OK] をクリックします。
画面 8
8. ( 画面 5) のウィンドウになったら、画面の左中程の [ → Program] をダブルクリックします。
[Progress Dialog]( 画面 6) が表示され、書き込みを開始します。
9. 書き込みが終了すると ( 画面 7) のように [Program Succeeded] と表示されます。ここで
[Program Failed] と表示された場合は、1. からやり直してください。
■ソフトの実行方法
No.1 ~ 10 の指定のソフトを CPLD に書き込んだ後に PIC 側で実行するソフトを選択します。
(PIC には No.1 ~10に対応するプログラムが実装済みです。)
. CPLD-PIC ボード本体の [RESET] スイッチを一度押します。
2. CPLD-PIC ボード本体の [PS0] スイッチを押すと PIC LED の点灯パターンで実行するソフ
ト番号が表示されます。押すたびに 1 → 2 → 3 と番号が変化します。ここで表示されてい
る PIC LED の点灯パターンはソフト番号の 2 進数表記です。( ●点灯:1 ○消灯:0)
3. 実行するソフト番号を [PS0] で選んだら、[PS1] スイッチを押してソフトを実行します。
4. 各ソフトでの操作は■サンプルソフト説明■で説明します。
5. ソフトの実行を停止したい場合は、[RESET] スイッチを押してください。
■サンプルソフトの説明■
■ No.1 CPLD を PIC の拡張 IO 入出力として使う
◇ソフト番号 PIC LED:○○○●(○は消灯 ●は点灯)
※ PIC SW[PS0] でソフト番号選択、[PS1] で実行です。実行中は [RUN]LED が点灯します。
◇概要:PIC SW の入力を CPLD に送り CPLD LED を光らせると同時に CPLD SW の入力
PIC に送り PIC LED を光らせます。つまり、PIC の外部入出力として CPLD を使用しています。
◇操作方法
・CPLD SW(CS0-3) を押すと PIC LED(PL0-3) が点灯します。
・PIC SW(PS0-3) を押すと CPLD LED(CL0-3) が点灯します。
- 11 -
PIC LED
PICの処理
PIC SW
①CPLD SWの入力データを受信し、
PIC LEDに出力します。
②PIC SWの入力データをCPLDに送
信します。
CPLDの処理
CPLD LED
CPLD SW
①CPLD SWの入力状態をPICに送信
します。
②PIC SWの入力状態を受信し、CPLD
LEDに出力します。
■ No.2 PIC SW の入力を CPLD にて論理演算し、LED 出力する(PIC の論理演算出力)
◇ソフト番号 PIC LED:○○●○(○は消灯 ●は点灯)
◇概要:PIC SW の入力を CPLD に送り CPLD にて基本的な論理演算(NOT,AND,OR,XOR)
を行い CPLD LED に結果を出力します。
◇操作方法
・PIC SW PS0 と PS1 を押すと CPLD LED CL0 に PS0 の NOT 演算の結果、CL1-3 に PS0
と PS1 の AND、OR、XOR の演算結果をそれぞれ出力します。
PICの処理
PIC SW
①PIC SWの入力状態をCPLDに送信
します。
真理値表
PIC SW 入力
PS1
OFF
OFF
ON( 押す )
ON
PS0
OFF
ON
OFF
ON
CPLDの処理
CPLD LED
①PIC SWの入力状態を受信し、NOT,
AND, OR, XORの論理演算を行い、
CPLD LEDに出力します。
CPLD LED 出力
XOR
OR
CL3
CL2
OFF
OFF
ON
ON
ON
ON
OFF
ON
AND
CL1
OFF
OFF
OFF
ON
NOT(PS0)
CL0
ON( 点灯 )
OFF
ON
OFF
■ No.3 CPLD SW の入力を CPLD にて論理演算し、PIC LED で出力する(PIC の論理演算入力)
◇ソフト番号 PIC LED:○○●●(○は消灯 ●は点灯)
◇概要:CPLD SW の入力を CPLD にて基本的な論理演算(NOT,AND,OR,XOR)を行い、結
果を PIC に送信し PIC LED で出力します。
◇操作方法
・CPLD SW CS0 と CS1 を押すと PIC LED PL0 に CS0 の NOT 演算の結果、PL1-3 に CS0
と CS1 の AND、OR、XOR の演算結果をそれぞれ出力します。
PIC LED
PICの処理
①CPLD SWの論理演算後のデータを
受信し、PIC LEDに出力します。
CPLDの処理
CPLD SW
①CPLD SWの入力状態をNOT, AND,
OR, XORの論理演算し、PICにそのデ
ータを送信します。
- 12 -
真理値表
CPLD SW 入力
CS1
OFF
OFF
ON
ON
CS0
OFF
ON
OFF
ON
PIC LED 出力
XOR
OR
PL3
PL2
OFF
OFF
ON
ON
ON
ON
OFF
ON
AND
PL1
OFF
OFF
OFF
ON
NOT(CS0)
PL0
ON
OFF
ON
OFF
■ No.4 CPLD を PIC の外部 2 系統 PWM 出力として使う(LED の PWM 調光)
◇ソフト番号 PIC LED:○●○○(○は消灯 ●は点灯)
◇概要:PIC SW で PWM デューティー (% ) を設定し、CPLD では PIC から送られてきたデュー
ティーの PWM 波形を出力します。CPLD には 2 系統の分解能 4bit の PWM 回路を設けて
CPLD LED CL0、CL3 に出力します。
◇操作方法
・PIC SW を押すたびにデューティーが変化します。
デューティー UP
デューティー DOWN
CL0 出力
PS1 を押す
PS0 を押す
※ 16 段階変化
CL3 出力
PS3 を押す
PS2 を押す
・デューティーが UP すると LED はより明るく光り、DOWN するとより暗く光ります。
PIC SW
PICの処理
CPLDの処理
①PIC SWが押されるたびにデューティ
ー値を変化させ、CPLDにそのデータを
送信します。
LED(CL0)
LED(CL3)
①PICから送られてきたデューティー値
を受信し、
そのデューティーでPWM波
形をCPLD LEDに出力します。
■ No.5 CPLD でマトリクス LED 点灯制御する(カーソル移動)
◇ソフト番号 PIC LED:○●○●(○は消灯 ●は点灯)
◇概要:PIC から 8bit のデータでどの LED を点灯させるかの情報を CPLD
に送り、CPLD では 4×2 の LED をダイナミック点灯制御します。
◇操作方法
・CPLD LED で点滅しているところが現在のカーソル位置になります。
・PS0(右移動)、PS1(左移動)でカーソル位置を変更することができます。
・PS2 を押すと現在のカーソル位置の LED の点灯 / 消灯を切り替えることができます。
PIC SW
PICの処理
CPLDの処理
①PIC SWの入力から上記操作説明の
とおりに処理を行い、8bit(4 2)
の
CPLD LEDの点灯データを作り、
このデ
ータをCPLDに送信します。
CPLD LED
①PICから受信したCPLD LED点灯デ
ータをダイナミック点灯制御を用いて
4 2のマトリクスLEDを点灯します。
- 13 -
※ダイナミック点灯制御とは・・・行列(マトリクス)で LED を接続
し、すべての LED を同時に点灯せずに高速にそれぞれの行を切り替え
て点灯させ、すべての LED が点灯しているように見せる点灯方法です。
X0
X2
X3
Y0
目の残像効果で高速に行を切り替えて点灯させてもすべてが点灯して
Y1
いるように見えます。LED ディスプレイなどはこの制御方式で点灯し
Y2
ています。
X1
Y3
■ No.6 PIC ボリュームの値を CPLD で 7 セグ LED 数字表示する(2 桁ダイナミック点灯制御)
◇ソフト番号 PIC LED:○●●○(○は消灯 ●は点灯)
◇概要:PIC の AD コンバータでボリュームの値を読み込み、CPLD の 7 セグ LED で 00 ~ 99
の表示をします。
◇操作方法:PIC のボリュームを回すと、CPLD の 7 セグ LED で 00 ~ 99 の間で数字が変化
して表示されます。
ボリューム
PICの処理
CPLDの処理
①ボリュームの値をADコンバータで取
り込み、CPLDの7セグLED用に十の位
の値と一の位の値に分けてCPLDに送
信します。
7セグ
①7セグLED用のデータを受信し、
ダイ
ナミック点灯制御で2桁の数字を表示し
ます。
■ No.7 CPLD を疑似正弦波生成装置として使う(PIC から周波数をコントロールする)
◇ソフト番号 PIC LED:○●●●(○は消灯 ●は点灯)
◇概要:PIC SW で出力波形の周波数を設定し、CPLD では PIC で指定された周波数で疑似正
弦波を DA コンバータを通じて LED に出力します。
◇操作方法
・PS0 を押すと出力波形の周波数が高く(早く)なります。
・PS1 を押すと出力波形の周波数が低く(遅く)なります。
・このときの PIC LED の点灯パターンと出力周波数は以下の通りです
点灯パターン ○○○○
○○○●
○○●○
出力周波数
9.6Hz
4.8Hz
2.4Hz
PIC SW
PICの処理
CPLDの処理
①PIC SWが押されるたびに周波数指
定データを変化させ、PIC LEDに表示さ
せるとともに、CPLDにその情報を送信
します。
○○●●
1.2Hz
DAC LED
①PICで設定された周波数指定データ
を受信し、
それに従って4つの周波数で
疑似正弦波を出力します。
■ No.8 CPLD でドレミファの音階を作り、ブザーで鳴らす
◇ソフト番号 PIC LED:●○○○(○は消灯 ●は点灯)
◇概要:PIC SW と CPLD SW を鍵盤に見立て、CPLD のブザーからドレミの音階をならします。
- 14 -
◇操作方法
スイッチ CS3
CS2
CS1
CS0
PS3
PS2
PS1
PS0
出力音階 ド
レ
ミ
ファ
ソ
ラ
シ
ド
周波数
261.6Hz 293.7Hz 329.6Hz 349.2Hz 392.0Hz 440.0Hz 493.9Hz 523.2Hz
以上のように各スイッチに音階を割り当てています。同時に押しても 1 音しかでません。CS3
← CS0 ← PS3 ← PS0 という用に音階が高い方から優先されて音が出ます。たとえば PS2 と
CS1 を同時に押したときは PS2 が優先されてラの音が出力されます。
PIC SW
PICの処理
CPLDの処理
①PIC SWの入力状態をCPLDに送信
します。
ブザー
CPLD SW
①PIC SWの入力状態を受信し、PIC
SWの入力状態とCPLD SWの入力状
態から該当する音階の波形をブザーに
出力します。
■ No.9 CPLD を音階出力器として使い、メロディーを鳴らす
◇ソフト番号 PIC LED:●○○●(○は消灯 ●は点灯)
◇概要:PIC から音符データを送って CPLD で送られてきた音符データ通りに音の波形を出力
します。
◇操作方法:PIC SW PS0 を押すと、「かえるのうた」が演奏されます。
PIC SW
PICの処理
音符データ
①PS0が押させるとCPLDに
「かえるの
うた」
の音符データをCPLDに送信しま
す。
CPLDの処理
ブザー
①PICから送信された音符データを受信
し、
その音符データに沿って音階の波形
をブザーに出力します。
■ No.10 CPLD でサーボ信号を出力し、サーボモータを制御する
◇ソフト番号 PIC LED:●○●○(○は消灯 ●は点灯)
◇概要:PIC の AD コンバータでボリュームの値を読み込み、CPLD ではそのボリュームの値に
応じてサーボの角度を 0 ~ 180°に変化させます。
※サーボモータは別売です。GWS サーボ NRH/BB/F が適合します。
◇操作方法:PIC のボリュームを回すと、それに応じてサーボの角度が変化します。
ボリューム
PICの処理
①ボリュームの値をADコンバータで取
り込み、
その値をCPLDに送信します。
CPLDの処理
白
線
サーボ
①ボリュームの値を受信し、
サーボ駆動
用のPWM波形を作りサーボモータを制
御します。
※サーボコネクタの接続はサーボの白線がボード上の SIG とつながるように接続してください。
※ No.1 ~ 10 で CPLD と PIC のデータやりとりは UART(RS232 シリアル通信 ) で行ってい
ます。CPLD には UART 回路を実装し、PIC では UART 機能を使っています。
- 15 -
■応用■
■オリジナルの CPLD ソースを記述する
サンプルソフト以外にオリジナルの CPLD の回路を構築する方法を以下に示します。
. ■開発ツールのセットアップ■にてインストール済みの開発ツールを開きます。 [Xilinx ISE Design Suite 10.1] → [ISE] → [Project Navigator]
2. プロジェクト名やターゲットデバイスを指定し、プロジェクトを作成します。
3. Verilog HDL などのハードウェア記述言語で回路記述を行います。
4. [Synthesize](論理合成:ソフト開発におけるコンパイルと似た動作)を行います。
5. UCF データという CPLD の実際のピンと、記述した論理回路の入出力の配線を指示する配
線データを作成します。(例:A 出力を P1 に接続などを指定)
6. [Translate][Fit] という論理合成を行った回路を実際の CPLD デバイスに当てはめる動作を
行います。(ソフト開発におけるリンクと似た動作)
7. 正常に書き込むデータが作成されたら、サンプルソース同様に iMPACT で CPLD に作った
論理回路を書き込みます。
※詳しくは本キットのホームページで掲載する予定です。
■ CPLD DIP40 モジュールを使う
このキットでは、通常フラットパッケージで売られている CPLD を使いやすい DIP40 ピン
の変換基板に実装して、ブレッドボードやユニバーサル基板で使用しやすくしています。CPLD
DIP40 ピンモジュールの配線と CPLD のピンアサインの対応表は付属の CD-R に収録されて
います。ご自身で基板を作成される際に UCF データを作成にご活用ください。自作回路での
CPLD DIP40 モジュールへの配線は本マニュアルの回路図をご覧ください。
CPLD への論理回路の書き込みには JTAG 回路が必要になりますので、本キットの CPLDPIC ボード本体を CPLD ライタとしてご使用いただくと便利です。
■注意■
当キット・ソフトウェアを運用した発生した損失・損害についてはいかなる理由であっても、
当社・作者は、その責を負いません。あらかじめご了承ください。
PIC の周辺回路を CPLD でつくるキット マニュアル 第1版 2009.6
■開発・製作・著作■
MAKE21(本キットの最新情報はこちらでご覧になれます。)
URL : http://www.make21.net/products/cpldpickit/
■製造・販売■
株式会社 秋月電子通商
http://www.akizukidenshi.com 東京都世田谷区瀬田5-35-6
- 16 -