Padaukインサーキット書き込み機の基板が届いたので、早速組み立てましょう。
基板が届く
発注から10日ほどでPCBgogoから基板が到着しました。
今回は、注文時に製造番号を左側の四角の中に印刷するよう、日本語で指示していました。
基板には、指示通り四角の中に製造番号が印刷されていました。PCBgogoは日本語だけで注文ができる珍しい基板屋さんです。
PCBgogoでは現在、新規登録者には$200のクーポンがもらえます。さらに$20分の送料クーポンももらえますそうですよ。
部品の購入
アナログスイッチICは、NT名古屋を見学するときに立ち寄った、名古屋市街にあるボントンというお店で購入しました。カウンターの中のおじさんにICの型番を伝えると、背後に並んだ部品ケースからICを探し出してくれるという、昔ながらの販売スタイルでした。
ICは、アルミホイルで包ままれて渡されました。
部品が揃ったので、はんだ付けしましょう。
組み立て
ほとんどDIP部品なので、はんだ付けは簡単です。
あっという間に、組み立て完了!
実験
回路
実験回路は上の図のようになっています。
Padaukマイコンの6つのIOピンにLEDを接続します。LEDはプログラムの書き込みに必要なピンと、書き込みに必要ではないピンと両方に接続してみます。前回の実験では、書き込みに必要のないピンにLEDを接続すると正常に書き込めませんでした。今回は書き込めるでしょうか?
Padaukマイコンには、PFS123を使います。
実際に接続した様子です。左から「書き込み機」「インサーキット書き込み機」「ブレッドボード」です。
プログラム
#include <pdk/device.h> #include <stdint.h> #include "auto_sysclock.h" #include "delay.h" #define LED1_BIT 4 #define LED1_PORT PB #define LED1_PORTCONT PBC #define LED2_BIT 7 #define LED2_PORT PB #define LED2_PORTCONT PBC #define LED3_BIT 5 #define LED3_PORT PA #define LED3_PORTCONT PAC #define LED4_BIT 4 #define LED4_PORT PA #define LED4_PORTCONT PAC #define LED5_BIT 0 #define LED5_PORT PB #define LED5_PORTCONT PBC #define LED6_BIT 2 #define LED6_PORT PB #define LED6_PORTCONT PBC #define LED1_ON() LED1_PORT &= ~(1 << LED1_BIT) #define LED1_OFF() LED1_PORT |= (1 << LED1_BIT) #define LED2_ON() LED2_PORT &= ~(1 << LED2_BIT) #define LED2_OFF() LED2_PORT |= (1 << LED2_BIT) #define LED3_ON() LED3_PORT &= ~(1 << LED3_BIT) #define LED3_OFF() LED3_PORT |= (1 << LED3_BIT) #define LED4_ON() LED4_PORT &= ~(1 << LED4_BIT) #define LED4_OFF() LED4_PORT |= (1 << LED4_BIT) #define LED5_ON() LED5_PORT &= ~(1 << LED5_BIT) #define LED5_OFF() LED5_PORT |= (1 << LED5_BIT) #define LED6_ON() LED6_PORT &= ~(1 << LED6_BIT) #define LED6_OFF() LED6_PORT |= (1 << LED6_BIT) void main() { PDK_USE_FACTORY_IHRCR_16MHZ(); PDK_USE_FACTORY_BGTR(); AUTO_INIT_SYSCLOCK(); CLKMD &= ~CLKMD_ENABLE_WATCHDOG; // Disenable WDT LED1_PORTCONT |= (1 << LED1_BIT); // Set LED pin as output LED2_PORTCONT |= (1 << LED2_BIT); // Set LED pin as output LED3_PORTCONT |= (1 << LED3_BIT); // Set LED pin as output LED4_PORTCONT |= (1 << LED4_BIT); // Set LED pin as output LED5_PORTCONT |= (1 << LED5_BIT); // Set LED pin as output LED6_PORTCONT |= (1 << LED6_BIT); // Set LED pin as output LED1_OFF(); LED2_OFF(); LED3_OFF(); LED4_OFF(); LED5_OFF(); LED6_OFF(); while(1) { LED1_ON(); _delay_ms(200); LED1_OFF(); LED2_ON(); _delay_ms(200); LED2_OFF(); LED3_ON(); _delay_ms(200); LED3_OFF(); LED4_ON(); _delay_ms(200); LED4_OFF(); LED4_OFF(); LED5_ON(); _delay_ms(200); LED5_OFF(); LED4_OFF(); LED6_ON(); _delay_ms(200); LED6_OFF(); LED4_OFF(); } }
6つのLEDが順番に点灯するプログラムを作りました。
[env:development] platform = https://github.com/kohacraft/platform-padauk.git ; ボードのリポジトリ board = PFS173 ; 使うマイコンの選択 framework = easypdk ; ヘッダーとかを追加 board_build.f_cpu = 1000000 extra_scripts = post:extra_script.py
マイコンにはPFS123を使います。PFS123はPFS173の後継機種で全てが同じなので、platformio.iniのboardにはPFS173と設定します。
参考までの、プログラム全体を貼っておきます。
書き込み
スイッチを「WRITE」にしてから書き込みを行います。
コンパイルしてできたBinファイルを、書き込み機のドライブ「PADAUK PROG」にドラッグ&ドロップします。
正常に書き込めて、「OK」のLEDが点灯しました。
書き込めましたよ!
実行
プログラムを動作させるためには、スイッチを「WRITE」から「RUN」に切り替えます。
LEDが点灯しました!!
インサーキット書き込み機が、正常に動作することが確認できました!
完成!
Padaukマイコン用の、インサーキット書き込み機が完成しました。これで、Padaukマイコンを使った回路とそのプログラム開発が捗りますよ。
コメント