まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

AVR

4ICs Z80ボード(1) ATMega32LのArduinoブートローダ書き込み

 もあ(@morecat_lab)さんに4ICs Z80ボードを譲っていただきました。ありがとうございます。

手持ちの部品があったのでとりあえずすべて実装。10cm×10cmのサイズ。
2018-ATMEGA32-ALL

 このボードは40pinのAVRがすべてを制御してZ80を動かすしくみなので、AVR ATmega32Lにソフトウェアを書き込んでやらないといけません。まずはArduinoのブートローダーから。

 AVRISPmkIIで書き込めるようにICSP端子を空きエリアに用意。
2018-ATMEGA32-ISP-CONN

 ATMega32Lの pin6 - MOSI , pin7-MISO , pin8 - SCK , pin9 - *RESET
2018-ATMEGA32-ISP-CONN2

参考:
ATmega DIP40 in Arduino IDE 1.6.4
Burning Arduino Bootloader to Atmega 32A-PU Using Arduino As ISP

ハードは以上。次はソフト。Windows10からAVRISPmkIIを使うには若干の手順が必要らしい。
windows10でAVRISP MKIIを使う方法 @yoshihiroo

 まずドライバをインストールし、AVRISPmkIIをPCに接続。次にlibusb-win32-devel-filter-1.2.6.0.exeをインストールする。ここでデバイス一覧が出るのでAVRISPmkIIの箇所を選択して完了する。
libusb-win32というのはどうも署名などをうまくバイパスするような仕組みみたい。

 以上の方法はどうしてもAVRISPmkIIを使いたい時の方法で、Arduino UNOが手持ちにあれば Arduino as ISP で書き込んだほうが楽。

 さて書き込み器の準備はできたので、Arduino IDEに40pin AVRのライブラリを設定する。ライブラリは複数あったのだが以下のMightyCoreを使ってみた。
MightyCore : An Arduino core for the ATmega16, ATmega32, ATmega324 and more…

 Windows10上でArduino IDE 1.8.4を起動し、[ファイル]→[環境設定]をクリック、追加のボードマネージャのURL欄に
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
を書いて[OK]で終了。
 次に[ツール]→[ボード]→「ボードマネージャ…」をクリック。ここからMightyCore by MCUdude バージョン1.0.8をクリックしてインストールする。
 インストール後
[ツール]→[ボード]をクリックするとMightyCore以下にATmega1284など40ピンのAVRが追加されている。ATmega32をクリックしてボード"ATmega32"を選択すれば、次に[ツール]→[ボード]をクリックしたときに項目が追加されている。この4ICs Z80ボードには水晶発振子がないので Clock 8MHz Internalを選択。

 以上で準備ができたので[ツール]→[ブートローダを書き込む]をクリック。これでATmega32LがArduinoになった。なお実際の書き込み前にZ80やSRAMは誤動作を防ぐため外しておきます。
2018-ATMEGA32-ISP-Write


 動作確認のため、基板上のシリアルポートにUSB-シリアル変換器を接続して"Blink"のスケッチをシリアルポート経由で書き込んでみる。基板上のD0 LEDが点滅すればOK。
2018-ATMEGA32-ISP-OK


 ここまでが準備でした。
 なお40pin AVRのライブラリやClock 8MHz Internalの設定は今後変わるかもしれませんがまずは動作確認ということで つづく。

Arduino Leonardo/Micro互換のPololu A-Star 32U4 Micro

 A-Star 32U4 Microは超小型のArduino Leonardo/Micro互換マイコン。
A-Star 32U4 Micro
(スイッチサイエンス)

A-Star 32U4 Micro(Pololu)

 Arduino Microより小さい。ピンアサインはこちら。
A-Star 32U4 Micro PinAssign

 ピンの一部を出さないことでサイズを小さくしている。Digital13はLEDのみで、Analog2-5はない。32U4だと一部のDigitai端子にアナログ入力が割り当てられるので、使いたければこちらを使用するという考え。
2014pololu

これまでの選択肢としてはこういうのがあった:
Arduino Micro
Pro Micro 5V/16MHz
ダヴィンチ(ストロベリーリナックス)
32U4ブレークアウト
(スイッチサイエンス)

A-Star Programmable Controllersの仲間にはArduino Microと同じサイズのものがあり、動作電圧のバリエーションがある。

以下はA-STAR 32U4 MicroのUSB情報。

Pololu A-Star 32U4:
  製品 ID:0x2300
  製造元 ID:0x1ffb
  バージョン: 1.00
  速度:最高 12 Mb/秒
  製造元:Pololu Corporation
  場所 ID:0xfd120000 / 4
  利用可能な電流(mA):500
  必要な電流(mA):500
 


マイコンとPS/2キーボードを繋ぐあれこれ

PS/2やADB(Appleの古いキーボードI/F)をUSBに変換する。AVR用。
https://github.com/tmk/tmk_keyboard 

Adafruitの新製品。
NEW PRODUCT! E1115 PS/2 Keyboard to TTL Serial Converter 

うう、色々先を越された。

スイッチサイエンス32U4ブレークアウトボードとAVRISPmkII

スイッチサイエンスの32U4ブレークアウトボードをArduino Leonardo化した。

SWITCH SCIENCE 32U4ブレークアウトボード

AVR ISPmkIIでArduinoブートローダを書き込むための端子は以下。

SCK (2).B1
MOSI (3).B2
MISO (4).B3
RST (5)
Vcc (6)
GND (21)

ACR ISPmkIIのICSP端子を上から見た図
AVRISPmkIIcon

ブレッドボード上で書き込み用の接続。32U4ブレークアウトボードはひっくり返して載せてる。また、AVR ISPmkIIのICSPコネクタは写真では上を向けているのでVccが左上に見える(赤い線)。
AVRISPmkII-32U4
 
 Arduino IDEから[ツール]→[書込装置]でAVRISPmkIIを選択し、[ツール]→[ブートローダを書き込む]でしばらく待つと青いLEDが点滅するようになる。これでOK。

参考:
AVRC Programming-Programmer

Arduino LeonardoとATmega32U4搭載マイコンのピン接続表

Arduino Leonardoと32U4を搭載したマイコン基板の端子について調べた。

本家Arduino Leonardo
ATmega 32U4-Arduino Pin Mapping  ※2012/5/28現在、表にミスあり。32U4のpin30に対応するのはDigitalPin10。
ATmega32U4搭載マイコンボード[スイッチサイエンス] ※現行品はシルク印刷にミスあり。
ダ・ヴィンチ32U[ストロベリーリナックス]

 これらのマイコン基板の端子とATmega32U4のピン対応一覧をExcelにまとめた。
一応テスタを使ってよくわからない所は確認したが、使うときは自己責任でどうぞ。

32U4.xls[Google Drive]

 
32U4 pin# Pin Name Leonardo 32U4Breakout Davinci
1 PE6(INT.6/AIN0) Digital Pin7 14.E6 30.PE6
2 Uvcc +5V 6.VCC 2.+5V
3 D- RD- - -
4 D+ RD+ - -
5 UGND UGND - -
6 Ucap UCAP - -
7 VUSB Vbus - -
8 PB0(SS/PCINT0) RXLED 1.B0 22.PB0
9 PB1(PCINT1/SCLK) SCK 2.B1 23.PB1
10 PB2(PDI/PCINT2/MOSI) MOSI 3.B2 24.PB2
11 PB3(PDO/PCINT3/MISO) MISO 4.B3 25.PB3
12 PB7(PCINT7/OCA0/OC1C/#RTS) Digital Pin11(PWM) 18.B7 29.PB7
13 RESET RESET 5.RST 3.RST
14 Vcc +5V 6.VCC 2.+5V
15 GND GND 21.GND 1,17,32 GND
16 XTAL2 XTAL2 - -
17 XTAL1 XTAL1 - -
18 PD0(OC0B/SCL/INT0) Digital Pin3(SCL)(PWM) 10.D0 4.PD0
19 PD1(SDA/INT1) Digital Pin2(SDA) 9.D1 5.PD1
20 PD2(RXD1/AIN1/INT2) Digital Pin0(RX) 7.D2 6.PD2
21 PD3(TXD1/INT3) Digital Pin1(TX) 8.D3 7.PD3
22 PD5(XCK1/#CTS) TXLED (TXLED) 9.PD5
23 GND1 GND 21.GND 1,17,32 GND
24 AVCC AVCC 6.VCC 2.+5V
25 PD4(ICP1/ADC8) Digital Pin4 11.D4 8.PD4
26 PD6(T1/#OC4D/ADC9) Digital Pin12 19.D6 (シルク誤記D6) 10.PD6
27 PD7(T0/OC4D/ADC10) Digital Pin6(PWM) 13.D7 11.PD7
28 PB4(ADC11/PCINT4) Digital Pin8 15.B4 26.PB4
29 PB5(PCINT5/OC1A/#OC4B/ADC12) Digital Pin9(PWM) 16.B5 27.PB5
30 PB6(PCINT6/OC1B/OC4B/ADC13) Digital Pin10(PWM) 17.B6 28.PB6
31 PC6(OC3A/#OC4A) Digital Pin5(PWM) 12.C6 12.PC6
32 PC7(ICP3/CLK0/C4A) Digital Pin13 20.C7 13.PC7
33 PE2(#HWB) HWB HWB 16.HWB
34 Vcc1 +5V 6.VCC 2.+5V
35 GND2 GND 21.GND 1,17,32 GND
36 PF7(ADC7/TDI) Analog In 0 23.F7 21.PF7
37 PF6(ADC6/TDO) Analog In 1 24.F6 20.PF6
38 PF5(ADC5/TMS) Analog In 2 25.F5 19.PF5
39 PF4(ADC4/TCK) Analog In 3 26.F4 18.PF4
40 PF1(ADC1) Analog In 4 27.F1 15.PF1
41 PF0(ADC0) Analog In 5 28.F0 14.PF0
42 AREF AREF 22.AREF 31.REF
43 GND3 GND 21.GND 1,17,32 GND
44 AVCC1 AVCC 6.VCC 2.+5V
記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ