Microchip StudioでATTINY202 備忘録

AVRマイコン ATTINY202は、UPDIという方式で書き込む。

USBシリアル変換基板で書き込むことができる。

Arduino環境ではなく、Microchip Studioでpymcuprogを使うためのメモ。

書き込みツール ハードウェア編

USBシリアル変換ICを使う。秋月のモジュール基板を使用した。

CH340E USBシリアル変換モジュール Type-C

同じような変換ICならほとんど使えそう。
上記のモジュールは5Vなので、3.3Vの回路の場合は注意が必要と思う。

下記に回路図を示す。テスト用にLEDをPA2に接続した。

ATTINY202のVDD(1pin)-GND(8pin)間には5Vの電源と0.1uFのコンデンサを接続。
ATTINY202のPA0(6pin)には抵抗470Ωを介してCH340EのRXDへ接続。
CH340EのRXDからTXDにショットキーバリアダイオードを、RXD側がアノードとなるよう接続。
ATTINY202のPA2(5pin)には、抵抗10kΩを介してLEDのアノードを接続。LEDのカソードはGNDに接続している。
テスト用回路図と、USBシリアル変換モジュールへの接続図
DIP変換基板に載せたATTINY202をブレッドボードに載せ、USBシリアル基板からの接続は、電線を使っている
実際に接続した写真。とても簡単

書き込みツール ソフトウェア編

まずPythonをインストールしておく。

プログラミングには、pymcuprogを使う。

コマンドラインかWindowsPowerShellを開いて下記を実行すると、pymcuprogがインストールされる。

py -m pip install pymcuprog
"py -m pip install pymcuprog"を実行したWindows PowerShellのスクリーンショット
スクショ

USBシリアル基板をPCに接続し、ポート番号を調べておく。

デバイスマネージャーのポートを見よ。CH340の文字がある
デバイスマネージャーでわかる

このPCの場合”COM5″だった。USBポートをかえると番号が変わるかもしれないので注意。

下記を実行して正しく動くか確認する。com5の部分はさっきのポート番号にしておく。

pymcuprog ping -t uart -u com5 -d attiny202

成功すれば
“Pinging device…
Ping response: 1E9123
Done.”などと出てくるはずだ

Microchip Studioの設定

メニューのツール -> 外部ツールを選択

Tool -> 外部ツール

タイトル: pymcuprog

コマンド: pymcuprog.exe

引数: write -t uart -u com5 -d attiny202 -f “$(TargetDir)$(TargetName).hex” –erase –verify

終了時にウインドウを閉じるのチェックは外していたほうが、エラーの時に助かる。

タイトル・コマンド・引数を入力した「外部ツール」の設定画面

OKを押したら、ツールメニューにpymcuprogが追加される。書き込む時はこれを押す。

ツールのメニューにpymcuprogが追加された

Lチカコード

下記のコードでLEDが0.5秒ごとに点滅したら成功。

#define F_CPU 20000000UL / 6

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	PORTA.DIRSET = 0b0100;	// PA2を出力に設定
    while (1) 
    {
		PORTA.OUTSET = 0b0100;
		_delay_ms(500);
		PORTA.OUTCLR = 0b0100;
		_delay_ms(500);
    }
}

周波数
F_CPU・・・ATTINY202の既定クロックは20MHzで、既定の分周比は1/6
なぜ1/6なんだろうか??

今までのAVRからレジスタが変わっている

DIRSET・・・入出力設定。特定のビットを1にする。
DIRCLR・・・同上。特定のビットを0にする。
OUTSET・・・出力設定。特定のビットを1にする。
OUTCLR・・・同上。特定のビットを0にする。
便利なレジスタが追加された。

参考文献

AVR-DA | Y-Lab. Blog https://blog.y-lab.org/?cat=13

pymcuprog · PyPI https://pypi.org/project/pymcuprog/

ChatGPTにも教えてもらった


MP3バックブザーを作った

”好きな曲を流せるバックブザーが欲しい”という依頼があり作った。
ギアをリバースに入るとSDカード内の音楽ファイルを再生する、という単純なもの。
駐車場で注目度No.1になること間違いなし

“MP3バックブザーを作った” の続きを読む

流れるウインカー用 遅延リレーの製作

トラックにありがちな「流れるウインカー」の点灯回路の依頼を受け、製作しました。
簡単に数を増やせるようにしています。せっかく作ったので記録として記事にします。

“流れるウインカー用 遅延リレーの製作” の続きを読む

2個のLEDを1ポートで制御

最小限の部品を使い、マイコンの1個の出力ポートで2個のLEDを個別に制御する回路です。
マイコンの空きポートが少なかったり、コスト要求が厳しい時に使えそうです。

Twitterでは、ギリセーフやら燃えるやら結構いろんな反応がありました。
一部のBluetoothレシーバーのICでも実績があるようです。

さて、この回路は実用的なのか?検証してみます。 “2個のLEDを1ポートで制御” の続きを読む


市販のルームランプを調光できるように改造!

ストリートの荷室を明るくするべく、
ネットで自動車用のLEDルームランプを買いました。
(Lightronic 260mm 7W)

届いたものを見ると、結構しっかりしてて十分に明るいです。
明るすぎるぐらいなので、調光できるようにしてみました。

https://www.amazon.co.jp/dp/B07WJLCKGK/

“市販のルームランプを調光できるように改造!” の続きを読む


ELシート用インバータの製作

ELシートを使いたくて、大阪のシリコンハウスで無機ELシートを購入しました。
無機ELは、面発光、フレキシブル、薄い、ハサミ等で自由に切れる(注: ある程度の制限はある)という特徴を持つデバイスです。ただし、それほど明るく光らないので、照明には向きません。

さて、このELシートを発光させるには、シートのサイズによりますが100V, 400Hz程度の交流電圧を印加する必要があります。この電圧を作るために、別途インバータが必要になります。
今回は、DC12V程度で光らせるため、インバータを製作します。

売っていますが、作ります(重要)

注意:高電圧を扱います

ELシートの駆動方法

ELシートの電源は、70~130Vで400Hzの交流電圧です。電圧を高くするか、周波数を高くすると明るくなりますが、寿命が短くなります。ちなみに、AC100,60Hzの商用電源では、非常に暗いですが、一応光ります。なお、正弦波交流である必要はありません。

ELシートはコンデンサのような構造をしているため、容量性負荷となります。LCRメータで測定すると、0.2μF程度の容量がありました。

回路構成

ELシートのインバータについて調べると、電源トランスを使った回路がいくつか見つかりました。しかし、今回はトランスを使わずにインバータを作ってみます。

回路構成としては、MC34063による12V→240V昇圧回路と、400Hzのスイッチング回路です。400Hzはオペアンプの発振回路で作ってトランジスタでスイッチングします。

第一作目(失敗作)

これは最初に作った回路です。ただし、後述の理由でELシートを光らせることはできません……。
回路図の上段のMC34063による昇圧チョッパでDC12Vから140~260Vを作ります。MOSFETのQ1には耐圧200V程度の物を使います。無機ELシートにはそれほど電流が流れないため、もっと小さいMOSFETやインダクタでも良いと思います。

回路図の後段のオペアンプで400Hzの信号を作り、トランジスタT2でスイッチングします。

ELシート用インバータ第一作目(失敗)

先に述べたように、ELシートは容量性負荷です。この回路では、出力回路がトランジスタ1石の回路なので、トランジスタT1がOFFの時に、出力インピーダンスが抵抗R13の47kΩとなり、ELシートに電流を流せませんでした。(ELシートが容量性であることに気付いたのはこの回路を作った後です)。

インバータ第一作目 基板

第二作目

この回路は、第一作目の問題点を修正したものです。出力回路をプッシュプルにしたので、ELシートをしっかり駆動できます。

ELシート用インバータ

ダイオードD2には耐圧300V以上のショットキーバリアダイオード、
ダイオードD3には1A程度の小信号ダイオード、
ダイオードD5には耐圧300V以上のシリコンダイオードを使います。

ボリュームR7でELシートの明るさを変えることができます。

ELシート インバータ トランジスタのフィンの絶縁に注意

ELシート用インバータ基板 真上から

下図は、201mm×122mmのELシートを光らせている写真です。半導体素子の発熱も少なく、良好に動くことを確認しました。

ELシート点灯中

最後にケースに入れました。ケースには放熱用の穴と、明るさ調整用にボリュームの穴を設けました。

ケースに入れた

ELシートの利用については、別の記事で紹介します。

 

製作日:2015年1月頃



【アクティ】リアゲートを電動ドアロック化

アクティのリアゲートは、鍵が無いとアンロック・ロックできないので不便だ。そこで、リアゲートにドアアクチュエーターを付けて、運転席から操作できるようにしたいと思った。
写真は、内装を剥がしたリアゲートです。

“【アクティ】リアゲートを電動ドアロック化” の続きを読む