フォト
無料ブログはココログ

« 2018年8月 | トップページ | 2018年10月 »

2018年9月

2018年9月29日 (土)

「わたし、管理職になりたくありません」

20~30代が出世を望まなくなってきた本質
「わたし、管理職になりたくありません」

東洋経済ONLINE (2017/12/04 )

 この記事は、年寄りの読者を想定しているようだ。 何を今時感がある。

 部下から見ると、今の管理職は厳しくなるビジネス環境のしわ寄せを一身に抱え込まされている存在に見えています。にもかかわらず、それに見合うだけの報酬を得られない。おカネという報酬だけでなく、管理職だからこその喜びや意義ある貢献という報酬が見えてこない。自分の生活を犠牲にしてまで、そんな負荷を背負う存在にはなりたくない。これが2つ目の理由です。

 年寄りが若手の価値観が理解できないのは今に始まったことではなくいつの世もそうだ。 若いころ新人類と呼ばれた年寄りも歳をとって若手の価値観が理解できなくなったと考えることもできるのだが...。

 しかし、実は年寄りは分かっているはずだ。 少なくとも若手は自分たちの価値観とは次元が違うと思っている。

 新人類世代(年寄り)は一生懸命団塊世代の価値観に合わせてきたのに、それが否定されるのが辛い気持ちはある。 しかし、既にアラ定だから覚悟はできているのではないだろうか。

 それより厄介なのは、その下のバブル世代かもしれない。 まだ、あきらめ切れないので古い価値観にしがみつこうとしているのではないだろうか。

 と考えると、自分の価値観が唯一の価値観ではないことを受け入れる覚悟ができた新人類世代(年寄り)は、多様化した価値観を持つ若い世代を応援するという、活躍の場があるのではないだろうか。 (年寄りの価値観を押し付けないように。)

ライタの高橋克徳氏は、

管理職を魅力的な存在に変えられるのか、若手の価値観や意識を変えるのか、あるいは管理職という存在を軸に動かしてきた企業システムそのものあり方を根幹から変えるべきなのか。少なくとも、このままでは今の管理職を中心にしたマネジメント構造を維持するのは難しくなるでしょうし、自らリーダーシップをとる人も生まれなくなります。

とおっしゃるのだが、若手の価値観や意識を変えるという発想はキモチ悪いなあ。

 同じ変えるなら年寄りの価値観や意識を変えた方が良いのではないだろうか。 年寄りの方が早く死ぬ。 長生きする若者が年寄りに合わせるのは不合理だ。 それに、これからの社会を担うのは若者たちで年寄りではない。

 年寄りは自分たちの価値観を否定されたくないのだろうが、普通に考えて、

  • 負担が多い
  • 給料安い
  • やりがいなさそう

な仕事を誰がやりたいのだろうか。こんな仕事だったら、年寄りでもやりたくないはずだ。

 ところが、やりたくない仕事を乗り越えてきた年寄りは既得権を得てしまった。 そして、その既得権を賄っているのは若者たちだ。 だから、若者たちの気持ちはわかるけど、やりたくないと言ってもらっては困る。 

 この記事のターゲットは年寄だから、高橋克徳氏は読者の年寄に気を遣っているのだろう。


最近の投稿】【2017の投稿】【2016の投稿】【2015の投稿

 

 

 

2018年9月27日 (木)

女性が昇任したくない理由 <価値観の多様化にフォーカスすべき>

"昇進はまっぴら"女性社員低モチベの元凶
男勝りな女性管理職は女性に不人気

PRESIDENT Online 小島明子(日本総研) 

 この記事は

を基に女性の管理職に対する認識と女性のキャリアアップ支援ついて論じてある。

の中で女性が「管理職への登用を希望しない理由」の調査結果がある。


↑(https://president.ismcdn.jp/mwimgs/6/0/-/img_60ca8e442101f456750c2f6b86ebf1c473617.jpg)

トップ3は

  1. 48.4% 出世・昇進に対して関心が無い
  2. 47.8% 私生活(育児・介護含む)の時間を重視したい
  3. 45.2% 長時間労働を前提とした働き方は望まない

 この問題は女性登用という観点だけではなくもっと一般的な問題ではないかと思う。

 管理職への登用を希望しない理由をみると、そのまま男性が登用を望まない理由と同じではないだろうか。 男社会では、管理職への登用を望む者は、社畜になることを求められ、生産性の低い長時間労働や無慈悲な単身赴任に耐える必要があった。(今でも) 一方で、管理職への登用を望まなければ地位や名誉、高給を得ることができなかった。

 これが昭和の男社会の唯一の価値観で、管理職になること(上位の役職に就くこと)に価値があるとされていた。

 若者を中心に価値観が多様化しいるが、男社会はこれを認めようとしなかった。(今でも)
単一の価値観を受け入れて社畜になるという選択をした者にとっては、価値観の多様化は受け入れられない。 また、単一の価値観を受け入れた者が管理職、経営層に上り詰めているから、一向に価値観は多様化しない。

 最近になって、政府主導で女性登用という外圧が発生したため、女性の価値観と昭和の男社会の価値観のズレが顕在化している。 これが、この記事の内容であろう。

 しかし、ズレているのは女性の価値観だけではなく、既に多くの人の価値観がズレているのではないだろうか。 昭和の男社会の価値観に従って管理職になることで得る利益は払う犠牲を考えるとペイしない人は多くなっている。

 女性には「ペイしない」と発言する機会を与えられたと考えることもできる。しかし、「ペイしない」と言い出せずにいる男性は多いのではないだろうか。

 女性登用の問題は単に女性の価値観にフォーカスするのではなく、多様な価値観を容認し、なお成果を上げられる社会にすることを考えるべきである。

 女性の価値観にフォーカスするのではなく、その先の価値観の多様化を議論しなければ問題を見誤ると思う。


最近の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月25日 (火)

モモ <時間泥棒の正体は自分自身>

モモ ミヒャエル・エンデ 岩波書店 

Photo

 どこから来たのかわからない不思議な女の子が灰色の男たちに盗まれた時間を取り返すお話。

 作者の後書きには

するとなぞめいた旅行者は、もうひとことつけくわえたのですが、そのことばをわたしは読者にお伝えしなければと思うのです。
「わたしはいまの話を、」とそのひとは言いました。「過去におこったことのように話しましたね。でもそれを将来おこることとしてお話ししてもよかったんですよ。わたしにとっては、どちらでもそう大きなちがいはありません。」

と書かれている。 昔の話ではなく未来の話であることを示唆しているようだ。

 この本の初版は1973年、日本語訳は1976年らしい。 読んでみるとまるで30年後を予言していたかのようだ。 気づかないうちに灰色の男たちに時間を盗まれているのかもしれないと思った。

ところで、

日本マイクロソフト マイクロソフトテクノロジセンター長 澤円氏は 

日本企業は「礼儀正しく時間を奪う」

とおっしゃる。

 現在の「灰色の男たち」とは自分自身のことで互いに他人の時間を奪っているのかもしれない。 物語の中の「灰色の男」と違うのは礼儀正しいことだ。多分悪意もない。

 澤円氏のところにバリバリの日本企業からインターンとして派遣されている人がいるそうだ。 澤円氏曰く、

そして続いて言ったのが「会議でみなさん発言されるんですね」です。なんとなくその辺から雲行きが怪しくなってきますね。次の一言が僕の度肝を抜きました。 「私は会議でなにかが決まるのを初めて見ました」。

「はぁ? じゃあ会議でなにするの?」と聞いたら、「その会議に出ている偉い人が喋っているのを一生懸命に聞いてメモをとるのが会議」だと。本当に会議で発言した記憶がないって、僕に言ったんですよ。

う~ん。笑えない。

 物語の中では灰色の男たちが会議をしている場面があるが、灰色の男たちはちゃんと発言していた。

 我々は、灰色の男たちに時間を盗まれる以前に、どこかに捨てているのかもしれない。


最近の投稿】【最近の書籍・雑誌】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月23日 (日)

奇跡のレッスン <日本の教育への強烈な批判かも>

 NHK  Eテレの「奇跡のレッスン」は色々な分野の超有名コーチが中学生や小学生を1週間指導するという番組。 招かれるコーチは外国人が多くコーチとして実績の残している人だ。

 この番組に登場するコーチは、スポーツだけでなく吹奏楽やダンス、アートまで様々だが、コーチが子供たちに共通して教えることがある。

 それは、「自分で考えろ」だ。

 番組を見る限り、子供たちを普段指導している日本人のコーチは叱咤激励型(軍隊型)が多い。 直接的な指示が多く子供たちが失敗すると叱責する。 「何で失敗したのか、考えてみろ!!」のようなコーチもいる。

 子供たちは、叱責されるのは嫌だから、コーチの指示どおりにしようとするのだが、センスがある子や要領がいい子は、指示の理由を考えることもできる。 しかし、要領が悪い子は、指示の理由を考えることができないようだ。

では、デンマークのソーレン・シモンセン氏が中学生にハンドボールを指導するという内容だった。

 このコーチは部活だけではなく、数学や理科の授業も見学していた。 そして、数学の先生に、生徒達は授業の意味(内容ではなく)を理解しているのか尋ねていた。 その数学の先生は不意を突かれたようだった。 教育の現場はそういうものかもしれない。

 日本の教育には、なぜこの授業が必要かについて教えるという意識が無い。

 明治以降の教育は、富国強兵のための教育だ。 上司・上官の命令を正しく理解し、正確に実行する人を育てることが重要だったから、画一的、強制的な教育の方が合理的だ。 バブル崩壊まで有効に機能した。 だから、スポーツの指導が軍隊式になるのも当然だろう。 指導者は指揮官だから命令し、プレーヤーは兵隊だから指示を待つ。

 多くの国民は、画一的、強制的な教育を受けてきたから、指示を待つようになっている。

 大学進学率が低かったころ、大学はエリートの養成機関だった。 国や企業を担う人材、つまり、自ら判断できる人材を育成していたのだろう。 少なくとも、育成すべき人材像は明確だったはずだ。

 時は下り大学進学率が上がって、学生のほとんどが指示待ちになったときに、大学は育成すべき人材像を持っていたのだろうか。そして今それを持っているのだろうか。

 大学はもはやエリート養成機関ではないから、指示待ち人材の供給機関だと開き直るのだろうか。

 奇跡のレッスンは一見スポーツ指導のように見えるが、実は日本の教育への強烈な批判なのかもしれない。

 だとるすと、やるな!Eテレ。


最近の投稿】【最近の映画・テレビ】【2017の投稿】【2016の投稿】【2015の投稿


2018年9月21日 (金)

Bus pirate(4) <スクリプトを動かしてみる>

相も変わらず Bus Pirateで遊んでいる。

 BusPirateには組み込みscript(BASICのサブセット)がある。
terminalインタフェースではデバイスからのレスポンスを待つのは難しいが、scriptを使うとできるようになる。

 以前に買ったLED&KEYを制御してみた。

 このモジュールのLEDコントローラにはTM1638が使われている。インタフェースは、クロック(CLK)に同期したシリアル通信で、データ(DIO)は双方向だ。デバイの選択はSTBをLにする。

 英語版のデータシートは(https://www.mikrocontroller.net/attachment/332035/TM1638_V1.3_EN.pdf)にある。

 BusPirateの raw 2-wireで制御してみる。

 接続はこんな感じ↓

BusPirate
LED&KEYMOSI---DIOCLK---CLKAUX---STB5V-+-VCCVPU-+ 
GND---GND

 ビットオーダーには注意が必要だ。SPIやI2CはMSBから送るMSB-firstだがTM1368はLSBから送るLSB-firstだから、"L"コマンドでビットオーダーを切り替えなくてはならない。

 ↓実行結果

HiZ>m 6 1 1 ← raw 2-wire R2W (spd hiz)=( 0 1 )
Ready
2WIRE>WPLc ← PowerON,PullUP,LSBfirst,ctrlAUX Power supplies ON
Pull-up resistors ON
LSB set: LEAST sig bit first ← "L"command a/A/@ controls AUX pin ← "c"command 2WIRE>v
Pinstates:
1.(BR)  2.(RD)  3.(OR)  4.(YW)  5.(GN)  6.(BL)  7.(PU)  8.(GR)  9.(WT)  0.(Blk)
GND     3.3V    5.0V    ADC     VPU     AUX     SCL     SDA     -       -
P       P       P       I       I       I       O       I       I       I
GND     3.29V   5.02V   0.00V   5.02V   H       L       H       H       H
2WIRE>a 0x40 A ← DataCommand: WriteRegister,AutoIncremet AUX LOW
WRITE: 0x40
AUX HIGH
2WIRE>a 0xC0 ← AUX←L、AddressCommand: 00h AUX LOW
WRITE: 0xC0
2WIRE>  0x76,0x00, 0x79,0x00, 0x38,0x00, 0x38,0x00 ← "HELL" WRITE: 0x76
WRITE: 0x00
WRITE: 0x79
WRITE: 0x00
WRITE: 0x38
WRITE: 0x00
WRITE: 0x38
WRITE: 0x00
2WIRE>  0x3F,0x00, 0x40,0x01, 0x40,0x01, 0x40,0x01 ← "O---"
WRITE: 0x3F
WRITE: 0x00
WRITE: 0x40
WRITE: 0x01
WRITE: 0x40
WRITE: 0x01
WRITE: 0x40
WRITE: 0x01
2WIRE>A ← AUX←H AUX HIGH
2WIRE>a 0x8A A ← DisplayControl: DispON AUX LOW
WRITE: 0x8A
AUX HIGH
2WIRE>

BP-HELLO

 表示を動かそうとするとコマンドを何回も入力しなければならないので、scriptで動かしてみる。

 BusPireteのscriptはBASICのサブセットなので制限がある。

  • 数値は10進数だけ。16進数は使えない
     "="コマンドで10進、16進、2進の変換ができるので、10進数にする。
  • 変数への代入はLETを使う
     ×A=10、〇LET A=10
  • "DATA"、"READ"コマンドはあるけど"RESTOR"コマンドが無い
  • AUXピンが制御できない
     "AUXPIN 0"でAUXピンが制御できるはずだが、CSしか制御できない(BUG?)
  • "SEND"コマンドのビットオーダーは常にMSB-First
     ターミナルコマンド"L"を引き継がない。

 AUXピンが制御できないのは致命的だ。 仕方がないので、ターミナルコマンドでDataCommand(40h)、DispContorl(88h)を送っておいて、表示データをscriptで送ってみる。

 ↓ターミナルで送るコマンド

m 6 1 1 ← raw 2-wire
WPLc ← PowerON,PullUP,LSBfirst,ctrlAUX
a 0x40 A ← DataCommand: WriteRegister,AutoIncremet
a 0xC0 ← AUX←L、 AddressCommand: 00h

 scriptを例えば"hello.bas"というファイル名で保存しておいて、ターミナル・ソフトのファイル送信機能でBusPirateに送ると簡単。 BusPirateが処理する時間を確保するために行当たり500msの時間待ちしている。

 scriptはこんな感じ↓

hello.bas
10 FOR I=1 TO 100
20   GOSUB 1000
30   DELAY 100
40 NEXT I
50 END
999  REM Disp HELLO
1000 IF I<50 THEN SEND 0
1010 IF I<50 THEN SEND 128   
1020 SEND 110
1030 SEND 0
1040 SEND 158
1050 SEND 0
1060 SEND 28
1070 SEND 0
1080 SEND 28
1090 SEND 0
1100 SEND 252
1110 SEND 0
1120 SEND 0
1130 SEND 128
1140 SEND 0
1150 SEND 128
1160 IF I<50 THEN SEND 0
1170 IF I<50 THEN SEND 128
1180 RETURN

↑SENDコマンドで送る数値はビットオーダーを変えてある。 例えば1020行の SEND 110は、表示したいパターンは01110110(76h)なので、01110110b→01101110b→6Eh→110を送る。

 scriptでLSBから1bitづつ送るようにすれば、いちいち変えなくてよいのだがどちらも面倒。

↓動いているところ。

Bphello_1

ダウンロード BP-HELLO.mp4 (1110.6K)

↑途中でメッセージが移動する方向が変わる。

 待てよ、AUXではなくCSを使えばいいじゃないかと気が付いた。

###

この記事に書いた制限(BUG?)は↓のFirmware固有のものかもしれない。

HiZ>i
Bus Pirate v3b
Firmware v5.10 (r559)  Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
CFG1:0xF9DF CFG2:0x3F7F

最新のFirmwareにアップデートしてみるか



最近の投稿】【最近のCPUボード】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月19日 (水)

深く考える力 <「賢明なもう一人の自分」は暗黙知のことか?>

深く考える力 田坂広志 PHP文庫

Photo_4

 第一部は「深く考える技法」について。

 第二部、第三部はForbes JApanに掲載されたエッセイで、田坂広志氏のメールマガジン「風の便り」でも配信されていたり、他の書籍にも掲載されているので、何度も読んでいる文章が多い。

 田坂広志氏は、深く考えるためには「賢明なもう一人の自分」との対話が必要だとおっしゃる。 そのための技法として、

  1. まず、一度、自分の考えを「文章」にして表してみる。
  2. 異質のアイデアを、敢えて結びつけてみる。
  3. 自分自身に「問い」を投げかける。
  4. 一度、その「問い」を忘れる。
  5. 自分自身を追い詰める。

5つの技法を挙げておられる。

 「賢明なもう一人の自分」は思考を文章にするときだけではなく、他人の文章(エッセイ)を読むときにも現れるから、他人の文章を読むことでも、思考を深めることができるうとおっしゃる。 そのための、例題が第二部、第三部のエッセイということだろう。

 若い頃は技術書しか読まなかったった。
技術書の目的は、知識を得ることだが、知っているだけでは食えないので技術を習得する手引書として使っていた。

 ひと年取って技術書以外の本を読むようになると、それまで気付かないことに気づくことが多く、一生懸命覚えておこうとしていた。 しかし、そのうち覚えておくのは無理だということが分かった。

 本を読むまで考えもしなかったことに気がついて、考えたことは、詳細に覚えていなくても、自分の一部になるになると考えるようにした。 それまで知っていたことと融合して暗黙知になるのだろう。

 そう考えると「賢明なもう一人の自分」とは、暗黙知のことかもしれない。

 暗黙知を知覚することは難しいが、深く考えることで、自分の暗黙知に触れて、暗黙知を形式知にできるのかもしてない。

 深く考える技法として書くことは有効だと思う。 また、読むことは、知識を得るという実用な効用の他に、著者の暗黙知に触れるという効用もあるのだろう。

 そして、他人の暗黙知に触れることが触媒になって、自分の暗黙知に触れることができるのではないだろうか。

 知識創造企業(2014/05/13)にあるSECIモデルでは、暗黙知を形式知化する表出化が難しい。 結合化、内面化はITを使って効率化できるが、表出化は個人の能力に頼らざるを得ない。

Seci

深く考える力は暗黙知を形式知にする表出化に有効かもしれない。


最近の投稿】【最近の書籍・雑誌】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月17日 (月)

Bus pirate(3) <SDカードをパスワード・ロックしてみる>

  Bus pirateでSDカードが読めたので、SDカードをパスワード・ロックしてみる。
実験に使ったSDカードはSanDiskの8GB SDHC。 

Sandisk_8g_sdhc

Buspirate36_sd

【初期化】
 初期化のコマンドは、CMD0→CMD8→ACMD41(CMD55、CMD41)。 このカードはACD41(CMD55+CMD41)を2回送ると初期化できるようだ。 2回で初期化が完了しない場合はR1レスポンスが00hになるまでACMD41を送る。

SDHC_InitCmd.txt
m 5 1 1 2 1 2 2
Wv

]r:10[0x40 0x00 0x00 0x00 0x00 0x95 r:8]
[0x48 0x00 0x00 0x01 0xAA 0x86 0x87 r:8]
[0x77 0x00 0x00 0x00 0x01 0xff r:8]
[0x69 0x40 0x00 0x00 0x01 0xff r:8]
[0x77 0x00 0x00 0x00 0x01 0xff r:8]
[0x69 0x40 0x00 0x00 0x01 0xff r:8]
[0x4D 0x00 0x00 0x00 0x00 0xff r:8]

↑このようなファイルを作っておいてターミナルから送信すると入力が楽。 Bus pirateでの処理時間が必要なので、1行送信したら100ms~1000ms待つ。

↓Teratermの例

Terminaldelay

【パスワードロック】
 パスワードロックに使うコマンドはCMD16, CMD42, CMD13。

SD Host dir SD Card  
SC(Lo)   Select
CMD16(0x00 0x00 0x02 0x00 0xFF)   BLOCK_LEN=512
  R1 response 0x00=NoError
SC(Hi)      
SC(Lo)   Select
CMD42(0x00 0x00 0x00 0x00 0xFF)    
  R1 response 0x00=NoError
0xFE LockCardStructure 0xFFx(512-PWD_LEN) 0xFF 0xFF   Data Packet
  Data response R1+busy, busy=0x00
SC(Hi)    
SC(Lo)   Select
CMD13(0x00 0x00 0x02 0x00 0xFF)    
  Data response R2(R1+Status)
SC(Hi)    

【CMD42】 
 CMD42のデータパケットで送るデータ

Lock Card Data Structure
Byte# Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
0 Reserved
(shall be set to 0)
ERASE LOCK_UNLOCK CLR_PWD SET_PWD
1 PWDS_LEN
2 password data
・・・
PWDS_LEN+1
  • Byte#0:
    • パスワード・設定(0x01)
      パスワード長とパスワード・データが設定される。
      この設定だけではまだロックされていない。電源をOFFにするか、LOCK_UNLOCK(0x04)でロックする。
       
    • パスワード・変更(0x01)
      既に設定されているパスワードを変更する場合は、パスワード長(PWDS_LEN)に新しいパスワード長を加算した値をセットし、パスワード・データには現在設定されているパスワードに続けて変更するパスワードを設定する。
       
    • パスワード・クリア(0x02)
      パスワード長とパスワード・データをクリアする。ロックは解除される。
       
    •  パスワード・ロック(0x04)
      SDカードがロックされデータにアクセスできなくなる。
       
    • パスワード・ロック解除(0x00)
      パスワード・ロックが解除されデータにアクセスできるようになる。
      電源を再投入するとロック状態に戻る。
       
    • 消去(0x08)
      パスワードが分からない場合でも設定されているパスワードを消去することができる。 ただし、データもすべて消去される。
       
  • Byte#1 : パスワード長。
  • Byte#2~: パスワードデータを設定する。 バイナリデータも設定できる
    パスワードは16byte以内。

【パスワード設定】

SPI>[0x50 0x00 0x00 0x02 0x00 0xFF r:8] ←CMD16:SET_BLOCK_LEN len=512
/CS ENABLED
WRITE: 0x50
WRITE: 0x00
WRITE: 0x00
WRITE: 0x02
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x6A 0x00 0x00 0x00 0x00 0xFF r:8 ←CMD42:LOCK_UNLOCK
/CS ENABLED
WRITE: 0x6A
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

SPI>0xFE 0x01 6 "abc123" 0xFF:506 0xFF 0xFF r:24] ←SET_PWD
WRITE: 0xFE   ←Data token
WRITE: 0x01   ←PWD_SET
WRITE: 0x06   ←PWDS_LEN
WRITE: "abc123" ←passowrd data
WRITE: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
                            ( 506=512-6のFFh
               )
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
WRITE: 0xFF   ←CRC(dummy)
WRITE: 0xFF   ←CRC(dummy)
READ: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x0F 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

電源OFF(カードを抜く)

SPI>[0x4d 0x00 0x00 0x00 0x00 0xff r:8]    ←CMD13 SEND_STATUS
/CS ENABLED
WRITE: 0x4D
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0x01 0xFF 0xFF 0xFF 0xFF 0xFF ←R2:0x01="Card is locked"
/CS DISABLED

PCに認識させてみると。

Sdcarddiskmgr_setpwd

 このPCはSDカードスロットがあって内部的にはUSBに繋がっているようだ。 パスワード・ロックされているSDカードは「メディアなし」と表示されている。

【パスワード・ロック解除】

SPI>[0x50 0x00 0x00 0x02 0x00 0xFF r:8]   ←CMD16 SET_BLOCK_LEN
/CS ENABLED
WRITE: 0x50
WRITE: 0x00
WRITE: 0x00
WRITE: 0x02
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x6A 0x00 0x00 0x00 0x00 0xFF r:8   ←CMD42 LOCK_UNLOCK
/CS ENABLED
WRITE: 0x6A
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

SPI>0xFE 0x00 6 "abc123" 0xFF:506 0xFF 0xFF r:24] ←UNLOCK 0x00
WRITE: 0xFE
WRITE: 0x00
WRITE: 0x06
WRITE: "abc123" ←passowrd data
WRITE: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
                            ( 506=512-6のFFh
               )
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
WRITE: 0xFF   ←CRC(dummy)
WRITE: 0xFF   ←CRC(dummy)
READ: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x0F 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x4d 0x00 0x00 0x00 0x00 0xff r:8]  ←CMD13 SEND_STATUS
/CS ENABLED
WRITE: 0x4D
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF ←R2 ロック解除
/CS DISABLE

 この状態で、データにアクセスできるようになる。 
パスワードは設定されているので、電源OFF(抜く)とパスワード・ロック状態になる。

【パスワード・クリア】

SPI>[0x4D 0x00 0x00 0x00 0x00 0xff r:8]  ←CMD13 SEND_STATUS
/CS ENABLED
WRITE: 0x4D
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0x01 0xFF 0xFF 0xFF 0xFF 0xFF ←R2:0x01=Card is locked
/CS DISABLED

SPI>[0x50 0x00 0x00 0x02 0x00 0xFF r:8]    ←CMD16:SET_BLOCK_LEN
/CS ENABLED
WRITE: 0x50
WRITE: 0x00
WRITE: 0x00
WRITE: 0x02
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x6A 0x00 0x00 0x00 0x00 0xFF r:8    ←CMD42:LOCK_UNLOCK
/CS ENABLED
WRITE: 0x6A
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

SPI>0xFE 0x02 6 "abc123" 0xFF:506 0xFF 0xFF r:24] ←0x02: CLR_PWD
WRITE: 0xFE
WRITE: 0x02
WRITE: 0x06
WRITE: "abc123" ←passowrd data
WRITE: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
                            ( 506=512-6のFFh
               )
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
       0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
WRITE: 0xFF   ←CRC(dummy)
WRITE: 0xFF   ←CRC(dummy)
READ: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x03 0xFF 0xFF
/CS DISABLED

SPI>[0x4D 0x00 0x00 0x00 0x00 0xFF r:8]   ←CMD13 SEND_STATUS
/CS ENABLED
WRITE: 0x4D
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF ←R2:ロック解除
/CS DISABLED

 ステータスを読むとロック解除になっている。 ロック解除(UNLOCK)と違うのはパスワードデータがクリアされているので電源をOFFにしてもロック解除されたままになる。
 PCに認識させてみると、

Sdcarddiskmgr_resetpwd1

 ちゃんと認識されている。 めでたしめでたし。

###

 ネットを探すと、AVRやPIC、Arduino、RaspberyPiで実装した例があるようだ。



最近の投稿】【最近のCPUボード】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月15日 (土)

データ分析の力 <因果関係と相関関係は違う>

データ分析の力 因果関係に迫る思考方法 伊藤公一郎 光文社

Photo_3

 データ分析の基礎を数式を使わないで説明した本。 高校生に理解できるようにと書かれているらしい。

 最初に、相関関係と因果関係は違うことが説明してある。伊藤公一郎氏が指摘するように、ネットには無知か故意か相関関係と因果関係を混同している記事を見かける。

 例えば、大分県庁の過労死問題 (2018/01/13) など。
この分野の専門家ではないのだが、残業時間と健康被害は相関関係はあるが、直接的な因果関係はないと思う。

  • 睡眠時間と健康被害は因果関係がありそうだ。
  • 職場の環境と健康被害も因果関係がありそうだ。

そして、経験則では

  •  残業時間と睡眠時間は因果関係がある。
  •  職場の環境と残業時間も因果関係がある。

 厄介なのは「職場の環境」で、上司、同僚、部下、業務量、責任、など要素が沢山ある。
しかも測定しにくい。 だから、測定しやすい、残業時間で管理しようとするのだろうが、残業時間には直接の因果関係はないので、問題が改善されない危険性がある。 改善されないどころか、益々環境が悪化する危険性がある。

 例えば、残業時間を制限したことによって、目標未達になりその責任を問われたり、目標未達にならないように陰で残業したり(大分県庁の例)だ。

 因果関係があれば原因を変えれば結果は変わる。
 因果関係でなく相関関係の場合は、一方を変えてももう一方は変わらるとは限らない。

 つまり、残業時間を制限しても健康被害が減少するとは限らないということだ。
「残業時間を厳しく管理します」と言って(言わされて)いる人の職場環境も悪いんだろうなと想像する。

閑話休題

 この本は、別の本を買おうとしたら、1,500円以上10%OFFクーポンが使えなくて、合計1,500円にするために買った。 楽天の罠にまんまとハマっている。

 さらに勉強したい人のためにレベルに応じて参考図書が紹介されているので、もう少し詳しい本を読んでみようと思う。


最近の投稿】【最近の書籍・雑誌】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月13日 (木)

「オレは聞いてない」 <有効な判断をしていないだけ>

コミュニケーションコストの増加で老化が加速 日経BizGate (2016/10/24)

 「会社の老化は止められない」(2016/11/23) の「コミュニケーションコストの増加は止められない」の項を抜粋したもの。 この本は、至極真っ当なことが書いてあるのだが、素直に認められない年寄りは多いと思う。

 例えば、
 「ほうれんそう」教に毒された管理者が言う「オレは聞いてない」は長く勤めていると一度や二度聞いたことがあるだろう。  しょっちゅう聞いているならその組織はかなり老化が進んでいる。らしい。

 冒頭の記事中に「オレは聞いていない」を可視化した図がある。

Photo

細谷功氏によると

インフォーマルなルートで重要人物には伝わっているが、組織図上で重要な役割を果たしていると思っている人に伝わっていないというのが図の左下の領域である。この状態になったときに「オレは聞いていない」という発言が聞かれるわけである。

 内容より器を重視するのは老化現象のなせるわざで、なおかつ、なぜ連絡が来ないかといえば、「言っても価値がないから」である可能性が高い。

 とすれば、本人としては自分の正当性を主張しているつもりでも、実際は「役割にふさわしい仕事をしていない」ということを自ら広める言動になっている。それに本人が気づいていないわけで、このような喜劇もまた老化のなせるわざといってよいだろう。

らしい。

部下の立場で考えてみる

 自分で判断しかねる案件があった場合、誰に相談するかというと、有効なアドバイスをくれる人や実質的に判断をしている人など、相談する価値がある人だ。 逆に言うと、誰からも相談を受けない人は、相談する価値が無いと思われているということだ。 細谷功氏の指摘は正しいと思う。 

 相談する価値がない人は、指摘はするが建設的な意見は言わないことが多いので判断の参考にならない。 なので相談したくないのが本音だ。 ところが、老化した組織は「オレは聞いていない」とスネる者を無視できない仕組みになっていることが多いので、判断には寄与しない無駄な仕事が増えるのは細谷功氏が指摘するとおりだ。

 日本のホワイトカラーは生産性が低いと指摘されるのは、このような判断には寄与しない仕事に時間を費やしているからではないだろうか。 働き方を改革するには、判断に寄与しない仕事を止めれば良い。 ITシステムなどを導入しなくて良いからコスパは最高だ。 

 「オレは聞いてない」の大合唱になるんだろうな。

上司の立場で考えてみる

 上司といっても多くの人は中間管理職だから部下の側面も持っている。 「オレは聞いてない」という上司に理解を示す中間管理職は少ないだろう。 

 理解を示す人は「オレは聞いてない」と言っている自覚症状がある人くらいだ。 それなのに、上司になってポジションが上がると、なぜ「オレは聞いてない」と言い始めるのか?

 それは、部下や部署の成果が上がるような意思決定をしていないからだ。 能力を超えるポジションに上がったという事情はあるのかもしれない。

 マイクロマネジメント(管理)しかできない者が成果が上がるような意思決定ができないのは組織的に中間管理職にマイクロマネジメントしか求めていないことも原因だろう。

 マイクロマネジメントしかしていない中間管理職が急に、部下や部署の成果が上がるような意思決定をしようと思っても難しいだろう。

 だから、最初に中間管理職になったときから(なる前から)、部下や部署の成果が上がるような意思決定することを優先しなければならない。

これから中間管理職になる人の立場で考えてみる

 中間管理職は上司と部下という2面性があるから、部下の立場として「オレは聞いてない」野郎を黙らせるテクニックは重要だと思う。 「有効な意思決定ができない者は黙ってろ」と正論を言っても始まらない。

 しかし、上司の立場として優先すべきは、有効な意思決定をすること、有効な意思決定ができる能力を身に着けることだ。

 「オレは聞いていない」と言われないことを優先する世渡り上手な人は将来「オレは聞いてない」という管理職になる可能性は高いと思う。

###
 「オレは聞いていない」と言われたときに、せめて「コイツアホか」が顔に出ないようにしようと思う。 (^^ゞ


最近の投稿】【最近のよしなしごと】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月11日 (火)

Bus pirate(2) <SDカードを読んでみる>

 Bus pirate(2018/9/3)で先割れスプーン的だと書いたけど、便利だったのでSPIモードでSDカードを読んでみた。 uSDカードアダプタはAmazonで買った安物。 3.3VのLDOとレベルシフタが載っている。

Buspirate36_sd

 昔SDカード/MMCカードで遊んでいたころはまだSDHC規格は無かったので知識が古い。

 調べてみると、MMCカード規格を作っていたMultiMediaCard AssociationはJDECと合併したらしい。 最近MMCカードは見かけないけど組み込み業界では eMMCとしてチップが基板に張り付けてある。

 MMCカードの規格はRenesas(旧日立)の「マルチメディアカードユーザーズマニュアル(j603002_mmc.pdf)」があるのだが、Renesasのサイトでは見つからないようだ。 ネット上では奇特な人が保存してくれているようだ。

 ここを参考にBus pirateでSDカードのデータを読んでみた。

 SDカードはSanDiskの2G microSDcard。
Sandisk_2g_sdc

【初期化】
 CMD1で初期化してみた。 初期化手順は、

  1. SPIモードにする
  2. CMD0:GO_IDLE_STATE:(要CRC)
  3. CMD1:SEND_OP_COND R1レスポンスが00hになるまで
  4. CMD2:ALL_SEND_CID
  5. CMD3:ET_RELATIVE_ADDR

これはMMCの初期化方法。 ユーザマニュアルに説明がある。 今回は、CMD2,CMD3は省略して先頭セクタを読んでみる。

 SPIモードにするには、CSをHにしてダミークロックを74クロック以上発行する。 74クロックはキリが悪いので80クロックとする。 

 BusPirateでは、"]"←CS=H、r:10←10byte(80clock)、

 コマンドレスポンスの先頭ビットは0なので0xFF以外のデータを読み出すまで待つ。ところが、BusPireteでは待つことができないのでとりあえず8byte読む。 0xFFでないデータがコマンドレスポンスだ。 (scriptを使うと待つことができる。)

【セクタ読み出し】
 読みだし手順は、

  1. CMD16:SEND_BKICKLEN
  2. CMD17:READ_SINGLE_BLK

 まずCMD16でブロックサイズを指定する。次にCMD17を送ると、コマンドレスポンスに続いてデータを読み出すことができる。 読み出す回数はコマンドレスポンス:5byte、データトークン(0xFE):1byte、ブロックデータ:512byte、CRC:2byteで520byteを指定している。

 6byte以内にデータトークン(0xFE)が読み出せないとすべてのデータが読めない。 そのときは読み取るデータを多くする。 (r:530とか)

HiZ>m 5 1 1 2 1 2 2  ←SPIモード
SPI (spd ckp ske smp csl hiz)=( 1 0 1 0 1 0 )
Ready
SPI>Wv         ←電源ON ピンステータス表示
Power supplies ON
Pinstates:
1.(BR)  2.(RD)  3.(OR)  4.(YW)  5.(GN)  6.(BL)  7.(PU)  8.(GR)  9.(WT)  0.(Blk)
GND     3.3V    5.0V    ADC     VPU     AUX     CLK     MOSI    CS      MISO
P       P       P       I       I       I       O       O       O       I
GND     3.29V   5.02V   0.00V   0.00V   H       L       H       H       L

SPI>]r:10                 ←SPImode
/CS DISABLED
READ: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

SPI>[0x40 0x00 0x00 0x00 0x00 0x95 r:8]   ←CMD0 GO_IDLE_STA
/CS ENABLED
WRITE: 0x40
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x95
READ: 0xFF 0x01 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF ←R1=0x01 "In Idle State"
/CS DISABLED

SPI>[0x41 0x00 0x00 0x00 0x00 0xff r:8]        ←CMD1 SEND_OP_COND 
/CS ENABLED
WRITE: 0x41
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x01 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF ←R1=0x01 "In Idle State"
/CS DISABLED

SPI>[0x41 0x00 0x00 0x00 0x00 0xff r:8]    ←CMD1 SEND_OP_COND
/CS ENABLED
WRITE: 0x41
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF ←R1=0x00 成功
/CS DISABLED
SPI>[0x50 0x00 0x00 0x02 0x00 0xff r:8]    ←CMD16 SET_BLOCK_LEN
/CS ENABLED
WRITE: 0x50
WRITE: 0x00
WRITE: 0x00
WRITE: 0x02
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF ←R1 Response=0x00 成功

SPI>[0x51 0x00 0x00 0x00 0x00 0xff r:520]   ←CMD17 READ_SINGLE_BLOCK
/CS ENABLED
WRITE: 0x51
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0xFF 0x00 0xFF 0xFF 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                  (                        
                   )                       
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x03 0x3D 0x00 0x06 0x3F 0xFF 0xD7 0xF9 0x00 0x00 0x00
      0x07 0x89 0x3C 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x55 0xAA
0x5D 0xE1
/CS DISABLED

 ↑先頭から3byte目がR1レスポンス(0x00)。続いてデータトークン(0xFE)、SDカードの先頭セクタ。パーティションテーブル(下線部分)と末尾に55h、AAhがある。 最後の2byteはCRC(0x5D,0xE1)。

【SDHCカード】
 SanDisk SDHC 8GBも読んでみる。

Sandisk_8g_sdhc

 このカードはCMD1で初期化する方法は使えない。 初期化手順は、SD AssociationからDLできる [Physical Layer Simplified Specification]に解説がある。

  1. SPIモードにする
  2. CMD0: GO_IDLE_STATE:(要CRC)
  3. CMD8: SEND_IF_COND:(要CRC)
  4. ACMD41:SD_APP_OP_COND (CMD55+CMD41) R1レスポンスが00hになるまで 
  5. CMD58: READ_OCR

CMD8のパラメータは、0x00、0x00、電圧、チェックパターン(レスポンスで同じ値が返る)。 電圧は3.3vで使うので0x01、チェックパターンは0xAAを使う。 なぜって、ネット上にCRC(0x87)を計算した人がいるから。 ここは決め打ちでよさそう。

 CMD58は省略。データ読み出しはCMD16とCMD17上の例と同じ。

HiZ>m 5 1 1 2 1 2 2
SPI (spd ckp ske smp csl hiz)=( 1 0 1 0 1 0 )
Ready

SPI>Wv
Power supplies ON
Pinstates:
1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk)
GND 3.3V 5.0V ADC VPU AUX CLK MOSI CS MISO
P P P I I I O O O I
GND 3.29V 5.02V 0.00V 0.00V H L H H L

SPI>]r:10                ←SPImode
/CS DISABLED
READ: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

SPI>[0x40 0x00 0x00 0x00 0x00 0x95 r:8] ←CMD1 GO_IDLE_STATE
/CS DISABLED
READ: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS ENABLED
WRITE: 0x40
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x95
READ: 0xFF 0x01 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

/CS DISABLED
SPI>[0x48 0x00 0x00 0x01 0xAA 0x87 r:8]  ←CMD8 SEND_IF_COND
/CS ENABLED
WRITE: 0x48
WRITE: 0x00
WRITE: 0x00
WRITE: 0x01
WRITE: 0xAA
WRITE: 0x86
WRITE: 0x87
READ: 0x01 0x00 0x00 0x01 0xAA 0xFF 0xFF 0xFF  ←R1:Idle R7:
/CS DISABLED

SPI>[0x77 0x00 0x00 0x00 0x01 0xff r:8]   ←CMD55 APP_CMD
/CS ENABLED
WRITE: 0x77
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x01
WRITE: 0xFF
READ: 0xFF 0x01 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x69 0x40 0x00 0x00 0x01 0xff r:8] ←CMD41 PP_SEND_OP_COND
/CS ENABLED
WRITE: 0x69
WRITE: 0x40
WRITE: 0x00
WRITE: 0x00
WRITE: 0x01
WRITE: 0xFF
READ: 0xFF 0x05 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x77 0x00 0x00 0x00 0x01 0xff r:8] ←CMD55 APP_CMD
/CS ENABLED
WRITE: 0x77
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x01
WRITE: 0xFF
READ: 0xFF 0x01 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x69 0x40 0x00 0x00 0x01 0xff r:8] ←CMD41 PP_SEND_OP_COND
/CS ENABLED
WRITE: 0x69
WRITE: 0x40
WRITE: 0x00
WRITE: 0x00
WRITE: 0x01
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x50 0x00 0x00 0x02 0x00 0xff r:8] ←CMD16 SET_BLOCK_LEN len=512byte
/CS ENABLED
WRITE: 0x50
WRITE: 0x00
WRITE: 0x00
WRITE: 0x02
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
/CS DISABLED

SPI>[0x51 0x00 0x00 0x00 0x00 0xff r:520] ←CMD17 READ_SINGLE_BLK
/CS ENABLED
WRITE: 0x51
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0x00
WRITE: 0xFF
READ: 0xFF 0xFF 0x00 0xFF 0xFF 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                  (                        
                   )                       
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x82 0x03 0x00 0x0B 0x50 0xCA 0xC6 0x00 0x20 0x00 0x00
      0x00 0xC0 0xEC 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
      0x00 0x00 0x00 0x00 0x55 0xAA
0x68 0xC0
/CS DISABLED

 CMD8は PhysicalSpec Ver2.0から使えるらしい。 CMD8→ACMD41→CMD1の順に初期化するとどのカードでも使える。

 昔AVRでSD/MMCにアクセスするプログラムを作ったときは、初期化で苦労した記憶がある。 いまほど情報もなかったし、Arduinoも無かったから。

 今時は情報も多いし、Bus pirateのようなツールで試すと、F/Wレベルでの試行錯誤を減らせる。

###

 SDカードのライセンスにまつわるエトセトラは。Chanさんやねむさいんの、

が参考になる。



最近の投稿】【最近のCPUボード】【2017の投稿】【2016の投稿】【2015の投稿

 

2018年9月 9日 (日)

FireTV Stick <地上波見なくなるよな>

 この前のアマゾンプライムデーでFireTV Stickが安くなっていたので買ってみた。
我が家のテレビはまだ4Kではないので、FireTV Stickで十分だ。

 中身はこんな感じ。
Firetv2

 本体、リモコン、ACアダプタ、マイクロUSBケーブル(電源用)、HDMI延長コード。

 設定は簡単テレビのHDMIコネクタに繋いで入力を切り替えて指示に従う。

 プライムビデオでは見切れないほどの映画やテレビ番組が見れる。
期間限定の作品も結構ある、続編の映画公開前に前作を公開していたりする。期間限定のうちに見よう。

 「男はつらいよ」が全作品見れる。 ますます、地上波見なくなるなあ。

 Air Receiver(有料305円)をインストールすると、ディスプレイのミラーリングができるらしい。 Windows10もミラーリングできるらしいが、PC側がサポートしていなかった。 iOSはミラーリングできた。


最近の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月 7日 (金)

「ゆとり教育」 <間違っていたのは親の行動では>

過去の遺物となった『ゆとり教育』 母親世代は「間違いだった」と厳しい指摘
しらべぇ (2018/09/01)

 ゆとり世代は何かと批判されることが多い。しかし、多くは批判する側が志向停止していると思う。 この前出席した会議でも、問題の原因をゆとり世代の気質だと言う人がいたので、「なんでもゆとり世代に原因を求めてはいけない」と発言した。

 ゆとり世代を育てた世代なので、ゆとり世代を否定するのは、自分の育て方を否定すること。つまり、天に唾する行為だ。

 うちの娘1号はゆとりお試し規格、娘2号はゆとりフル規格。だから、ゆとり世代への批判は他人ごとでは無い。

 ゆとり世代を育てた当事者として、ゆとり教育を考えてみた。

【結論】

 詰めこみではなく考える力を付けようとする取り組みは良かった。
 悪かったのは、親世代の対応だ。

【「ゆとり教育」が始まった頃】

 娘2号の授業参観に行ったことがある。算数の授業で先生が教えていたのは、解法はたくさんあるということ。効率良く正解を求める方法ではなかった。 

 親世代は教育を偏差値でしか評価できなかった。自分達が偏差値で評価されてきたからだ。 そして、親世代は偏差値を上げる方法は詰め込んで記憶する方法しか知らなかった。
 だから、親世代は子供達が偏差値で評価されることが変わらない状態で、自分の子供だけ偏差値が下がるかもしれない「詰め込まない教育」を受け入れることがきなかったのだ。

 偏差値が下がってもこの先子供が生きてく上で重要なことを学んでくれたら良いと、全ての親がそう考えたら良かったのだが、自分から変えることができなかった。 囚人のジレンマだ。

 親世代は、学校が詰め込まない分、塾や習い事などで詰め込んでしまった。
塾は、教育機関ではなく私企業だから顧客である親のニーズに応えてくれてくれる。  親のニーズは子供が理解することではなくて偏差値が上がることだ。

 理解することは難しいし、答を憶えるのは気合いと根性だ。優秀な塾は、裏ワザ宜しく効率良く正解を見つける方法を教えてくれる。皆が知ってしまったら裏ワザでは無くなるけど。

【そして今】 

 子供達が受験や就職するようになっても相変わらず偏差値で評価されていたから、結果的には親の戦略は正しかったのかもしれない。 というか、偏差値という評価基準を変えないようにしていたのは親世代だ。

 ところが、今彼女達が直面しているのは時代の変化だ。 親世代が変わらなかったツケがゆとり世代に廻っているとも考えられる。

 親世代は、働き方改革と聞いて「そんなのできねーよ」と言っている。 しかし、ゆとり世代は子供がいても共働きする必要があるから、働き方は改革せざるをえない。 改革を邪魔しているのは子育てが終わった親世代だ。

【今後は】

 ゆとり世代は、親世代と違って、20代前半までの偏差値で人生が決まる可能性は低くなった。 むしろその後どう生きるのがの方が重要だ。

 とすると、必要な能力は、

  • 先生に言われた宿題をこなすことより自ら学ぶ力
  • 記憶した正解の中から答えを探す力より、正解が無い問でも最適解を導ける力

だろう。

 いずれも親世代では重要視されなかった能力だ。

 ゆとり世代は、親世代同じようには生きられない。
女性は母親のように専業主婦になれないし、男性は定年まで同じ職場で働き続けることはできない。そもそも定年という概念はいつまであるのか分からない。

 さらに、彼女達が育てられた時の価値観で彼女達の子供を育てることはできないだろう。 彼女達の子供は人生100年時代を生きるのだ。何が子供の将来に役立つのか予想できない。

【親世代は】

 ゆとり世代は「ゆとり教育」を受け入れるしかなかったので、彼女達に罪は無い。 制度を受け入れられなかったのは親の世代だ。受け入れらないどころか抵抗したのだと思う。

 「これだから、ゆとり世代はっ!」と言わないで、ゆとり世代が新しい価値観を受け入れて変わるのをサポートしよう。 それが親世代から見ると評価できない価値観だとしても。

 彼女達が子供の頃に価値観は多様だということを教えなかったのは親世代なのだから。



最近の投稿】【最近のよしなしごと】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月 5日 (水)

日本軍「戦略なき組織」 検証失敗の本質(2)

日本軍「戦略なき組織」 検証失敗の本質 Harvard Business Review 2011/01

Photo

最近、「失敗の本質」(2018/07/11)を読んだので、昔買ったこの本を読んでみた。

失敗の本質」になかった

  • 出身軍隊別:元軍人CEOの適性診断
  • 航空決戦と「航空機産業」の崩壊

について考えてみた。

航空決戦と「航空機産業」の崩壊

 日本海軍が編み出した航空攻撃という戦術は画期的だった。 この戦術を支えているのは、熟練パイロットと零戦をはじめとする航空機だ。

 熟練パイロットの育成には時間がかかるから、戦局が長引くと、熟練パイロットは減る。 また、日本軍の航空機の生産性は低いし、当時の日本は独自に技術革新できるほどの技術的基盤が無かったから、戦局が長引くと、航空機の生産量が少なくなることは予想されたことだ。

 戦局が長期化すると日本の優位性は保てなくなるから、戦局を長期化しない戦略が必要だ。 ところが、停戦という選択肢が無いから戦局は長期化し、熟練パイロットは減り、航空機も減った。

 熟練パイロットの減少は米軍でも同じように問題だが、米国は航空機の生産性を上げ、日本の戦闘機1機に対して複数で戦闘する戦術をとることで未熟なパイロットでも戦闘できるようにした。 一方日本軍は、未熟なパイロットに低性能の機体を与え特攻という戦術を選んだ。 「戦略なきと」言われる所以だ。

 ここから学ぶとすると、

  • 熟練技能者の育成には時間がかかるから、熟練技能者の存在で優位性があるのは短期間であること。
  • 優位性がある間に、新たな戦術を編み出こと。
  • 戦略を変えるために、高性能な装備を配置すること。

を前提に戦略を考えなければならないだろう。

 サイバー・セキュリティ分野では技術者が不足しているから、高度な技術力を持っている技術者(高度技術者)の存在は大きな優位性だといえる。

 サイバー・セキュリティ分野は一時的に優位性があったとしても、技術の移り変わりが速いからいつまでも優位性が保てない。 しかし、サイバーセキュリティ技術者の育成には時間がかかるから、高度技術者の供給は間に合わない。

 今時、高性能な装備は金で解決できるから、装備による優位性は期待できない。

と考えると、もう戦略を変える時期が来ているのだろう。



最近の投稿】【最近の書籍・雑誌】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月 3日 (月)

Bus pirate <先割れスプーン的だが便利だ>

Bus pirate 3.6aをスイッチサイエンスで買った。

Buspirate36_2
↑(スイッチサイエンスの箱の上で撮った。宣伝ではありません)

Bus pirateDANGEROUSPROTOTYPESのオープンソースのユニバーサル・バスインタフェースで、スイッチサイエンスで売っているのはSpeed Studioが造っている。

今回買ったのはver3.6aだ。 実はver4.0が出ていて、マルツは4.0を売っているのだが、ちょっと急いでいたので即日発送のスイッチサイエンスで買った。 (実は、v4.0の部品も買ってあるのだが...)

 このボードを一言でいうと、1-wireやI2CやSPI、マイコン系の萬プロトコルの制御ができるツール。他に周波数測定やPWMが発生できる。

 わざわざこんな先割れスプーン的なツールを買わなくてもマイコンを使ったらできる。 Arduinoはライブラリが充実しているので簡単にできるのだが...

 Bus pirateはFT232の先にPIC24FJ64GA002が繋がっていて、レベルシフタでバスに繋がっている。

Buspirate36_1

Ft232rl Pic24f

ターミナルソフトでつないでコマンドを入力して制御してみる。

"?"を入力するとコマンド一覧が表示される。
"i"を入力するとファームウェアの情報が表示される。

HiZ>?
General                                 Protocol interaction
---------------------------------------------------------------------------
?       This help                       (0)     List current macros
=X/|X   Converts X/reverse X            (x)     Macro x
~       Selftest                        [       Start
#       Reset                           ]       Stop
$       Jump to bootloader              {       Start with read
&/%     Delay 1 us/ms                   }       Stop
a/A/@   AUXPIN (low/HI/READ)            "abc"   Send string
b       Set baudrate                    123
c/C     AUX assignment (aux/CS)         0x123
d/D     Measure ADC (once/CONT.)        0b110   Send value
f       Measure frequency               r       Read
g/S     Generate PWM/Servo              /       CLK hi
h       Commandhistory                  \       CLK lo
i       Versioninfo/statusinfo          ^       CLK tick
l/L     Bitorder (msb/LSB)              -       DAT hi
m       Change mode                     _       DAT lo
o       Set output type                 .       DAT read
p/P     Pullup resistors (off/ON)       !       Bit read
s       Script engine                   :       Repeat e.g. r:10
v       Show volts/states               .       Bits to read/write e.g. 0x55.2
w/W     PSU (off/ON)            <x>/<x= >/<0>   Usermacro x/assign x/list all

HiZ>i
Bus Pirate v3b
Firmware v5.10 (r559)  Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
HiZ>

ファームウェアはv5.10のようだ。 サポートページによると最新はv7.0公式はv6.3で、GitHubからDLするようだ。

とりあえず、I2CのEEPROM(24LC64)を読んでみた。
ここを参考にしましたというかそのまま試した。(https://gist.github.com/yoggy/2f2ffc198cc154539506b8755f42dce8)

Buspirate36_i2c

↑ICの足にクリップを直接つないだ。

メモ代わりに書いておく。

設定

HiZ>m ←モード設定
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)

(1)>4
Set speed:
1. ~5KHz
2. ~50KHz
3. ~100KHz
4. ~400KHz

(1)>4
Ready


I2C>W      ←W:電源ON
Power supplies ON 
I2C>P      ←P:PullUp ON
Pull-up resistors ON
I2C>v      ←v:ピンステータス表示
Pinstates:
1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk)
GND    3.3V   5.0V  ADC    VPU    AUX    SCL    SDA    -      -
P      P     P     I      I     I      I      I      I      I
GND    3.29V  5.02V  0.00V  5.03V  H     H      H      H      H

I2C>(0) ←マクロでアドレスを探す
0.Macro menu
1.7bit address search
2.I2C sniffer
I2C>(1)
Searching I2C address space. Found devices at:
0xA0(0x50 W) 0xA1(0x50 R)
I2C>

 VPU(#5)に5Vを供給しておくこと、ボードからもらうか#3に接続する。(上の画像では24LC64の#8ピンにオレンジ(5.0V)とグリーン(VPU)が繋がっている。)

 vコマンドでステータスを見ると、VPUが5.03Vになっている。

書き込み

I2C>[0xa0 0x00 0x00 0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77]  
I2C START BIT   ↑アドレス0x00 から8byte書く
WRITE: 0xA0 ACK
WRITE: 0x00 ACK
WRITE: 0x00 ACK
WRITE: 0x00 ACK
WRITE: 0x11 ACK
WRITE: 0x22 ACK
WRITE: 0x33 ACK
WRITE: 0x44 ACK
WRITE: 0x55 ACK
WRITE: 0x66 ACK
WRITE: 0x77 ACK
I2C STOP BIT
I2C>

 デバイスのアドレス(1byte目)は、マクロで探したアドレスを使う。

読み出し

I2C>[0xa0 0x00 0x00] ←アドレスを0x00に
I2C START BIT
WRITE: 0xA0 ACK
WRITE: 0x00 ACK
WRITE: 0x00 ACK
I2C STOP BIT
I2C>[0xa1 rrrrrrrr] ←8byte読む
I2C START BIT
WRITE: 0xA1 ACK
READ: 0x00
READ:  ACK 0x11
READ:  ACK 0x22
READ:  ACK 0x33
READ:  ACK 0x44
READ:  ACK 0x55
READ:  ACK 0x66
READ:  ACK 0x77
NACK
I2C STOP BIT
I2C>                                                             

コマンドは続けることができるようだ。

HiZ>m 4 4
I2C (mod spd)=( 0 3 )
Ready
I2C>WPv
Power supplies ON
Pull-up resistors ON
Pinstates:
1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk)
GND    3.3V   5.0V   ADC    VPU    AUX    SCL    SDA    -     -
P     P      P     I      I     I      I      I      I      I
GND    3.29V  5.02V  0.00V  5.03V  H      H      H      H      H
I2C>[0xa0 0 0]
I2C START BIT
WRITE: 0xA0 ACK
WRITE: 0x00 ACK
WRITE: 0x00 ACK
I2C STOP BIT
I2C>[0xa1 r:8]
I2C START BIT
WRITE: 0xA1 ACK
READ: 0x00 ACK 0x11 ACK 0x22 ACK 0x33 ACK 0x44 ACK 0x55 ACK 0x66 ACK 0x77
NACK
I2C STOP BIT
I2C>

便利かも。


最近の投稿】【最近のCPUボード】【2017の投稿】【2016の投稿】【2015の投稿

2018年9月 1日 (土)

大橋純子 <齢を重ねてこそ>

 気が付かないうちにAmazonプレミアム会員になっていた。プレミアムお試しで買ったときに自動的になったようだ。 
プレミアム会員になったのならと、プライム・ミュージックを聴いている。 unlimitedでないと聴けない曲も多い。

 庄野真代のアルバムあったので聴いていたら、荒井由美の中央フリーウェイをカバーしていた。

 他に誰か中央フリーウェイをカバーしているのだろうかと検索してみると、今井美樹、野宮真貴、大橋純子、山本潤子らがカバーしていることがわかった。 今井美樹、野宮真貴、大橋純子はプライム・ミュージックで聴けるが、荒井由美と山本潤子は聴けない。

 そんなわけで40年ぶりに大橋純子を聴いた。

 中央フリーウェイはTERRA2というカバーアルバムに収録されてる。 カバーアルバム(TERA2)を聴いてみると、いい感じだ。


↑(https://www.amazon.co.jp/中央フリーウェイ/dp/B072JWMPLQ)
PrimeMusicで聴ける

 夕張市チャリティ・カバーアルバム TERRAの最後にセルフカバーのシルエット・ロマンスが入っていた。 懐かしくなり、デビューした頃のシルエット・ロマンスをYoutubeでを聴いてみると、カバーアルバムの方がいい感じだ。

 重ねた歳(失礼)によるものだろうか。


↑( https://www.amazon.co.jp/シルエットロマンス/dp/B071JNZZ2K)
PrimeMusicで聴ける

###

 大橋純子さんは、喉頭癌治療のために音楽活動を休止されたらしい。
早く快復されることをお祈りいたします。

« 2018年8月 | トップページ | 2018年10月 »

2019年6月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

最近のトラックバック