goo blog サービス終了のお知らせ 

石原 博の覚書

電子工作に関する日々の覚書を記載します

avrcpm注意点2

2020-10-18 13:35:48 | 日記

4BIT DRAMの使用

https://github.com/petersieg/avrcpm を参考にさせて頂いてます。

config.incでは
===config.inc===
; Set this to 0, if you have a (one) DRAM chip whith 4 Bit data bus.
#define DRAM_8BIT 1

; Baudrate of serial port (console).
#define BAUD 9600

; I2C_SUPPORT defaults to 1 on 8-bit-ram systems and must be 0 on 4-bit-ram systems.
; Set this do 0, if you don't have  I2C peripherals and want to save some flash
; or use the I2C pins for other purposes.
#define I2C_SUPPORT
======================

となっています。私の場合、4BIT DRAMを使っていますので、
#define DRAM_8BIT 0
#define I2C_SUPPORT 0
とした訳ですが、動きません。

調べたところinit.asmでは以下のようになっており、4BITの場合PortB, PortCの入出力設定がされていません。

ご注意ください。

===init.asm(修正前)===
#if I2C_SUPPORT
 ldi temp,~((1<<SCL)|(1<<SDA))
 out DDRC,temp
#endif
#if DRAM_8BIT
 ldi temp,~(1<<RXD)
 out DDRB,temp
#endif
============================

===init.asm(修正後)===
#if I2C_SUPPORT
 ldi temp,~((1<<SCL)|(1<<SDA))
 out DDRC,temp
#else
 out DDRC, _255
#endif
#if DRAM_8BIT
 ldi temp,~(1<<RXD)
 out DDRB,temp
#else
 out DDRB, _255
#endif
============================


avrcpm注意点1

2020-10-18 10:00:48 | 日記

avrcpmといえば、最初に発表されたこのページの手書き回路図が有名です。 (https://spritesmods.com/?art=avrcpm)

atmega88を3.3v 20MHzで、本来5Vが必要なDRAMを3.3vで動かすといった無理矢理な部分はありますが、 AVRと256kx4bitのDRAM1個、ソフトウエアでリフレッシュという極限までシンプルにした構成でありながら SDRAMをディスク代わりに使用してCP/Mが動くということに驚いたものです。

その後いくつかのサイトで別のバージョンが公表されていますが、注意点があります。(私はhttps://github.com/petersieg/avrcpmを参考にしてはまりました)

DRAM周りの回路が変更になり、ソフトウエアも変更されています。 最初の手書き回路図があまりに印象的なので、そのまま作成し、 ソフトウエアはバグが少ないだろうと最近のものを使用すると動きません。

Yoshiさんのサイト(http://yoshi-s.cocolog-nifty.com/cpu/2011/10/avr-cpm.html)に もavrcpm_upd2.zipはオリジナルから配線の変更有とありますが、(githubに移行して消したのか)petersiegのサイトにあったavrcpm_upd2.zip自身すでにダウンロード出来なくなっているため、なかなか気づけません。

ご注意ください。

ポート
PC0 D0 D0
PC1 W D1
PC2 D1 D2
PC3 D3 D3
PC4 D2 W
PC5 CAS CAS