2020年8月18日火曜日

Atmel StudioからArduinoを用いてATtiny85に書き込む

Atmel StudioからArduino UNOを書き込み器として用いてATtiny85に書き込む


私の場合はATtiny85に書き込むツールとしてTL866ⅡPLUSを使用しているのですが、Arduinoで書き込みができないかという声がありましたので、試してみました。
やりたいことはAtmel Studioでプログラムを作成し、それを書き込み器として設定したArduino(ArduinoISP)でATtiny85に書き込むということです。

(1)Arduino UNOを書き込み器として設定する。


「ファイル」→「スケッチ例」→「11.ArduinoISP」からArduinoISPを選択
「ツール」→「ボード」でArduino UNOを選択
「ツール」→「シリアルポート」でArduino UNOが接続されているポートを選択
「ツール」→「書込装置」でAVRISP mkIIを選択
スケッチをコンパイルして書き込む。
これでArduino UNOが書き込み装置になりました。

(2)ArduinoにATtiny85を認識させる。


「ファイル」→「環境設定」の設定タブ中の「追加のボードマネージャのURL:」に
「http://drazzy.com/package_drazzy.com_index.json」を書き込み、OKボタンを押す。(もう既に設定済みのものがあれば次の行に書き込みます。)
「ツール」→「ボード」→「ボードマネージャ」でフィルタにATtinyCoreと入力し、現れたATTinyCoreをインストールする。
「ツール」→「ボード」でATtiny25/45/85(No bootloader)を選択
「ツール」→「書込装置」でArduino as ISPを選択

(3)ArduinoにATtiny85を接続する。


        次のように接続します。(画像参照)
        Arduino UNO ATtiny85
        13 <----------> SCK 
        12 <----------> MISO
        ~11 <----------> MOSI
        ~10 <----------> RESET
        5V <----------> VCC
        GND <----------> GND







以上でArduino側の準備は終了です。
(もちろん、電源は入れたままにしておきます。)

(4)Atmel Studioの設定


「ツール」→「外部ツール」で次の3項目を設定

設定例
タイトル:ArduinoISP(ATtiny85)
コマンド:C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe
引数:-c avrisp -P COM6 -b 19200 -p t85 -U flash:w:$(ProjectDir)Release\$(TargetName).hex:i -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
(COM6はArduinoが接続されているポート、t85はATtiny85、3つのfuseの値は適宜設定)
さらに、「出力ウインドウを使用」にチェックを入れます。「起動時に引数を入力」にチェックを入れると書き込み時に引数を変更できますが、かえって面倒かもしれません。

これで、「ツール」メニュー中にArduinoISP(ATtiny85)が現れます。
[注意]これは書き込む条件、チップ毎に設定する必要があります。

しかし、私の場合、これだけではconfigファイルがないというエラーが出ましたので、C:\Program Files (x86)\Arduino\hardware\tools\avr\etc中にあるavrdude.confをavrdude.exeのあるフォルダにコピーします。

(5)書き込み


Releaseモードでビルドしてhexファイルが作られましたら、「ツール」メニュー中のArduinoISP(ATtiny85)を選択するとhexファイルが書き込まれます。
Atmel Studioの出力ウインドウにメッセージが出ますので、書き込まれていることを確認できます。

[参考にしたサイト]
ArduinoISPの設定方法についてはAnalogic Intelligence Z80-MBCの作成 其の参を、
Atmel StudioへのArduinoISPの設定方法についてはシナプスのハード製作記を参考にさせていただきました。ありがとうございます。

2020年8月9日日曜日

FM-7/77にGOTEKを接続する

FM-7やFM77にGOTEKを接続してみました

[12月6日追加]新基板のGOTEKの場合はこちらをご覧ください
[8月19日追加あり]

以前からHxCエミュレータには興味があったのですが、お遊びで試してみることができるような値段ではないので手を出さなかったのですが、低価格のGOTEKなら失敗してもあきらめがつくということで、2台入手してみました。
FlashFloppyというソフトの存在を知ったことも大きかったです。それまでは有料であるHxCのエミュレータをインストールしなければGOTEKは使えないものと思い込んでおりましたので。
さらにGOTEKは種類も多く、FM-7や77では2DDの720KBのものしか使えないのではないかと思っていたのですが、FlashFloppyをインストールするのであればどれでも良いのではないかと考えて、最安値に近いものを購入しました。

購入したのはSFR1M44-U100Kという型番のものです。オプションとしてOLEDディスプレイとロータリーエンコーダ(スイッチ付き)も入手しました。

FlashFloppyの入手・インストールやオプションの取り付け方等については先人の知恵をお借りしました。GOTEKやHxCというキーワードで検索すればたくさんヒットしますので、それらをご参照ください。
私は、特に「レトロなPCとか」の「FDDエミュレータのまとめ」を参考にさせていただきました。説明が具体的でかつ画像もありますので大変参考になりました。他には、「FlashFloppy Wiki」も参考にしました。ありがとうございました。


オプションのOLEDとロータリーエンコーダ(スイッチ付き)を増設しました。
画像にはありませんが、さらに圧電スピーカーも追加しました。


テスト風景です。自作のFDCカードからのフラットケーブルをそのままGOTEKに接続しています。カード上のStepDoubler機能はOFFにしています。
USBメモリ中に、F-BASIC30、Flex9、OS-9Level1、CP/M-80のシステムディスクのイメージファイル(D88形式をHFE形式に変換したもの)を入れて起動してみました。
どのシステムも正常に起動し、読み書きができました。




実際の使用風景です。このために最近入手したPC98用のFDDケースに収めています。GOTEKをドライブ0に、PC用のFDDをStepDoublerアダプタを通して接続してドライブ1に設定しています。
(OS-9を動作させるために、StepDoublerアダプタには7月19日のブログ「2DDドライブ用ステップ2倍化回路のその後」中の訂正を加えています。)



接続図です。


常用しているFM77AV40SXにも組み込んでみました。2DDファイルもOKでした。



訳が分からなくて苦労したことなど


ハードの設定やソフトのインストールなどは先人の知恵をお借りすることで、それ程苦労することはなかったのですが、イメージファイルをUSBメモリにインストールするところでは苦労しました。

HxCFloppyEmulator.exeでイメージファイルを作成する際の設定
[1]購入時の3桁7セグ表示の場合
 (1)使用するモードはIndexed Modeを選択
 (2)SDCard HxC Floppy Emyulator settingsとUSB HxC Floppy Emyulator settingsの設定では
 DoubleStepにチェックを入れない。
 Indexed Modeにチェックを入れる。
 2 drives emulationのチェックを外す。
以上の設定の上で(設定ファイルをUSBメモリにコピーする)、LoadでD88形式のディスクイメージファイルを指定してExportでHFE形式で書き出し、それをUSBメモリにコピーする。
その際のファイル名はDSKA0000.HFE,DSKA0001.HFE,...のように命名する。
7セグ上では000,001,...のように表示されるので、2つの押しボタンスイッチで選択する。

[2]OLEDに変更後の場合
 (1)使用するモードはNormal Modeを選択
 (2)settingsの設定では
 DoubleStepにチェックを入れない。
 Indexed ModeやAUTO BOOT Modeにチェックを入れない。
 2 drives emulationのチェックを外す。
以上の設定で(設定ファイルのコピーは不要)、LoadでD88形式のディスクイメージファイルを指定してExportでHFE形式で書き出し、それをUSBメモリにコピーする。
その際のファイル名は自由で良い。OLEDではそのままファイル名が表示される。

分かってしまえば簡単な手順なのですが、最初は何も分からない状態ですので、アップデートの必要がないのにしてみてエラーに悩んだり、あれこれ設定してみた間違った設定ファイルを書き込んでみたり、Modeと設定ファイルが合っていなかったりの試行錯誤の連続でした。
しかも、オプションのOLEDに交換するまでは3桁の7セグ表示ですので、表示の意味も良く分からない状態でインストールしようとしている者にとっては迷ってしまいがちです。

結果的には、何とか無事にインストールできて良かったです。

[8月19日追加]
上記はFM-7やFM77AVのような2Dの機種の場合です。
私が常用しているFM77AV40SXのような2DDの機種の場合は、次のようになります。
・元ファイルが2Dのイメージファイルの場合はDoubleStepにチェックを入れる。
・元ファイルが2DDのイメージファイルの場合はDoubleStepにチェックを入れない。


使用感など


まず、スピードはフロッピィとあまり変わらないようです。
また、音ですが、有り合わせの圧電スピーカーを付けたせいか、アクセス音はチリチリという小さな音が聞こえるだけですが、フロッピィのアクセス音は邪魔だったのでこれで良いかなと思います。
ただ一つ難点はOLEDの表示が老年者には小さすぎることですね...

何よりも良いのは、つまみを回すだけで起動するイメージファイルを選べることです。
私はメインでFlex9、時々OS-9やCP/M、ごくまれにFBasicを使っていますが、それらをUSBメモリに入れておけば、いちいちフロッピィを取り出す必要がありません。
ドライブ1にはフロッピィディスクをセットしてありますが、ドライブ2,3としてRAMディスクやWiindows上の仮想ドライブも使えますので、いよいよフロッピィと縁が切れるかもしれません。