[過去ログ] Arduino初心者熱烈大歓迎質問スレ part25 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
580
(2): 2019/12/06(金)00:38 ID:wUDqCI/2(1/4) AAS
>>572
案内どうもです。はるか昔、8bitPCで拡張カードを作りたかったことを今実践しています。

それで>>546のリンク画像の「黒い基板」でやりたかったことは8ビットPCで、CPUの切替でした。
リンク先の画像に写ってるFM-7と言う8ビットPCはメインCPU(MPU)が6809だけど動作しながら、
オプションのZ80とCPUが交代できる仕様です。今回はZ80の代わりに「Arduino」を使って切り替える
実験をしてます。

それで、「6809 → Arduino」はサンプルがあったので実現できてますけど、その状態から再度6809に
戻すことで躓いています。動作させながら CPU(MPU)の切替は面白い試みですがハードルも高い感じです。
理由は切替のフラグを74LS74で持ってるようですが、既定値を書いて「Arduino → 6809」に戻す際に
ソフトで処理してるので、Arduino と 6809 でバスが衝突してるのではと推測しています。ですので
省9
589
(2): 580 2019/12/06(金)14:50 ID:wUDqCI/2(2/4) AAS
結果報告をします。アドバイスを提示してくれた方へ、ありがとうございました。
下のようにインラインアセンブラのコードを入れましたけどソフトでは無理のようです。

asm("DDRG = B00000000"); // data D40 EB port inputmode
asm("DDRF = B00000000"); // address(0-7) port inputmode
asm("DDRK = B00000000"); // address(8-15) port inputmode
asm("DDRL = B00000000"); // data D43 RWB=WRITE port inputmode
asm("DDRC = B00000000"); // data(30-37) port inputmode

>>581
>やっと具体的な機種名出たか
画像から判る方はいると思いましたし黒い基板の製作者に迷惑が及ぶのではと考え当初は
省7
599
(2): 2019/12/06(金)19:03 ID:wUDqCI/2(3/4) AAS
>>591
下のCPUの状態(遷移)は74LS74が保持してることを前提として

1)6809 の停止は「POKE &HFD05、1」と言う命令で FM-7 自体が停止状況を作り出す(LED点灯)
その後 6809 が停止した状態では MEGA2560 が FM-7 のバスを支配下に置きメモリ等に読み書き可能

2)6809 が停止した状態から同じアドレスに MEGA2560 が「0」を書き込んで 6809 の停止状態を解除する(LED消灯)
3)しかし「0」を書き込んで 6809 が動きだした時点で MEGA2560 は未だアドレスバス等でOUTPUTの状態を維持し
信号を出しているので バス が衝突してることは確かなのではと考えてる。つまり MEGA2560 が 6809 の停止解除後の
7命令以内であれば 6809 が停止を続けてると言う訳ではなく、解除したと同時に動作は始めてる。

自分としては、その状況が有っても、運良く大きな支障(影響)もなく 6809 に制御が戻る可能性に期待したけど
確かめてみると、そうは問屋下ろさなかったと言う結論になりました。
省6
625: 2019/12/06(金)23:15 ID:wUDqCI/2(4/4) AAS
最終的にピンモードの高速変換を下のようにして(インラインアセンブラなのか?)
1)MEGA2560 使った FM-7 のメモリに書き込みは成功(これは前から成功例あり)
DDRG = DDRG | B00000000; // data D40 EB port inputmode
DDRF = DDRF | B00000000; // address(0-7) port inputmode
DDRK = DDRK | B00000000; // address(8-15) port inputmode
DDRL = DDRL | B00000000; // data D43 RWB=WRITE port inputmode
DDRC = DDRC | B00000000; // data(30-37) port inputmode

2)この後ホットスタートで 6809 に制御が戻り、モニタコマンドでメモリの変更を10回程確認

3)しかし FM-7 のメモリに書いた(テスト)プログラムの起動は BASIC の EXEC コマンドでも
モニタの G コマンド でも失敗。最終的に↑がしたかった。ソフト的な面では、この辺りが限界かなと。
省3
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.056s