CEVRZA1L用ケース試作1号

基板剥き出しは使い勝手が悪いのでケースを試作した。
素材は4mm厚のシナベニヤ。

内面

  • 長辺側は放熱のためオープンとした。
  • ハンドメイドなので工業製品と違ってギッチギチに間隙なく作れる。

外観

左側面 右側面

  • Ether と Coresight(JTAG)の信号を出せるように、両サイドに切欠き。

底面

  • uSD-Cardを出し入れできるように切欠きを設けた。すこし狭いが Hot-swap非対応で実装しているので差し替え頻度が低いので問題ない。

CEVRZA1L実験2

SF_EXTCNの使い道

急に思い立ったのでメモ。

機能は意図不明と書いてしまったSF_EXTCNだが、
TH7(/RES) ASSERT しておけばRZからアクセスされないので、
TH1〜6でMX25L1633をSPI経由で書き込み可能。

つまり、Flash吹っ飛ばしても、SPI信号発射できる装置があれば書き込み可能。
秋月のFT232HとかFT2232Dで書けるわけだ。

これは、後日試す。Protocol Overhead がないので、Coresight経由より速度は出るかも。
世の中、私のように仕事でJTAG Debuggerを自由に使用できる人間ばかりではないので、吹っ飛ばした後の低価格なリカバリ手段はあると救われる場合も。

uSD/MMC周辺調査

Kernel側もSD Cardではなく、MMCとして実装されているっぽい。

CEVRZA1L実験1

CEVRZA1L購入・開封

内需拡大のため、国産SoC で Beaglebone みたいなの出ないかなと思っていた。
条件は

  • \10,000 以内
  • ARMv7A architecture
  • Ethernet
  • USB-UART on board
  • USB Host on board
  • SD/uSD slot on board
  • JTAG Connector(Coresight) ・・・職業病だ

Renesas + Computex から、やっとでたCEV-RZ/A1Lを秋に購入していたが、多忙で動作確認できず。
やっと開封

uSD Card I/Fの取り付け

実は正式サポートされていない。基板にパターンだけある。
これを使用すると、OptionのWiFi Boardが使用できなくなる。
私は使わないので関係ない。
(ボード本体と同額なので高くて手が出ない)

Hot Plug用の電源制御IC? について
「Hot Plug しない。これはSystem Disk扱い。」
と割り切ってしまえば短絡実装でよさそう。

Webで先駆者を発見。
http://www.si-linux.co.jp/techinfo/index.php?CEV-RZ%2FA1L

同様に改造。私は、お守り的なC45は未実装。

  • L9 短絡実装
  • CN8 実装(秋月で購入)
  • R49 10KΩ実装
  • U14 1-5pin 短絡実装

Reset Switchの取り付け

SF_EXTCN は SerialFlashの信号とResetが引き出してあるが、OnBoard FlashをDisableするSW/Jumperがないので意図不明。

  • 7-9間をShortするSwitchを取り付けて、Reset操作を容易に改造。

Linux kernel からの MMC(uSD)認識

先駆者の実験通り、Pre-built kernelで認識できる。

u-boot に mmc commandは実装されていない。
ここはさほど難しくないので、自分でPatchしてしまえばいい。

LCD I/F周辺

HW Manualによると Ethernet と Pin Muxのため、併用できない。
Orz

RZA1L SoCのマニュアルを見ると、全部ダメではなく、
RGB888のときGreenだけは出せるみたいな配置。
Pixel clock や VSync/HSyncあたりは取れそう。
モノクロVGA接続はできそう。

要精密調査。

ToDo

  • uSD からのSystem(Kernel, ramdisk) Load
    • u-boot の mmc 拡張
    • u-boot scriptの調整
  • Minimal Linux実験
    • Config調整
  • BSDの実装
  • RTOSの実装実験

SDCCのVersion毎に処理を変える

諸事情で8051系MCUなぞいじっている。かの有名なFX2LPなワケだが。
Keil C51 の 4KB無償評価の壁に早くもぶつかったので SDCC に切り替え。

しかし、サンプルの多い SDCC 2.x と SDCC 3.x で基本型の定義が違う

  • xdata (SDCC2)
    • __xdata (SDCC3)
  • code (SDCC2)
    • __code (SDCC3)
special sdcc keywords which are not preceded by a double underscore are obsoleted (removed) in version
3.2.0 and higher. See section 3.1 Standard-Compliance.

つうことで SDCC 3.2.0 以降は ANSII非標準はぜんぶ'__'を接頭句に変更したっぽい。

で、こうなった。

#if SDCC >= 320
extern BYTE EZUSB_WriteI2C_(BYTE addr, BYTE length, BYTE __xdata * dat);
extern BYTE EZUSB_ReadI2C_(BYTE addr, BYTE length, BYTE __xdata * dat);
extern BYTE EZUSB_WriteI2C(BYTE addr, BYTE length, BYTE __xdata * dat);
extern BYTE EZUSB_ReadI2C(BYTE addr, BYTE length, BYTE __xdata * dat);
extern void EZUSB_WaitForEEPROMWrite(BYTE addr);
#else //#if SDCC >= 320
extern BYTE EZUSB_WriteI2C_(BYTE addr, BYTE length, BYTE xdata * dat);
extern BYTE EZUSB_ReadI2C_(BYTE addr, BYTE length, BYTE xdata * dat);
extern BYTE EZUSB_WriteI2C(BYTE addr, BYTE length, BYTE xdata * dat);
extern BYTE EZUSB_ReadI2C(BYTE addr, BYTE length, BYTE xdata * dat);
extern void EZUSB_WaitForEEPROMWrite(BYTE addr);
#endif //#if SDCC >= 320

これで SDCC 2/3 共用となるハズ。

Digital電源starter kit

ET2012と併催されていたMicrochip Japanのデジタル電源セミナに参加したら
スターターキットを貰った。

PIC32以外は手を出さないつもりだったが、
DSP, VLIW, AGU の話を聞いて興味がでてしまった。

まぁ細々動作検証する所存。

QFP Package の Middle to High performance ARM SoC

32BIT One-Chip-uC が100円台

仕事と同じKnowledgeで扱えるのがGood。
DIPだからブレッドでいけるし。