[[Synthesijer]]~
[[DE0-Nano/Synthesijer]]~

#contents

* DE0-Nano/Synthesijer_Samples_Serial2 [#oc3846b6]
[[DE0-Nano/Synthesijer]]で作成した環境上で synthesijer_samples の ~
serial_echo を DE0-Nano 上で動作させるまでの手順について記載します。 ~
~
serial_echo のサンプルには EchoTest(入力文字をそのまま返すサンプル)と ~
ToUpper(大文字で返すサンプル)があります。 ~
ここではEchoTest(入力文字をそのまま返すサンプル)について記載します。 ~
~
[[serial_echo(ToUpper) >DE0-Nano/Synthesijer_Samples_Serial1]]で記載したようにDE0-Nano には serial port がありませんので ~
GPIO PIN に TX、RX を割り当てます。 ~

またその GPIO PIN に接続するため今回は FTDI CHIP 社製の FT232H を搭載した ~
USB to UART ケーブル C232HD-DDHSP-0 を使用しています。 ~
~
シリアル接続は Windows 上 Teraterm で確認しています。~
(C232HD-DDHSP-0 のドライバインストール、Teraterm のインストールについては省略します) ~


- ソースファイルの修正 ~

serial_echo の以下のソースファイルを修正します。~
注:これは DE0-Nano 用ですので、他の FPGA で同様の修正で動作するかは未確認です。 ~
~
対象の FPGA は DE0-Nano ですので、Makefile を以下のように修正します。~

 $ vi Makefile
 
 VERILOG_SOURCES = $(SOURCES:.java=.v)
 
 all: hdl exstick
 # all: hdl exstick microboard
 
 hdl: $(SOURCES)

EchoTest.java の sys_clk を 50MHz に設定します。 ~

 $ vi EchoTest.java
 
 public class EchoTest{
 
         private final RS232C_RX_Wrapper rx = new RS232C_RX_Wrapper("sys_clk", "50000000", "rate", "9600");
         //private final RS232C_RX_Wrapper rx = new RS232C_RX_Wrapper("sys_clk", "100000000", "rate", "9600");
         private final RS232C_TX_Wrapper tx = new RS232C_TX_Wrapper("sys_clk", "50000000", "rate", "9600");
         //private final RS232C_TX_Wrapper tx = new RS232C_TX_Wrapper("sys_clk", "100000000", "rate", "9600");
 
         public void run(){


修正完了後、make を実行します。 ~
注:serial_echo(ToUpper) でmake を実行している場合は ~
make clean を実行してから make を実行してください。~

 $ make

上記までと同様にDE0-Nano System Builder でプロジェクトファイルを作成します。~
Synthesijer の EchoTestTop に合わせてプロジェクト名は EchoTestTop にします。 ~
~
作成したプロジェクトを Ubuntu に移動します。 ~
serial_echoサンプルの clk_div.vhd、rs232c_rx.vhd、rs232c_tx.vhd と ~
ビルド後作成された EchoTest.vhd と top.vhd を同じディレクトリにコピーします。 ~
~
Ubuntu 上で EchoTestTop.qsf をビルドした top.vhd にあわせて以下のように編集します。~
TOP_LEVEL_ENTITY を top に変更し ~
serial_echo(ToUpper) と同じくGPIO[32] を RX、GPIO[33] を TX として割り当てています。 ~

 $ vi EchoTestTop.qsf
 
 set_global_assignment -name TOP_LEVEL_ENTITY "top"
 #set_global_assignment -name TOP_LEVEL_ENTITY "EchoTestTop"
 ...<略>
 #============================================================
 # CLOCK
 #============================================================
 set_location_assignment PIN_R8 -to clk
 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to clk
 #set_location_assignment PIN_R8 -to CLOCK_50
 #set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK_50
 ...<略>
 set_location_assignment PIN_D12 -to rx_din
 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to rx_din
 set_location_assignment PIN_B12 -to tx_dout
 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to tx_dout
 #set_location_assignment PIN_D12 -to GPIO[32]
 #set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[32]
 #set_location_assignment PIN_B12 -to GPIO[33]
 #set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[33]
 #============================================================
 # End of pin assignments by Terasic System Builder
 #============================================================
 
 set_global_assignment -name VHDL_FILE clk_div.vhd
 set_global_assignment -name VHDL_FILE rs232c_rx.vhd
 set_global_assignment -name VHDL_FILE rs232c_tx.vhd
 set_global_assignment -name VHDL_FILE EchoTest.vhd
 set_global_assignment -name VHDL_FILE top.vhd
 set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "2.5 V"

また、上記と同様に DE0-Nano 上の GPIO[32] に C232HD-DDHSP-0 の TXD にあたるオレンジの端子を ~
GPIO[33] に RXD にあたる黄色の端子を接続します。 GND にあたる黒色の端子は ~
12番(GPIO[07] と GPIO[09] の間)の端子に接続します。~
~
注:GND への接続に関する記述を追記しました。 ~
またC232HD-DDHSP-0 の USB 端子は PC に接続した状態で操作してください。~
~
quickstart と同様に Quartus を起動し Complication の実行、Pin Planner で PIN 配置の確認を ~
行い Programmer からイメージを DE0-Nano に流し込みます。 ~
~
動作確認のため C232HD-DDHSP-0 を接続した Windows 上で Teraterm を起動し対象の COM Port を ~
開き ボーレート 9600 になっていることを確認し入力した文字列が、TeraTerm 上で表示されることを確認します。 ~

#ref(echotest.png,,80%); ~

以上で serial_echo 内 EchoTest の動作確認は完了です。 ~

* 更新履歴 [#gdeaebca]
2014/09/05 端子接続に関する箇所訂正のため追記 ~
2014/09/03 構成変更のため本ページへ移動 ~
2014/09/02 初稿掲載 ~


RIGHT:syariten

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS