LoginSignup
0
0

[ハード] SRAMで遊んでみる (SRM2B256SLMX55)

Last updated at Posted at 2023-09-25
  • SRAM、スタティックRAM。静的。フリップフロップ(FF)で論理的に記憶しているのでDRAMの様に記憶保持動作、リフレッシュが不要。
  • 高速動作するのでMPUの二次キャッシュに使われたりするもののDRAMに比べて構造が複雑なので大容量には向かないメモリ。WSやPCには構造の簡単なDRAMを使用。
  • このSRM2B256SLMX55(60円。安い..)はアドレスバスがA0~A14まで15本あるので2^15で32768アドレス。
  • 1アドレス当たり8BIT(I/Oバスが8ピン)あるので32768アドレス*8BITで262144BIT。
    8BITで1バイトなので262144ビット/8BITで32Kバイト。1980年代のPCのメモリ容量相当。
    この用量では高解像度の写真データは入らないがログデータ等記録する分には十分。
  • PCへのデータ受け渡しはSDカードなど利用すればスマートだが特にアセンブリでは結構難しいのでデータはSRAMに入れてRS232C経由で受け渡しすると簡単。
    img020.jpg
  • ブレッドボードで試験
    P1130468.JPG
  • 表面実装用チップなのでブレッドボード用に拡張する基盤使用。このはんだ付けは意外と簡単。
  • CSとアドレスピンは全てGNDに接続しアドレスは0H番地固定。
  • 逆にVccに接続すれば8000H番地に書き込み。実際には別途カウンタ等に接続して自動的にアドレスを変える。
  • I/OはI/O1,2,3の3本使用なので3Bit書き込める。OE、WEもPICに接続。
  • 書き込んだデータと比べて合致しているとLED点灯。
  • I/Oポートは常時入力モードにしておいて書き込み時に出力有効(OE,WE HI)モードに変更してからIOポートを出力モードに変更する。
    SRAMTEST.jpg
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; inf102 / SRAM SRM2B256SLMX55 TEST FOR 16F88

	__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO 
	__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF

	LIST		P=PIC16F88
	INCLUDE		P16F88.INC

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	CBLOCK	020h
	CODEA
	ENDC
	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BSF		STATUS,RP0

	CLRF	OSCCON			; 31.25KHz
	CLRF	ANSEL
	MOVLW	0XFF
	MOVWF	TRISA			; IOPORT INPUT MODE
	CLRF	TRISB			; 0=WE 1=OE 3=LED
	
	BCF		STATUS,RP0 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;WRITE
	BSF		PORTB,0			; OE,WE HI(output disable)
	BSF		PORTB,1

	BSF		STATUS,RP0		; IOPORT OUT MODE
	CLRF	TRISA
	BCF		STATUS,RP0 	

	MOVLW	B'000000001'
	MOVWF	PORTA 			; ADRESS 0H DATA 1write
	
	BCF		PORTB,0			; WE LOW
	BSF		PORTB,0			; WE HI

	BSF		STATUS,RP0		; INPUT MODE
	MOVLW	0XFF
	MOVWF	PORTA
	BCF		STATUS,RP0 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	BCF		PORTB,3			; LED OFF
	CLRF	PORTA

;READ
	BSF		STATUS,RP0		; INPUT MODE
	MOVLW	0XFF
	MOVWF	PORTA
	BCF		STATUS,RP0 

	BCF		PORTB,1 		; OE LOW
	BSF		PORTB,0			; WE HI
	MOVF	PORTA,W			; ADRESS 0h DATA -> W
	MOVWF	CODEA

	BTFSC	CODEA,0			; BIT0 [1] CHK.
	BSF		PORTB,3			; LED ON

	GOTO	$


	END
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0