SlideShare ist ein Scribd-Unternehmen logo
1 von 14
メモリと遊んでみた
LT駆動開発 26 - EXTENDED 報告会 後朝祭
AKIRA345
概要
• 去年の8月、OSC島根に遠征に行ったついでに、島根にあるパーツ屋さん
でSRAMを入手。
• 近所の大学の為に電子部品を店頭にむき出しで展示していました。
• 展示されている部品に直感的にSRAMだと踏んで、交渉の末Getしました。
• 以前実験したDRAMより扱いやすいです。
メモリの種類
今回はこれ。
SRAM?
• コンピュータなどに使用される半導体メモリの1種である。
ダイナミックRAM (DRAM) とは異なり、定期的なリフレッシュ(記憶保持動
作)が不要であるため「スタティック」と呼ばれる。
特徴
• DRAMのリフレッシュ動作などが不要で、制御が簡単
• データの格納されているアドレスを指定して読み書き
• 書き換え回数の制限がない
• バッテリで記憶を保持できる
• DRAMに比べ構成するトランジスタの量が多いので高価
• 高速に動作ができる
• 容量が大きくなると、それだけ格納するビット数が増えるので、ピン数が増
える。
用途
• サターンやファミコンのバックアップメモリ
• CPUの一時キャッシュ
• BIOSの記録保持
• マイコンのメモリや液晶のVRAM
• プリンタやCDドライブのキャッシュメモリ
• ゲーム機のRAMとして
まずは使い方を調査
• かなり古いSRAMだが、ネットでググればデータシートが出てくる。
データ出力ON!
アドレス指定
8bitでデータ出力
書き込みは禁止にしておく。
チップセレクトON
制御が単純!
ここでARDUINOの登場
• とりあえず、アドレスを指定して、チップをセレクト、書き込み禁止にして
出力有効にするとデータが出る。というのは分かったので、さくっと実装。
• 例によってArduinoの動作が遅い為に動作しないという罠
• アドレス指定に十進数を用いて、SRAMのアドレス(ビット指定)にするのに
真面目に10進->2進変換ロジックを組むも遅いので動作せず(汗
• いくつか高速化のロジックを参考にするもビット演算分かんねー
• 実はArduinoのポートに10進数投げつけても、問題なかった。
少し説明
0
1
2
3
4
5
6
7
PortZ
• PortZ(仮称)という変数(正確にはレジスタ)が、マイコンの
物理的なPINに対応。
• 例では PortZ = “B0110101”
のように2進数を代入するように書かれている。
• この変数に値を渡すときは2進数じゃないとダメ?
• 実際はPortZ = 10
と渡しても、内部ではB00001010になるので、直接渡して
問題ないのでした。
10年以上C言語なんて触ってなかったから
忘れてたよ!!
なんだかんだと3日ばかし費やす・・・
• SRAMに読み書きすることに成功!!
https://github.com/akira345/arduino_sram_test/
分かったこと
• 予想通り、制御はDRAMに比べ圧倒的に楽。
• DRAMと違いデータが8bitパラレルで出てくれるのも楽。
• ちゃんとバッテリで保持できた。
• 数十年はむき出しで放置されていたと思われるけど、意外に壊れないもん
だ。
• 古いSRAMなので、5Vだし動作も遅く、現代ではあまり使われないけど、
Arduinoなどで遊ぶには、80年代の古いものが扱いやすい。
• 最近のは3Vだったり高速だったり制御が複雑だったり・・
• DRAMに比べアドレスバス、データバスとPIN数が多いので配線が酷い
まとめ
• 興味関心を持ったことを調べるのは楽しい。
• 頭で理解した内容が合っているのか?の検証は割と苦労する。
• 苦労した分動くとやっぱり楽しい!!
• 圧倒的に基礎知識が不足している。今回ロジックではなく一番苦労したの
はC言語の扱い。
• メモリ単品で扱うことは少ないのか、当たり前すぎるのか、具体的にどうや
ればいいのか?という突っ込んだ説明は例によって見当たらず・・・
時間が有ればデモ

Weitere ähnliche Inhalte

Mehr von Akira Kaneda

アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)Akira Kaneda
 
ESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoTESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoTAkira Kaneda
 
ジャンクのススメ(公開用)
ジャンクのススメ(公開用)ジャンクのススメ(公開用)
ジャンクのススメ(公開用)Akira Kaneda
 
基板から回路図を起こしてみよう
基板から回路図を起こしてみよう基板から回路図を起こしてみよう
基板から回路図を起こしてみようAkira Kaneda
 
Oss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみたOss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみたAkira Kaneda
 
Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。Akira Kaneda
 
Open nebulaのご紹介
Open nebulaのご紹介Open nebulaのご紹介
Open nebulaのご紹介Akira Kaneda
 
自宅サーバにHyper v環境
自宅サーバにHyper v環境自宅サーバにHyper v環境
自宅サーバにHyper v環境Akira Kaneda
 
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)Akira Kaneda
 
ルータでLチカしてみた
ルータでLチカしてみたルータでLチカしてみた
ルータでLチカしてみたAkira Kaneda
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介Akira Kaneda
 
Hiroshima.rbの歴史
Hiroshima.rbの歴史Hiroshima.rbの歴史
Hiroshima.rbの歴史Akira Kaneda
 
電光掲示板を作ってみた
電光掲示板を作ってみた電光掲示板を作ってみた
電光掲示板を作ってみたAkira Kaneda
 
Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみたAkira Kaneda
 
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!Akira Kaneda
 
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたPhpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたAkira Kaneda
 

Mehr von Akira Kaneda (17)

アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)
 
ESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoTESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoT
 
ジャンクのススメ(公開用)
ジャンクのススメ(公開用)ジャンクのススメ(公開用)
ジャンクのススメ(公開用)
 
基板から回路図を起こしてみよう
基板から回路図を起こしてみよう基板から回路図を起こしてみよう
基板から回路図を起こしてみよう
 
Oss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみたOss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみた
 
Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。
 
Open nebulaのご紹介
Open nebulaのご紹介Open nebulaのご紹介
Open nebulaのご紹介
 
自宅サーバにHyper v環境
自宅サーバにHyper v環境自宅サーバにHyper v環境
自宅サーバにHyper v環境
 
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)
 
ルータでLチカしてみた
ルータでLチカしてみたルータでLチカしてみた
ルータでLチカしてみた
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介
 
Hiroshima.rbの歴史
Hiroshima.rbの歴史Hiroshima.rbの歴史
Hiroshima.rbの歴史
 
電光掲示板を作ってみた
電光掲示板を作ってみた電光掲示板を作ってみた
電光掲示板を作ってみた
 
Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみた
 
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!
 
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたPhpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
 
Osc2012 hiroshima
Osc2012 hiroshimaOsc2012 hiroshima
Osc2012 hiroshima
 

メモリと遊んでみた Pert2