近畿自然歩道を往く(伊勢志摩めぐりその1)

今年はダイトレ攻略で燃え尽きた感がありますが攻略すべきトレイルはまだまだ
たくさんあります。ねむいさんは現在交通費の割引が聞く近鉄を駆使して
伊勢志摩方面を攻略しかけています。今回もそんな攻略ルートの一つです。




朝の朝熊駅(だじゃれではない)・・・ねむいさんいきなり寝過ごして
だいぶ遅いスタートとなってしまったorz



何はともあれスタート・・・電車で我慢してたせいかいきなりもよおしてしまった・・
ううトイレトイレ(byくそみそテクニック)



であいの広場には水洗トイレがあります★
あぁすっきり♥(CV高宮なすの)
・・・すみません
このトイレのそばに登山道がありトレイル開始です・・・



朝熊が岳は信仰の山なのでお地蔵さんや丁石がたくさんあります。




ケーブルカー跡をクロスします。
ここからの景色は格別です♥




朝熊峠です。こちらの山荘跡からも良い景色が見られます★


朝熊峠からは宇治道の車道と合流します。



ここで山頂方面に進路を変えま・・ん?


んんんんんんんんん!!?



それはおいといて山頂を目指します。すぐに電波塔に出ます。



電波塔のある場所が山頂部で朝熊が岳山頂と八大竜王社があります。


もちろんここからの伊勢志摩の景色は格別なのです♥




お次は経塚群の中を下ります。




更に下ると一般参拝者と合流します。
極楽門をくぐって金剛證寺奥の院に。



そこから戻って金剛證寺本堂へ。


まんきんたん・・・実在したんだ・・・!



開山堂です。


金剛證寺の一通り見たので次の場所に行くか・・・と思ってたらその目線のさきには・・・


こっこれは・・・

ま、まさに・・・!

ヤダー//////////////////


そんな馬鹿なことやってたらルートミスしてしまいましたorz



旧参道を通るのが正解のようです。
しばらく進むと近畿自然歩道の道標があります。



しかしその道は序盤と打って変わってかなり荒れてます・・・


今は山の中、伊勢ドラブウェイが近くを走ってるはずですが・・・


やばい崩落箇所も越えます。


ようやく舗装路に・・・


ここは鳥羽レストパークと呼ばれる場所で、
春は桜で有名な場所だそうです(ルートミス中)


そのまま下って丸山庫蔵寺の分岐を見落としてたorz



丸山庫蔵寺の本堂です。



丸山庫蔵寺からの下りは滑りやすい石ばっかでヤバイです・・・!



やっとなだらかになってきたところで彦滝大明神があります。




下りきると今度は川沿いにひたすら進みます。



九鬼岩倉神社です。
加茂駅までもう少し!


のはずだったのですがこの道標で左折するとは知らずとおり過ごしてしまったorz
ファック!!!!!!!!!!!!!



加茂駅に到着です。
補給しながら第二ラウンドの準備を整えます。



次のルートは松尾駅からなので国道を加茂川に沿って移動します。
・・・この秘法館ってかつての鳥羽の・・・!?


ぜかまし


松尾駅に駅構内に近畿自然歩道の道標があります。
第二ラウンドスタート!


冬なので菖蒲園は休養中のようです。



青峯山登山口に来ました。こっから登山道です。
勾配のもゆるく、サクサク駈けあげることができました♥


ますきち岩です。


あまかぼうか岩です。


時折見える景色は素晴らしいです♥



前半の苦戦が嘘のようなサクサク具合☆


護摩岩です。



正福寺に到着です。


ここから先は舗装路です。



その前にちょっと寄り道。
車道を上がってNHKの中継局のある場所に。
ここが青峯山(天跡山)の山頂です。



あとはひたすら車道を下る!!!!!


夕日も美しい・・・


駆け下りろー!!!!


ここで県道と合流して更にみちなりに進みます。


もうすぐ日も落ちます。


い ぬ



近畿自然歩道のゴールの上の郷駅です。
もう少しだけ進みます。




伊離宮です。



磯部の御新田です。



磯部神社です。


日が落ちた直後に志摩磯部駅に到着しました。


着替えを済まして駅の外に出るとすっかり真っ暗です。


完全に暗くなった頃に特急に乗って還りました。
大和八木で乗換えなので寝堕ちができませんでしたが
無事乗り換え完了です




こんなわけで今年最後のトレランを〆ることができました。
朝から寝坊して中盤はルートミスしまくりでやばかったですが
後半は一度も落とさずほぼ予定時間に到着できたので安心しました♥

結局最後の最後までドタバタしてしまいましたが何とかなりましたので
皆様も良いお年を〜

近畿自然歩道(朝熊〜上之郷(〜志摩磯部)) GPSログ

いろいろ試す22

30日は〆のトレランに行くので年末恒例の奴を今やらせていただきます・・・


●フェライトビーズの使いどころ

注:SDMMC/SDIOのCLK信号に対してはまず初めに直列終端を行ってください。
  それでもだめなら下記フェライトビーズの使用を考えてください。


ねむいさんはおきぱでSTM32のFatFs移植サンプルを公開してることから「FatFsが動き
ません><」という漠然とし過ぎる困った質問を今でもコンスタントに頂くのですが、
もはやその原因の99.99%が単純な結線ミスとか接触不良が起こりやすいブレッド
ボードで配線30cmくらい引き伸ばしまくって通電してたとかそんなモン動くわけ無い
でしょ的内容だったのですがまた新たに別のクリティカルヘンテコな報告を頂きました。

最短の配線でSTM32F407ZGT6の基板を起こしたにもかかわらず昨今のUHS-1のカード
ではSDIOで認識すらしない、クロックの速度を落としてもダメで昔のUHS表記が無い
Class6とかのカードならOKというこれまた奇怪な不具合だったのです。

STM32のSDIOは1.8VのUHS-1の高速クロックモードには対応しておらず、早くても
HSモード(3.3V/52MHz)ですがHSどころかNSモード(25MHz Max)でもダメとのこと。
ダメなカードも型番を教えてもらったのでPCOnes'sで購入して私も試して見ました。
TranscendのmicroSDHCカード Class 10 UHS-I 600x (Ultimate) なるものです。

謎のMLCアピール・・・。


私が持ってるSTM32F407ZG系の基板は紅牛に無理やりF4を乗っけた基板です。
配線長もなるべく質問を頂いた方と合わせるようにmicroSDソケットを無理やり
とりつけてました。

で、こいつで試すと確かにHSどころかNSモードのクロックでも全く認識しなかった!
念のため別の会社のUHS-1のカードも複数枚試しましたが結構な確率で認識できない
ものが存在していました・・・!UHS無しのClass10表記の奴やねむいさん愛用のATPの
Class6の4GBの奴
はエラッタもちのF407系のいんちきHSモードでもバッチリ認識
できてるのですが・・・ひとまず信号の測定に掛かります。


これがATPのmicrosdhcのクロックの波形(NSモード/24MHz)です。


んでもってこっちがTranscendのほうの波形(NSモード/24MHz)。
ATPのよりも信号のふり幅が狭くなおかつリンギングも激しくなってる感がしますね。


波形の測定に関してはGNDリードの影響を抑えるために当然最短にして測定して
います。あとPCオシロのトリガはETSモードにして等価サンプリングレートを
10GHzとしてます。
STM32のSDIOのクロックはパワーセーブにしない限りは常に出っ放しになるので
繰り返し信号として測定でき、精確な波形測定ができるわけです。

話を戻しますが二つの波形の違い、なぜこんなに違うかですがこれはUHS-1のカードは
100MHz以上で動作できるUHSモードで転送する際はNSモードやHSモードよりも高速な
立ち上がり/立ち下がりを当然要求されるわけでそれに合わせてI/Oをこしらえて
いますが、悪い条件が重なったときに信号の反射によってオーバーシュートや
リンギングが激しく出ることになります。
過去のClass表記のみのカードでは高々50MHzまで動けたら良かったので高速な
I/Oを必要とせず、オーバーシュートやリンギングは同条件でもそこまで大きくは
ならない・・・と想定できます。

さて、状態は観測できたので後は対策です。こういうケースの場合はフェライト
ビーズを各信号ラインに直列に入れてやると効果が出るはずです。


いろいろ試してねむいさんの手持ちのフェライトビーズの中ではBLM18BB121SN1D
かなり効果があることが分かりました。この対策で認識できなかったUHS-1のカードも
無事見ることができました(NS/HSモード共)。


これが対策後のTranscendのCLKの波形です(NSモード/24MHz)。
リンギングがしっかり抑えられてるのが分かりますね〜。

こんな感じに無理糞つけけております。
念のためTranscendのとは別の認識できなかったUHS-1のカードも試してみましたが
すべて無事認識できるようになりました。ちゃんと対策として効いているようです♥

これより大きい抵抗値の奴ではHSモードでクロックが大きく崩されすぎてダメになって
しまいます。やっぱり程々が大事です。
また、秋月さんのとこで購入できるタイプのフェライトビーズでは特性が少しなだらか
なため余り効果が出ませんでした。とはいえねむいさんが選んだ奴もかなりピーキー
なのでそのまま真似しても多分効果は出ないと思います。

こういった信号の反射の影響度合いは設計するボードごとに大きく変わってくるので
オシロとにらめっこしながらカットアンドトライをしなければならない領域です。
GNSSモジュールの時も言いましたがむやみやたらにフェライトビーズを突っ込み
まくっても逆にノイズやリンギングをパワーアップさせてしまうことになりかねません。
また、オシロのプローブも見たい信号を正しく測定できるようにGNDリードを超最短
にするなどの配慮も必要で開発者としての様々なセンスが問われることになります。

と、ここまで苦労してSDIOの信号波形整て認識できるところまで持ってきましたが、
GPIOが速度面で強化されたSTM32F43x/42x系とかF7系を最初から使っとけば
上記のめんどくさいことをなーんにもやらなくても安定してSDカードを読み書き出来
たりします・・・酷いオチだ・・・。




全然関係ないですが大阪日本橋のPCOne'sでSDカードのついでに買ったスマホ置き台が
STM32F7Discoveryとぴったりフィットできる形状なので重宝してます♥



●GCC ARM Embedded in Launchpadの2015年Q4版が出る!

一年に4回リリースされるLaunchpad GCCの最新版がリリースされています。
今回はついにGCCバージョンが5になりました!

早速新旧比較をしてみたいと思います。まずは同じ条件でビルドした際のバイナリ
サイズ比較です。条件は以下のとおり。

F7のいつものの20151224版
・SDMMCのクロックはNomalSpeed(24MHz)
・-Ofast,HardFP
・AXIMからフラッシュ実行/SDRAM有効/フォントは内蔵フラッシュに格納
・使用SDカードはAF4GUD、SDFormatter4.0でフォーマット

旧:2015q3版(GCC4.9.3)

arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 224288]
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 602096 0 602096 92ff0 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
599808 2288 821392 1423488 15b880 main.elf


新:2015q4版(GCC5.2.1)
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.2.1 20151202 (release) [ARM/embedded-5-branch revision 231848]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 612272 0 612272 957b0 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
609984 2288 821392 1433664 15e040 main.elf


バイナリサイズは2015q3版より10kByteほど増えてますね・・・
今度は実行処理速度比較です。SDRAMの時と同じようにlibjpegの展開時間の比較を
行ってみました。


旧:2015q3版(GCC4.9.3)


新:2015q4版(GCC5.2.1)

・・・イケてるじゃないですか・・・(セルピコ顔で)
なんか去年もモズグス編のセルピコさんになった気がしますが、最適化の悪影響が
及んでるかもしれないのでもうすこし様子見して安全性を確かめたいとおもいます。
丁度明日は今年最後のトレランに行くので屈作のSTM32Primer2GPSTr@ckerに2015q4版で
ビルドしたバイナリを書き込んで試してみるつもりです★



●Firefox版赤福が署名に対応する
虹裏関連のお話ですがFirefox版赤福spが署名チェックに対応することになりそうです

FirefoxはVersion44から拡張の署名が強制になり署名が無い拡張は撥ねられて
動作不可能になるとアナウンスされており署名が無い赤福spが使えなくなると
言われていましたが・・・作者の方ももう気付かれて対処されるようなので等分の間は
安泰でいられると思います♥

この調子で合間合間にも対応してくだち・・・



●年末恒例のねむいさんFAQ

Q:わたしは(何らかの下らない他人の自慢話なので省略)
 なぜOpenOCDにこのバグが組み込まれてしまったか考えてみてください。
 ↑(原文ママ)

A:ねむいさんこの質問風八つ当たりにうっかりクソ真面目に答えてしまいました。
 ウブなねむいさんはこのバグの部分とは無関係だったにもかかわらずソースコードの
 更新履歴を丹念に調べエンバグされた経緯と対策まで連絡してあげました。もちろん
 質問されたクソ野郎方からその後どうなったか返事なぞまったくいただいて
 おりませんが、実はkinetis.cにある致命的な"このバグ"はまだ修正されておりません
 が、
 次に同じようなこと聞かれたら適切な返事を返してあげようと思います。
 バカめと。
 ↑20160212追:
 kinetisドライバに真っ当にご助言いただいた方々にこれは俺の事かとお叱りの
 メールを幾つもいただいてしまいました。誤解を招きまことに申し訳ございません。

 致命的なバグはとあるぱちもんデバッガ使ったときに発動するのですが、
 ねむいさんに対してそういう情報隠して正規品使ってると秒速でバレる嘘ついて
 "動くようにしろ""対処してください"とかいって情報聞き出してくる奴は絶対に
 許さないのでそういった御仁たちは拙者尽く伊達にして返すでござる。

Q:ねむいさんってツイッターとかしてないんですか?
 所詮は批判を恐れ安全な場所から一方的に意見を言い放つことしか出来ない
 ティキンなのですか?
A:それはイエスでもありノーでもありますのだわ・・・(第五ドール風に)
 ねむいさんはいろいろあってツイッターやめた代わりにこのねむいさんのぶろぐ
 立ち上げました。かれこれ7年位前のはなs・・・グハッ!!!!


Q:ねむいさんってLINEとかしてないんですか?
A:ま だ ガ ラ ケ ー 使 っ て ま す

Q:スマホでピッ!簡単電子工作★
A:ま だ ガ ラ ケ ー 使 っ て ま す
 っ て 言 っ て る で し ょ コンチクショー




(以下ほぼ実際にあったやり取りですだいぶ前の話ですがもう時効だから書きます)
Qr:鶴岡工場(旧NECエレ系列工場)閉鎖ね
A:あっそ良かったねおめでたうございまs・・確かここって旧NECの・・・
Qr:ついで(?)にあんたのところのASIC生産中止だね
A:何ですって・・・!?
Qr:この前のが最終ロットね。今までご利用いただきありがとうございますを
A:あ”!?(CV柴田理恵)
Qr:代わりに弊社のSmar●tAnalogをご採用願います(営業スマイル)
A:カエレヤ!!
 (ここでルネサスと完全に手が切れPSoC5を採用しかけたが・・・)

Qp:gff...ねむいさんねむいさんそのセミカスタムのASIC、こちらでも
 起こせますよ・・・(はげたかのような目で)
A:オゥこれはありがたい・・・

Qrohm:ルネサスさんからのディスクリートデバイスの置き換え表ありますよ・・・
   ・・・gff(はげたかのような目で)
A:オゥこれはありがたい・・・

ディスクリートデバイスは旧NECエレでがっちり固めてたからヤバかったです。
R○HMさん(○は伏字)ありがたう!!!
今は東芝半導体がチャレンジ()の成果もあってRenesasに合体しそうでやばそう
ですね・・・東芝さんのもかなり使ってるんですけぉ・・・


さぁそれはおいといて明日も早いから寝ましょう・・・Zzz・・・

↓としあきくんからのリクエスト↓
Q:カレン金剛の声の区別が付かないデース
A:ネムイサンも区別付かないデース(CV:柴田理恵)
 ・・・と言うのはおいといておすぎさん(悪堕ち)とピーコさん(純粋悪)に同時に襲われたら
 ピーコさんと間違えて悪堕ちした無罪のおすぎさんをうっかり攻撃してしまうくらい
 "うつけ"です・・・

Q:ねむいさんって雑誌に投稿したりしないの?
A:どのジャンルのこといってるのか分かりかねますができたらとっくにやってます。
 そいえば2014年初夏にC9出版のドメインのメアドで「記事作成を手伝って
 みませんか?
」という何か目的をぼかした内容のしかも文語体と口語体が混じっておまけに
 芝まで生やしたメールを頂いたのですがちょっと怪しかったのでCQ出版の
 お問い合わせにメールで(差出人の方の名)さんはそちらに在籍されていますか?
 とたずねたのですが問い合わせをしてからはや約1年と8ヶ月、何の音沙汰も
 ありません。問い合わせついでにトラ技の誤植を指摘したのがいけなかったのでしょうか・・・
 やっぱし本当にフィッシング目的の偽装メールだったかも。

Q:ブラギガスを検索したら諸星きらりが何故かサジェストに出てきました。
 虹裏メイドのねむいさんはなにか知ってそうな顔してますが・・・洗いざらい吐け
A:にょわー(野太い無理やりな高い声で)
 ↑もし隣からこんな絶叫きらり語聞こえたら速攻警察屋さん呼びますよぅ!!

STM32F7を使ってみる8 -CubeF7のHALライブラリにバグ-

クリスマス前に副業先で超F**Kな出来事が立て続けに起こったおかげで土日も
それの対応に追われホント超F**Kな気分でしたがやっと自体が収まりつつある
のでぶろぐ更新してみました。あと本業(虹裏メイド)のほうもステキなクリプレ
完成しましたからとしあき君たち替えのぱんつ用意して待ってなさい!!
以上業務連絡終り。



●STM32F7Cubeが更新
少し前にCubeF7ライブラリがV1.3.0に更新しておりました。前回指摘されていたHAL
ライブラリ中のSDカードの容量を正しく取得できないバグは直っておりました。
容量計算のための変数をuint32_tで取っていたので32GByte以上の容量のカードだと
値がおかしくなっちゃうという昨今の大容量化では良くある光景です。

どうやらCubeF7に収録されているデモとかでは影響が無かった為かユーザーに
指摘されるまで気付かなかったようです。Cube系ライブラリに移行してから
ずっとこんな調子ですがねむいさんも新たなバグを見つけてしまいました。


●おっと新バグ発見伝
今回の更新にあたり、fatfsのsdmmcドライバで今まで適当に作りこんでいた
SDカードの内部レジスタを読み出す部分のルーチンを見直して正しく取得できる
ようにし、更にCIDレジスタをパースする機能を追加してみたのですが何でか
いくつかの値がちゃんと読み出せず、ちょっと困っていました。
デバッガで追って調べるとなんとHALライブラリ側にバグがありました。

HAL_SD_GetCardStatus()という関数の冒頭でステータスレジスタを取得する
内部変数のバッファをuint32_tで宣言しているのですが、取得後pCardStatusの
各構造体要素に代入する際にuint8_tの配列と勘違いして処理して代入してました。

↑HAL_SD_SendSDStatus()の2つ目の引数がuint32_t*なのでそれに合わせて
 しまった模様


実は過去のSTM32F4などの標準ペリフェラルライブラリ(SPL)では
HAL_SD_GetCardStatus()に相当する関数内で最初からuint8_tとして宣言して
いたのでこの問題は出なかったのですが・・・完全にエンバグですね・・・
(SPLのほうも微妙にバグってますが)というわけで対策はSPLの真似して配列を
uint8_tで64バイト分宣言すれば終りです。

このバグはSDカード使う人は結構踏んでると思うのでSTマイクロの公式のフォーラム
にも報告しておきました
。bugって文字が乱舞するようになったフォーラム
ですが新たなbugがまたひとつ。

そんなわけで上記のバグを潰してUARTから操作するChaN氏のFatFsのデモでds
コマンドを打った時のSDカードの各レジスタのダンプに加えてCIDレジスタを
パースする機能を無事追加できました。SandiskのExtremePRO microSDHC 8GBを読み出した
際の表示は↓こんな感じになりました。
してます★


>ds 0
rc=0
Drive size: 15523840 sectors
Erase block size: 8192 sectors
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 5B 59 00 00 3B 37 7F 80 0A 40 40 AF @..2[Y..;7...@@.
CID:
00000000 03 53 44 53 55 30 38 47 80 1B B8 C2 F6 00 C8 2F .SDSU08G......./

Parsing CID Register
Manufacturer ID :0x3
OEM/Application ID :SD
Product Name :SU08G
Product HwRev :8
Product SwRev :0
Serial Number :0x1BB8C2F6
DateCode.Month :8
DateCode.Year :2012

OCR:
00000000 C0 FF 80 00 ....
SD Status:
00000000 80 00 00 00 03 00 00 00 04 00 90 00 14 05 1A 00 ................
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
SCR:
00000000 02 35 80 03 00 00 00 00 .5......

Parsing SCR Register
SD Spec Version :2
SD Spec Version 3 :1
SD Spec Version 4 :0
SD Security :3
SD Bus Width :5


おきぱのF7向けFatFs動作サンプルには今回得られた成果を収録して更新しました。
ねむいさんからのくりぷれです!

STM32も進化を重ねF7になった今でもやってることは相変わらず、SDカードから
読み出した画像データや動画を表示せしめることしかできませんがねむいさんは
F10とかになってもきっと同じことしてるでしょう。いいか我々にはこれしか道はない!
私はロリ↓コン↑ではない!
↑ねむいさんの好きなゼEROのキャラはカーネルやジェネラルのレプリフォース勢


ついでに初期F4シリーズ向けLPC1788そしてLPC4088のFatFsサンプルも
SDカードの内部レジスタを正しく表示/パースできるよう更新しました。
そいえば今回の改修の際に気付いたのですがSTM32F4向けのCubeF4以前の
SPLがなんと今年秋にアップデートしていました
・・・しかもDSI使える最新の
STM32F469/479にも対応してます。こちらももちろん反映してあります!

さらにGitHUBにあるSTM32Primer2 GPSTr@ckerもプログラム中では直接使用
してはいませんが別のプロジェクトに流用した時すぐ使えるようにSDIO
ドライバを更新してます。
じわじわと外人さんからの需要が出てきているようでうれしい限りです★


CIDレジスタのパース機能を付けたおかげもあって他のSDカードだとどうなって
いるのかも興味が出てきましたのでいろいろ読み出して試してみようと思います。

Go to top of page