Comments
Description
Transcript
PICの周辺回路を CPLDで作るキット
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 -