エントリー

ATTINY13用の開発支援ボードを作る(続き)

USBシリアル変換モジュールを使って送受信が可能になったのでボードの空きの部分(後になんらかの機能追加できるように空けていた)に丁度USBシリアル変換チップが余っていることもありUSBシリアル変換モジュールを追加することにした

チップ

安くUSBシリアル変換モジュールが作れないかなと思って購入していたパーツでようやく挑戦することになる(今なら超小型USBシリアル変換モジュールを使えば手間かからないかも)

回路図

VSOP用のボードが28ピン用のためスペースがあるのでUSBコネクタを付ける(FT231は20ピン)

USB

USB裏

チップを載せるために半田メッキする

半田メッキ

チップを置いて半田で温めて付けようとしたら・・・げげぇ幅が足りない・・・ボードをミスったか・・・ギリギリの線まで足を置いて後は半田を延ばして無理やり付けた(ピン1つがなかなか接触しなくて時間かかり壊れてなければよいが・・・)

半田付け

必要な部分のみピンを付けてボードは完成

ピン

実態結線図を作成して

実態結線図

※)都合良いパーツは無かったので、27Ω ⇒ 20Ω、47pF ⇒ 22pFを使用

ブレッドボードで確認

ブレッドボード版

ところがFT232RLでは正常だったのにFT231XSでは文字化けが発生してしまう

参考記事でOSCCALの調整で改善されるかもと調整を試みる

#include <BasicSerial3.h>

void setup( ) {
  pinMode(3, OUTPUT);
}

void serOut(const char* str) {
   while(*str) TxByte (*str++);
}

void loop() {
  char buf[4];
 
  for(uint8_t i = 0; i <= 128; i++) {
    digitalWrite(3, HIGH);
    itoa(i, buf, 10);
    OSCCAL = i;
    serOut("***** OSCCAL=");
    serOut(buf);
    serOut(" *****\r\n");
    delay(1000);
    digitalWrite(3, LOW);
    delay(1000);
  }
}

以下のように出たので91を設定してみたが改善せず

クロック調整

いろいろとプログラムを調整していたら長い文字列だと文字化けするようなので連続して送信する文字数の上限を設けてみたら解決

void serOut(const char* str) {
  while (*str) TxByte(*str++);
}

以下のように上限を8文字にした

void serOut(const char* str) {
  while(*str) for(int n = 0; *str && n < 8; n++) TxByte(*str++);
}

ブレッドボード上で送受信とも確認できたのでシールド基板上に取り付け完成

完成ボード

追加として以下を設置

  • 電源切り替えスイッチ(シールド上のUSBかArduinoの5Vピンかの切り替え)
  • 電源LED(緑)

使い方は以下を参照

ArduinoISP 使い方・書き込みテストArduino IDE で ATtiny 他の開発

消えると困るので転用し編集させてもらった

①開発ボードをArduinoUNOにセット

②ArduinoUNOにArduinoISPスケッチを書き込む

IDEの[ファイル]→[スケッチ例]→[11.ArduinoIAP]→[ArduinoISP]をマイコンボードに書き込む

③書込み装置選択

IDEの[ツール]→[書込み装置]の[Arduino as ISP]を選択

④ボード選択

IDEの[ツール]→[ボード:]で[ATtiny13(bitDuino13)]を選択

IDEの[ツール]→[Clock:]と進み[1.2MHz(Internal)]を選択

⑤テストスケッチを入力

#define PIN 3
#define DTIME 500

void setup() {
    pinMode(PIN, OUTPUT);
}

void loop() {
    digitalWrite(PIN, HIGH);
  delay(DTIME);
   digitalWrite(PIN, LOW);
   delay(DTIME);
}

⑥「マイコンボードに書き込む」ボタンをクリック

コンパイルと書き込みが行われLEDが約0.5秒間隔で点消灯する

⑦クロックを変更(工場出荷時は1.2MHz)

IDEの[ツール]→[Clock:]で[9.6MHz(Internal)]を選択

再度「マイコンボードに書き込む」ボタンをクリック

LEDが約4秒間隔で点消灯する(内蔵クロック1.2MHzで動作しているのにクロック9.6MHzとしてスケッチをコンパイルして書き込んだために起こる現象)

⑧ヒューズビット書き換え

IDEの[ツール]→[ブートローダの書き込み]を実行

ダミーのブートローダ書き込みによりヒューズビットの書き換えとプログラムの消去が行われる

もういちど,「マイコンボードに書き込む」ボタンをクリックしてスケッチをコンパイルして書き込むとLEDは約0.5秒間隔で点消灯する

 

ページ移動

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
登録フォーム
名前
メールアドレス
URL
コメント
閲覧制限
投稿キー(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

検索

エントリー検索フォーム
キーワード

過去ログ

Feed