2015年3月14日土曜日

FON2405EのGPIOの速度(すこし改善)

gpioコマンドを眺めていたら、
LED用のオプション「l」の他に
テストとして「w」があることにやっと気づいた。

そのままだと、1秒おきに1〜23までのGPIOの出力を変化させるだけなので、
少し変更して、特定のGPIOポートをパタパタさせるようにした。

user/rt2880_app/gpio内のgpio.c
gpio_test_write関数のgpio_write_initの後に
for(i=0; i< 1000; i++){
    gpio_write_bit(11,0);
    usleep(1);
    gpio_write_bit(11,1);
    usleep(1);
}

というのを挿入して、コンパイル。

 /opt/buildroot-gcc342/bin/mipsel-linux-gcc \
-I/home/adeno/fongpio/sdk3301/RT288x_SDK/source/linux-2.6.21.x/drivers/char \
-I/home/adeno/fongpio/sdk3301/RT288x_SDK/source/linux-2.6.21.x/include \
-L/home/adeno/fongpio/sdk3301/RT288x_SDK/source/linux-2.6.21.x/lib \
-o mygpio mygpio.c

 そして、mygpio wを実行してみると

おぉ!ちょっと速くなった! 4ms!!
100msとか780msから比べると激速だね!

1つをクロックとして、もう1つをデータとした場合、
下がクロック、上がデータ a(61h)をbit0から送った場合

クロックの立ち下がりで読み込んだとして、84msかかる。
ざっくり16文字×2行の液晶に表示する場合は、2.7秒近くかかることになるのか・・。
データを2ポートにすれば、 1.3秒くらい。
まだ遅いな。

クロックが一定であれば、UARTみたいにできるのだけど、
4msが8msになっている見えるところがある…。
さてどうしたものか

2015年3月10日火曜日

busyboxでttyのボーレートを変更したい

FON2405EのシリアルコンソールttyS1のボーレートを57600から9600に変更したかった。
ググるとsttyを使って〜とあったので、sttyを含めた形でカーネル再構築。

sttyコマンドを使ってボーレートを指定しても変化なかった。

他のプロセスで使用していると変更できないらしい。
シリアルコンソールを一時的に止めてみるかと
inittabを変更
sdk3301/RT288x_SDK/source/venders/Ralink/RT3052/inittab

ここにttyS1::respawn:/bin/shというのがある。
しかしいきなり変えるのも怖いので、
 ttyS1::askfirst:/sbin/getty 9600 ttyS1
とした。
別途gettyを含めて再構築。

結果・・・失敗です。なぜか57600で動きやがる。。。


2015年3月2日月曜日

いろいろな進捗

なかなか最近意識が発散気味なのだけれど、
いくつかやることを絞っていきたいと思う。

1.FONなどRT305x搭載のルーターの使い道
  勢いで入手したものもあり、現在4台。
  何に使うか。
  現状はキャラクタ液晶を接続できるように計画中。
  複数台の並列プログラミングとかもやってみたい

2.7セグLED基板のファーム開発
  I2C部分をまだ作っていない。
  ラズベリーパイに接続するために、この部分を作ろう。
  これは比較的早くできそう。

3.FPGAにオープンCPUコアを入れることをやってみたい

4.しりとりで用意したウィキペディアのデータを
  他の用途でも使う。

5.SDRでなにかやる?
  勢いで、DS-DT305を入手したけど・・・。


こんな感じだ。今月も頑張ろう。