2008/04/14(月)記法の謎

見出し記法(*)にて、*文字が表示されない?

sub title(?)に '*'が使えない???

以下いずれもダメだった...

	**fname_04_\*.c
	**{fname_07_*.c}
	**fname_09_{*}.c

※ファイル名はfnameではないですが, 仕事のアレなので置換しました:)


Windows PCにlocalでhttpd, adiaryを入れて, 記法になれるようにしつつ, 作業日誌にしています.
pukiwikiでやっていたけれども, 同じ項目上書きで時間軸方向の流れが読めなかったため,
日記にしてみました。

ただ、最終的には結果だけをまとめてみたいので、"+wiki"というのに惹かれて
adiaryを試しているのですが...

wikiのトピックに期待して記述していかないと, 結局グダグダになるようですね.把握.

それはそうとして, 分類にてネタが重複するケースも想定していただけると助かりますねぇ.
内部管理で可能なら対応いただけるといいのですが.
タイトルのケツに'[タグ]'という感じで連ねておこうかとは考えていますけどね-.

2008/04/13(日)キャラクタ液晶を使う

キャラクタLCDライブラリを使う

自作のLCDライブラリもありますが、フルアセンブラということもあり、WinAVRで即使用可能なものをググってみました。やっぱりありますよねぇ・・・。

あきぼう氏のコードを流用

あきぼうのAVRで遊ぶ日々を参照しましょう。AVRのLCD操作関数から、lcd.h, lcd.cとを持ってきます。

lcd.hで、使用する環境に合わせて変更するべき箇所があります。適当に抜粋します。

//#define LCD_RW_PORT	PORTB	// Port contains RS-pin
//#define LCD_RW_DDR	DDRB	// Port contains RS-pin
//#define LCD_RW		1		// portbitNo connected to LCD-RS
#define N_LINE	4
#define N_COL   20
#define lcd_4
//#define lcd_nostring

これ以外に、LCD接続ポートの設定があります。上記を引用したのは、RW信号を未使用とした設定だったからです。あと、データ信号が4本使用時のため。コメントアウトされているところに、F_CPUをMakefileで定義するように記述されています。WinAVRを入れたディレクトリのavr/include/avr/util/delay.h を見るとわかりますが、空回りでウェイトを作っています。割り込み処理が多い場合は、規定時間をより多く取ってしまいそうですね。本当はfree run coutnerでスマートに作りたいところですが... まぁいいでしょう.

上記シンボルたちが何者か、と、lcd.cをさっと眺めて見ましたが、4bit data時には結構冗長かもしれませんねぇ。自作コードをgccにポートしたほうが良いかもしれませんね。余力があればもってきましょう。

ポーリングしてねぇ(confirm)

順番にやればいいのにざっとフレームを作ろうとして敗退。実機動作確認に至らず。時間待ちナシのAD変換できたら順次回すことにして、表示タイミングとチャタリング除去にタイマを使う方向で検討中。無論、AD変換精度向上のために、sleep命令は使用することにしますよ...。

で、先ほどwarning/errorなし状態にできたのですが・・・。lcd.cは、ウェイトで逃げてますね('A`
RW信号使ってないとは思っていましたが、コード自体も検証されていない様子。エラー出るしー。やっぱり自前の持ってきたほうがよさそうだわ。ぁ-どうすっかな。とりあえずコレでやり過ごして、その後持ってきたほうがいいかな。どんどんと完成が遠のいているのがよくわかるぜw

計算方法

固定少数とかなんだとか....。今回ADW(10bit)と、Vrefが2.5Vということで、綺麗に整数演算を済ますことができないと思われます。仕方がないので、可能な限り有効桁数を持って生きつつも演算量を減らすことを考えたいと思うます。
おおまかな考え方だけ転記しておきます。適宜、読み替えたりしてください。もちろんADWは複数読み出してはいけませんよ。また、右詰めを想定しています。

	i = v / r
	v = 2.5  * (ADW / 1024)
	i = 2.5 / 1024 * ADW / 1 [A]
	i = 2.5 *1000 / 1024 * ADW [mA]
		=> 0x9C4 * ADW >> 10
		0x9C4 = ((0x27 << 6) | 0x04)

	i = ((0x27 * ADW) << 6 + (0x04 * ADW)) >> 10
		(0x27 * ADW) >> 4 + (0x04 * ADW) >> 10
		(0x27 * ADW) >> 4 + (ADW >> 8)

uint16_tだと16bit精度あるので, 10bit x 6bitまでならばoverflowしない、ということを用いています。uint16_t * uint16_tだと32bitの結果になるので、コードサイズが肥大化するのは目に見えていますから・・・。こういった制約がわかっている状況では、コードに素直に書く前に自力で展開してやることも必要ですネ。

ついでにr=10のときの数式も張っておきます。

R=10
	i = v / r
	v = 2.5 * (ADW / 1024)
	i = 2.5 / 1024 * ADW / 10 [A]
	i = 2.5 *100 / 1024 * ADW [mA]
		=> 0x0FA * ADW >> 10
		0x0FA = ((0x03 << 6) | 0x2A)
	i = ((0x03 * ADW) << 6 + (0x2A * ADW)) >> 10
		= ((0x03 * ADW) << 6 >> 10) + (0x2A * ADW) >> 10
		= ((0x03 * ADW) >>4) + (0x2A * ADW) >> 10

2008/04/12(土)kuroboxのディスクアクセスを減らす

kuroboxのディスクアクセスを減らす

何もしていないつもりでもディスクアクセスしていることがあります。daemonが何かしているような気がしますね。アクセス頻度が低い&ほぼローカルバックアップ目的で使っているので、寝ている間はHDDにもお休みいただこうかと思うわけですよ。トラフィックが増えてくれば考え直しorメインサーバへ移動させることも考えたいと思うます。
趣味でいじくっているだけで、まじめに遊ぶならレンタルサーバ使うのが妥当な気はしますけれどね…。

参照

http://www.revulo.com/kuro-box/Debian/DiskAccess.html

設定

syslogd の設定

/etc/init.d/sysklogd に以下の設定を追加する。

SYSLOGD="-m 0"

ただし、少し気になるところもあり、

start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD

こんな感じでもともと引数に使われている。モトの値が入っている場合、必要な引数まで消えていないかは心配ですね。とりあえず面倒だしこのまま適用(ぉ

cron

/etc/crontab の以下の行をコメントアウトする。ただし、/etc/cron.hourly/に何も入っていないこと。

17 *   * * *   root    run-parts --report /etc/cron.hourly

syslogd.confの設定

そもそもログファイルに吐き出すかどうかをソフト的に指定できるのだから、それを利用すべきだろう。という考えで、/etc/syslogd.conf に一行追加. 設定があっているか、一晩様子を見て判断しよう。
あまりわからずにテキトウにしているのはよろしくないのですがネェ…。

ntpd.* /dev/null

→ダメだ、ログが残る。というか、時計狂いすぎだろ(汗;


HDDアクセスがないときは寝てもらう~断念

noflushd のパッケージをインストールします。

# aptitude install noflushd

・・・あれ?

Setting up noflushd (2.7.5-6) ...
Stopping No Flush Daemon: noflushd.
Starting No Flush Daemon: Error: Don't know how to spindown /dev/sda
noflushd.

イマイチですね。hdparmでHDDを止める(うるめねっと技研 - Linux派 -)を見つけて、hdparmに変更することにしました。

>aptitude install hdparm
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done
Building tag database... Done
The following NEW packages will be installed:
  hdparm
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 63.4kB of archives. After unpacking 137kB will be used.
Writing extended state information... Done
Get:1 http://ftp.jp.debian.org etch/main hdparm 6.9-2 [63.4kB]
Fetched 63.4kB in 0s (118kB/s)
Selecting previously deselected package hdparm.
(Reading database ... 32034 files and directories currently installed.)
Unpacking hdparm (from .../archives/hdparm_6.9-2_arm.deb) ...
Setting up hdparm (6.9-2) ...

hdparmのマニュアル(JM)を参照して...

> hdparm -S 240 /dev/sda
/dev/sda:
 setting standby to 240 (20 minutes)
 HDIO_DRIVE_CMD(setidle1) failed: Invalid argument

ガーン。もしかしてIDEしか使えないのか?SATAになって、sdaとしか見えないから無理??同じことになっている先人がいる。解決策がなさげ?なので、とりあえずあきらめてみるか。。

時計のズレをマシにする~これも断念w~

どうも、32.768kHzの水晶を使っていないようなことが書かれている。そりゃ無理な話だろうなぁ。ということで、このスレを参考にadjtimex をinstall。

>aptitude install adjtimex
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done
Building tag database... Done
The following NEW packages will be installed:
  adjtimex
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 51.5kB of archives. After unpacking 172kB will be used.
Writing extended state information... Done
Get:1 http://ftp.jp.debian.org etch/main adjtimex 1.21.1-1 [51.5kB]
Fetched 51.5kB in 0s (73.3kB/s)
Preconfiguring packages ...
Selecting previously deselected package adjtimex.
(Reading database ... 32057 files and directories currently installed.)
Unpacking adjtimex (from .../adjtimex_1.21.1-1_arm.deb) ...
Setting up adjtimex (1.21.1-1) ...
Regulating system clock...done.
Comparing clocks (this will take 70 sec)...
^C
dpkg: error processing adjtimex (--configure):
 subprocess post-installation script killed by signal (Interrupt)
Errors were encountered while processing:
 adjtimex
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up adjtimex (1.21.1-1) ...
Regulating system clock...done.
Comparing clocks (this will take 70 sec)...
|<
[bf:Comparing clocks (this will take 70 sec)...] で固まる('A`<br>
dmesgに "decrementer frequency"がない... kernelのせいか?
とりあえず再起動してみよう... コレ消えるとなけるので保存してから..


*その他
**時計水晶更新とか電源増強とか
テキトウにあさっていたら、おもしろいところがあったので、メモ。ハードハックといえばいいのかしら??<br>
玄箱の32k源信交換とか。時計が狂いやすいのはモトがわるそうですね。
[http://www.finetune.jp/~lyuka/interests/pc/kurobox.html]

**Music Server化
CQのエレキジャック WebPageでもなんかやってますね。これはいいかも?<br>
[http://www.eleki-jack.com/Kurobox-pro2/2008/01/post-7.html]<br>
液晶に漢字がでているけれど、ドットマトリクス液晶ですかね。ドライバも書かれているのかー。
reproductionしておくのが良いかも知れませんなぁ。

2008/04/10(木)Coretex-M3基板[DWM][ARM][STMicro]

概要

DWM 2008年 5月号に ARM CoretexM3コアを使ったSTmicro社のマイコン基板が付属で着いてきた。外部水晶8MHzで、内部9逞倍の72MHzで走る。USBターゲットコントローラ内蔵でライブラリ群はSTマイクロが供給してくれているようだ。コレは便利。

Coretex-M3アーキテクチャ

ARMv5とは違い、レジスタバンクが消滅した。いわゆる、フツーのマイコン?って感じになってしまった。コンテキストスイッチの高速化に一約を担ったFIQバンクなんか、美味しかったのにな。
割り込みベクタも、IRQ一本で分岐するのではなく、ベクタテーブルが用意され、アドレスを格納するようになりました

なんというか、ARMらしさがなくなったような・・・。


テキトウに~

懸念事項

えらく叩いている人たちがいるようなので、ざっと目を通してから確認...

  • 加速度センサの出力にCをつけるべきだそうだが、そのパターンがないところか?
  • 基板裏のパターンがアホかwwww といえる幾何学模様だからか?
  • 付属の無料版ツールの制限が大きすぎて使えないことか?
mixi某コミュから
なんと、吉田基板でした。
しかも公開部分には回路図ナシ。

吉田氏の設計で怖いのはデバイスのデータシートを無視することにあります。
今回は本名での執筆です。 
結局またゴミ基板だったようですが、なんで決定前に評価しないのでしょうね。
基板のレイアウトが何も考えてなく、相変わらずデータシートは無視。
そしてレイアウト設計自体もお粗末ですね。

指折り4月10日を楽しみにしていましたが、期待を裏切られました。

2006年の失敗からは何も学習しなかった編集部。
(ヘッダピンが100ミル格子に乗りました!なんて本気で言いそうですが) 
2ちゃんねる現行スレ

C級出版の"ふろく"ぬ生めかしく騙る(6)を眺めてみる. 4/6に立ったスレのようだ. DWM基板は9日くらいから出てるかな?

  • 高速クロックの抵抗R2は誤り。パラではなくシリーズに入れるべき。パラな抵抗は内蔵している(typ.200kΩ)(STmicroのdatasheetより)

これはぶっちゃけ水晶発振回路の基礎が理解できていない私にはいいのか悪いのか。AVRで回路組むときも、Rなしでテキトウにやってるからなぁ。

  • ADC電源のアートワークがまずそう。高速クロックがそばを通っていたりする。
  • 加速度センサにCがついていない(min.1nF)
  • J2に引き出している加速度センサ信号のそばにSPI信号が挟まっている。

アナログ信号を粗末に扱われている、という感じですネェ。オマケ基板程度なので、マトモに製品クラスの品質で使うという目的には使っちゃダメよ、ということなんでしょうね。
まぁ、まだ改造ナシでうごかねぇwwwというレベルではないので問題ないんじゃないでしょうかね。一番の問題は、コンパイラのサイズ制限だろうな。。。


あとは、面倒だし貼り付け。

58 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 13:21:03 ID:pOxLrUn/
DW買ってきた、回路図・・・正論理でLEDつけてる 
40pinコネクタ(何故か両方と部番J2なんですが?) 
GNDが各々に有る!片方は2本もだ(w 
・・・でもさ、GNDの片方はADC_IN9とPE7の間に 
入れるのが普通じゃ?(+3.3V/GNDを並べるのも) 
リセットとモード設定まわりがアレげ・・・ 
USBのD+って+3.3Vに吊れば良いんだっけ? 

59 名前: 名無しさんから2ch各局… [sage] 投稿日: 2008/04/10(木) 13:47:00 ID:Ncabq3B6
>>58 
USBはそれでいいんだよ 

61 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 16:09:13 ID:pOxLrUn/
・・・SPIを、ADC_INの間に配置するか~? > J3 

65 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 19:12:04 ID:pOxLrUn/
・・・U2:LIS344ALHの16番N.C.なのに、+3.3Vに繋がってる(w 
ttp://www.st.com/stonline/products/literature/ds/14337/lis344alh.pdf 

68 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 19:15:11 ID:04neW0KS
>65 内部につながってないから問題なし 

72 名前: 71 [sage] 投稿日: 2008/04/10(木) 19:32:50 ID:pOxLrUn/
違った、繋がって無いのね・・・逆だと思ってた。orz 

73 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 19:41:34 ID:HeUh2nv7
>>72 
繋がっていない金属は GND なり Vcc につないで電圧を決めてやることも大事。by 伊藤先生%アースシリーズ 

78 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 21:12:19 ID:Wqy+QbRG
買ってきた。 
今回は付録を買ったんだと思いこむようにしたいぐらい本の内容は薄かった。 
来月号に期待しよう。 

79 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 21:52:08 ID:M8ZyFSQZ
買ってきた。オマイラが言うほど酷くないじゃん。 
2層ならこんなもんだろ。 

82 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 22:10:46 ID:M8ZyFSQZ
>>81 
長年この手の設計やってるが、あげつらうほどのことはない気がするけどね。 

83 名前: 774ワット発電中さん 投稿日: 2008/04/10(木) 22:16:47 ID:ZFrV8+iW
>65 
ツッコミ所は 
>A minimum capacitance of 1nF for Cload(x,y,z)is required 

なのに1000pFx3が何処にも見当たらない。 
電源のコンデンサも10μFのアルミ電解付けろって書いているのに0.1uFだけか。 

基板のGND引き回しと相まって、3Dセンサーからの読み込みは何読んでいるのか判らんだろ。 

84 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/10(木) 22:18:14 ID:RTP3Uht3
> 長年この手の設計やってる 

長年の間に、デバイスも変わってるし。 
今は普通にディジ・アナ混載だし。 
工作ちゃんの仲間だね。> 82 
老害。 

91 名前: 774ワット発電中さん [sage] 投稿日: 2008/04/11(金) 00:00:41 ID:AkjJY2OU
>>70 
VDDAとVREF+につながっているRは何かのおまじないですか? 

94 名前: 774ワット発電中さん 投稿日: 2008/04/11(金) 00:36:18 ID:zA/andxa
>91 
全く意味がない。 

> To improve conversion accuracy, the ADC has an independent power supply 
> that can be filtered separately, and shielded from noise on the PCB. 

とあるわけですが、基板上では大変な事になっています。 
ハイスピードクロックが直横を掠め、グランドも振ってくれています。 


開発環境

GCC4.3.0(March 5, 2008)からthumb-2対応の模様です.

Compiler and Library support for Thumb-2 and the ARMv7 architecture has been added.

scatter書いて、この石用のヘッダファイル作れば楽しめそうですね。実行バイナリさえ作れれば、ダウンロードはできる・・・んでしょうね??

ETM積んでいるのだから、デバッガ使いたいですよネェ... ARM7/9対応のmicro viewとかじゃダメなんだろうか。ダメだろうな。thumb-2対応のじゃないとだめなんだろうな.