いろいろ試す34

あああ…夏がおわる…

●GNU Arm Embedded Toolchainが新しくなった夏
忘れたころに更新されることで有名なARM提供のGCCツールチェイン
が更新されていました…

日付は6/23版となっています…2018q2版になってますね
下記の修正が入っています。他は大きな違いはないと考えられます。

Important changes in 7-2018Q2 update release:
* Fixed powf/expf/exp2f/logf/log2f performance regression
https://answers.launchpad.net/gcc-arm-embedded/+question/662462
* Added support for Arm Cortex-M33 without DSP via -mcpu=cortex-m33+nodsp
* Added Armv8-R multilib mappings
* Fix build requirements for GDB tui support
* Enabled C99 IO format specifier in newlib
* Fixed cmse_nonsecure_caller Armv8-M Security Extension intrinsic
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85203
* Fix crash in __builtin_arm_set_fpscr GCC builtin
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85261
* LTO bug https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966
was fixed in previous release. Release note updated to reflect the change.
* Fixed issue with building libgcc's cmse.c without headers
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1717502
* Fixed issue with arm_cmse.h C99 compatibility
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1773934




●UHS-兇離泪ぅロSDカードを動かしてみる

買ってしまった…
日本橋に寄った際に目に入ったUHS-兇離泪ぅロSDカード…
ねむいさん今省エネモードなのでお金の使い方も省エネで64GBとか買えないので
32GBのSDHCとなっています…



東芝のEXCERIAシリーズの最高峰に位置するM501とかいうモデルです!!!
UHS-桐僂涼嫉劼追加されていますね!



SDカードサイズへの変換アダプタもUHS-胸斗佑箸覆辰討い泙垢諭


早速ベンチマークをとって見ましたが…ねむいさんのUSB3.0カードリーダーは
UHS-教格に対応してなかったorz
ていうわけでUHS-Iの規格ですがチマチマ書き込みもまぁそこそこですし使い物には
なると思います。


ねむいさんのいつものでカード情報を読み出してみました
FatFs module test terminal for STM32F769NIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Jul 28 2018
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 20989 kB/sec.
>ds 0
rc=0
Drive size: 62529536 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 5B 59 00 00 EE 87 7F 80 0A 40 00 53 @..2[Y.......@.S
CID:
00000000 02 54 4D 58 41 30 44 35 44 E2 51 8E B2 01 12 6B .TMXA0D5D.Q....k

Parsing SD CID Register
Manufacturer ID :0x2
OEM/Application ID :TM
Product Name :XA0D5
Product HwRev :4
Product SwRev :4
Serial Number :0xE2518EB2
DateCode.Month :2
DateCode.Year :2017

OCR:
00000000 E1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 05 00 00 00 04 02 90 00 20 07 3E 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 B5 84 03 3C 03 47 82 ....<.G.

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

SD_Spec V4.xx!
Detected as SDHC Card!
Available UHS-II Mode.

ちゃんとUHS-競癲璽匹あることを認識していますね。
STM32シリーズはUHS-競癲璽匹離ぅ鵐拭璽侫А璽垢呂泙逝減澆靴討りませんが
UHS-競癲璽匹あるか否かはACMD41コマンドでわかります。
ACMD41を打って還ってくるレジスタの37番目のビットが1ならばUHS-饗弍を
唱っていることになります。



●OpenOCDにセキュリティホールがあるらしい
まじかー
OpenOCDも攻撃されるほど有名になっていたのですね〜

一応対応策が提示され、gerritにも上がっているようですが2018年の1月で
審議が止まっているようです

STM32F7CubeがV1.12.0になった

とうとう1年の半分が終わってしまいましたね…
STM32やOpenOCD関連は今でも地味に着実に更新が続いておりますのでこちらも地味に
紹介を続けさせていただきます…



さて、今回の更新ではSTM32F7の低価格帯製品であるSTM32F73xとF75xのサポートが
追加されています。それに伴いHALライブラリもV1.2.6にアップデートしました。

F73xやF75xはたぶん早々にNUCLEOが出ると思いますがリリースされたら購入して
レポートさせてもらいます。それと海外の人にも"H7の記事はまだか"と頻繁にメッセージ
いただきますがH7シリーズはひたすらDiscovery待ちです
現行出ているH7は機能がちょっと微妙でF7から乗り換える利点があまりなく、
次世代のもうちょっと機能が上がった奴を待っている状態です。

もう一つの更新は…STM32F7もどっかのLPC4300シリーズみたいにQSPI等の外部ROM
にメモリマップドでつながったプログラムを実行できるのですがそれの実例が追加
されたことです。残念ながらSTM32の場合はブート時にいきなり外部ROMから起動は
出来ず一旦内部Flashでブートコードを経由して実行する仕組みになっています。

まぁF7の場合はキャッシュと莫大なRAMと内部Flashがあるので無理くそQSPIにプロ
グラムを実行しないでもいいのですが来月あたりに時間ができたら私も実証して
みたいと思います。


ということでSTM32F7CubeV1.12.0を反映したFatFs移植例はおきぱに公開したので
皆さんご利用ください。またFatFsも0.13bの新しいパッチが出ていたのでこちらも
盛り込んでおります!

OpenOCD小ネタ22 -STM32F7系CFG変更の件-

まだ6月ですがもう梅雨が終わりそうなくらい暑いですね〜
子供の頃の季節感覚だと6月に梅雨が終わり7月から夏!
て感覚なので実際の季節がそれに近くなってるのかも…


さて、OpenOCDのSTM32F7系向けのcfgファイルが更新されていますので
お知らせします。


内容はリセット時のクロック設定を内部高速クロックに変えて、さらにPLLを
経てコアクロック周波数160MHzにブーストしたものが反映されております。
スクリプトはオリジナルは…

$_TARGETNAME configure -event reset-init {
# Configure PLL to boost clock to HSI x 10 (160 MHz)
mww 0x40023804 0x08002808 ;# RCC_PLLCFGR 16 Mhz /10 (M) * 128 (N) /2(P)
mww 0x40023C00 0x00000107 ;# FLASH_ACR = PRFTBE | 7(Latency)
mmw 0x40023800 0x01000000 0 ;# RCC_CR |= PLLON
sleep 10 ;# Wait for PLL to lock
mww 0x40023808 0x00009400 ;# RCC_CFGR_PPRE1 = 5(div 4), PPRE2 = 4(div 2)
mmw 0x40023808 0x00000002 0 ;# RCC_CFGR |= RCC_CFGR_SW_PLL

# Boost SWD frequency
# Do not boost JTAG frequency and slow down JTAG memory access or flash write algo
# suffers from DAP WAITs
if {[using_jtag]} {
[[target current] cget -dap] memaccess 16
} {
adapter_khz 8000
}
}

$_TARGETNAME configure -event reset-start {
# Reduce speed since CPU speed will slow down to 16MHz with the reset
adapter_khz 2000
}

となっていますがねむいさん提供のOpenOCDバイナリはオリジナルから若干違います。


$_TARGETNAME configure -event reset-init {
mww 0x40023C00 0x00000102 ;# FLASH_ACR = PRFTBE | 2(Latency)
# Configure PLL to boost clock to HSI x 4 (64 MHz)
mww 0x40023804 0x03001008 ;# RCC_PLLCFGR 16 Mhz / 8(M) * 64(N) / 2(P)
mmw 0x40023800 0x01000001 0 ;# RCC_CR |= PLLON | HSION
sleep 10 ;# Wait for PLL to lock
mmw 0x40023808 0x00001000 0 ;# RCC_CFGR |= RCC_CFGR_PPRE1_DIV2
mmw 0x40023808 0x00000002 0 ;# RCC_CFGR |= RCC_CFGR_SW_PLL

# Boost JTAG frequency
adapter_khz 4000
}

コアクロックを上げた後クロックを上げていますが安全のためオリジナルと違って
4000kHzまでとしております(JLINKがこの周波数以上ではなぜか不安定)。

いずれにせよ使用感は変更前とまったく変わらない感覚ですので皆さま安心して
お使いいただけると思います!

いろいろ試す33

冬が過ぎたと思ったらもう夏ですね…いやはや今年は本当に展開が早い
…STM32H7Discovery遅いな…H7自身もリリース遅れ気味ですし

●携帯音楽プレーヤーのリチウムポリマー電池を自力で交換する

!注!
リチウムイオン電池およびリチウムポリマー電池は取り扱いを誤ると簡単に
爆発炎上します!特にはんだ付けタイプのものは作業中にショートを起こし
やすく、はんだ付けの熟練者以外は絶対に興味本位で取り扱わないでください!
また、当ぶろぐエントリをもとに電池交換の真似をしてあらゆる被害をこうむった
如何に関わらずねむいさんは一切の保証をいたしませんのでくれぐれもご注意
願います!





2018年の現在ではスマホでなんでもできるようになってしまいましたがなんと
ねむいさんはまだガラケーですがそんなことどうでもいいのですがかつて隆盛を
極めた携帯MP3プレーヤも家電量販店のごくごく片隅にひっそりと販売されている
始末です。

当時のヨドバシ梅田店でcowonという南朝鮮のメーカ製のiaudio9(その後9+に
買い替え)を購入しトレランのお供として長らく使って参りましたがとうとう内蔵
リポ電池が消耗しきってしまいました。
5年以上も前の製品なのでサポートがあるかどうかも怪しく、保証もとうに切れて
いるので自分で交換してみることにしました。


ねむいさんのトレランのお供としてゼERO再生機と化したiaudio9+の背面です。
野外で使用しまくったためかなりボコボコ…
中央に見える黄色いテープはiaudioを操作中に突然ブーと大音量で鳴って操作
不能になる不具合に陥った際にリセットスイッチを押すためのピンを本体に
張り付けるためのものです。


スマホの皮むきツールを駆使して丁寧に裏蓋を外します。幸いにもリポ電池は
交換しやすい場所にあります。


リポ電池のアップです。リポ電池の型番は電池サイズが容易に分かるように
なっていてiaudio9+ではPR-383540なので厚さ3.8mm、幅35mm、長さ40mmとなります。

残念ながらそのものずばりは存在しないのでebayでそれに似たサイズの奴を探して
きました。とりあえずオリジナルよりも3サイズが小さければ問題ないです。
そして…


キタ━━━(゚∀゚)━━━!!


2週間ほどでやってきました。税関でボッシュートされるかもと思いましたが。
ねむいさんが購入したリポ電池は403040サイズのものでiaudio9+に十分入る大きさ
でした。


それではリポ電池移植手術開始!
安全上リポ電池は過充放電防止回路やショート防止回路などが組み込まれている
(はず)です。ねむいさんも購入時は細心の注意を払って選んで買ったつもりですが
絶対に作業中にショートさせないようにして挑みました!


もとの電池を除去して新リポのリードを短く切って剥いて本体に慎重にはんだ
付け…あああ手が震える…もちろんもう片方のリードは厳重に絶縁しておきます。


そしてマイナス側…はんだコテでショートさせないように周りにマスキングを
貼り鉄壁の防御で作業開始…!GNDパッド広すぎて熱が伝わらん…


はぁはぁ…ッッできた〜〜!


そして緊張の火入れ…こちらも無事起動です☆
これでiaudio9+が復活しました!やったぜ!


ねむいさんiaudio9+を気に入ったので流通在庫があるうちにもう一台確保して
おきました。定期的に電池交換すればあと40年はゆうに戦える!!




●PCショップで販売されている廉価版のサンディスク製産業用マイクロSDカード
昨年サンディスク製の産業用microSDカードを紹介しましたがS.M.A.R.T(以下SMART)
が取れるものと取れないものがあるという検証も紹介しました。
今年に入って32GB版と64GB版のバルク版が安価で出回り出したので私もさっそく
一枚購入して動作確認をしてみました。


これが32GB版の廉価版です!


よく見るとSDSDQAF-032G-IとなっていてSDSDQAF2ではないことがわかります。
つまりこれはSMARTが取れない第一世代の製品である事を示します…が…!?


とりあえず第二世代の奴と並べてみました。
しまった…そっくりすぎてどっちがどっちか分からなくなった…


後ろから見た図です。
基板パタンに違いが見えますが製造プロセスで同じ世代でもいくらでも変わり
ますのでこれで判断することはできません…



とりあえずSDFormatterで更地にした後にベンチかけてみました。
読み書きは昨年の第二世代の奴と大差はないようです。


STM32のいつものでSDカードの情報を抜き出してみました

FatFs module test terminal for STM32F427IIT6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Jul 17 2017
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 19019 kB/sec.
>ds 0
rc=0
Drive size: 62333952 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 5B 59 00 00 ED C8 7F 80 0A 40 40 C3 @..2[Y.......@@.
CID:
00000000 03 53 44 53 43 33 32 47 80 90 5C 11 05 01 1B 0D .SDSC32G..¥.....

Parsing SD CID Register
Manufacturer ID :0x3
OEM/Application ID :SD
Product Name :SC32G
Product HwRev :8
Product SwRev :0
Serial Number :0x905C1105
DateCode.Month :11
DateCode.Year :2017

OCR:
00000000 C0 FF 80 00 ....
SD Status:
00000000 80 00 00 00 05 00 00 00 04 00 90 00 0F 05 00 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 01 00 00 00 00 .5......

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

SD_Spec V3.0x!
Detected as SDHC Card!
Available NS(or HS) Mode Only.

ぇええ…なんと2017年11月製ですって…
第2世代と並行して作っているということですか????まぁいいや


とりあえず前回のようにSMARTの取得を試みましたが…
残念ながらCMD56に反応せず、フン詰まりになってしまいました…
読み書き性能は第二世代と互角ですがSMARTの取得ができずCMD56送信による
寿命判定ができないという結論になりました。


以上のような結果になりましたがSMART機能が必要なければパッケージ品よりも
安い値段で32GB・64GBの産業用のmicroSDが購入できてしまいますので寿命判定
機能はいらないけど耐久性のあるカードが欲しいという方にお勧めです☆

Go to top of page