いろいろ試す50(+2021年反省会)

今年もいろいろありましたね…
月一更新は何とか続いてますがネタはあるのですが試す時間がない状態で
どんどん積みあがってる状態です…!



●Transcend製産業用MicroSD TS256GUSD430Tを試す!

ちょっと臨時収入が入りましたのでAMAZONのTranscend公式から産業用MicroSD
TS256GUSD430Tを購入しました!!



こちらは以前購入したSLCModeの品種と同じくS.M.A.R.T.を取得せしめることが
可能となっており、寿命の把握が簡単にできます!


また、SLCModeは無く通常の3D-NANDの構成のため以前のものと比べてちまちま
書き込みはそこまで早くはないのですが、これも実用には十分すぎるレベルと思います。


次にSTM32H7DiscoveryのFatFsサンプルでカード情報を読みだしてみます。

FatFs module test terminal for STM32H747XIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Dec 30 2021
>fg piano

rc=0 FR_OK
>fo 1 ftbt.mp3

rc=0 FR_OK
>fr 132949600

132949600 bytes read at 22051 kB/sec.
>fs

FAT type = exFAT
Bytes/Cluster = 262144
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 32768
Number of clusters = 943744
Volume start (lba) = 65536
FAT start (lba) = 98304
DIR start (lba,clustor) = 4
Data start (lba) = 131072

Volume name is TS256GUSD
Volume S/N is 9C33-6BBD
...
1 files, 132949600 bytes.
241598464 folders.
241466624 KiB total disk space.
4 KiB available.
>ds 0

rc=0
Drive size: 483328000 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 DB 79 00 07 33 BF 7F 80 0A 40 00 85 @..2.y..3....@..
CID:
00000000 74 4A 60 55 53 44 55 31 20 31 07 84 ED 01 57 09 tJ`USDU1 1....W.

Parsing SD CID Register
Manufacturer ID :0x74
OEM/Application ID :J`
Product Name :USDU1
Product HwRev :2
Product SwRev :0
Serial Number :0x310784ED
DateCode.Month :7
DateCode.Year :2021

OCR:
00000000 C1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 08 00 00 00 04 00 90 00 08 11 39 1E ..............9.
00000010 00 08 00 00 00 02 FC 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 05 84 87 00 00 00 00 ........

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

SD_Spec V6.xx!
Detected as Not SD Card!
Available UHS-I Mode.
Available UHS Speed Class U3.
Available SD Speed Class 10.
Available Video Speed Class 30.
Available Application Performance Class2, A2 Card.
A2 CommandQueue Depth 32 Supported
A2 Cache Supported.
>

もう当たり前のようにA2(対応ホストじゃないと恩恵ないですが)でU3速度ですね。
純粋な読み出しスピードも22MB/Secと理論上の速度に近い値が出てますね。


お次はCMD56コマンドでSMART情報を読みだしてみました。
ぇっ?どうやって見るのって?
./lib/ff/sdmmc_stm32h7.hとか見たら幸せになれるかも!?


"Transcend"のヘッダが読みだされ、ちゃんとSMART情報が得られていることが
わかります。生データはこちらになります。


そしてRDF5を使ってあれを使うとWindowsからSMARTを読み出せちゃいます!!
ねむいさんがあまりにダイナミックにやってしまったせいか"ソフトは法人専用"って
念押しの文章が付け加えられてしまいましたが仕事でTranscendのCF使ってるから
セーフ!セーフ!!
それはさておき"Current SD Card Sped Mode"のD0ってなにやねんという
ところですがここに相当する番地(0x47)の値が0となっているため12MB/Sec
(DefaultSpeed)扱いになってるようです。
でもちゃんとUHS-Iの速度は出てるのは上のベンチにあるとおりです。
まぁ動作に影響はないので問題はないでしょう〜

というわけでTaranscendの産業用カードを紹介しました。こちらもRaspi用
ストレージにお勧めだそうで、230Iでは容量が足らない場合はこちらを使って
みたらよいと思います。



●プローブを短くて使いやすいやつに買い替えた話

今日びのオシロプローブは細かい回路に対応するためプローブ本体もコンパクトに
なっておりますがTektroとかの正規品はべらぼうに高くなかなか買う気が起きません。
そんな折安価なプローブでおなじみのHONGKONG TEXAS社から新型プローブ
販売されていることを知り早速購入しました!!!

まだ秋月には出回っておらず、だいぶ前にktekさんという業者さんより購入しました。
先っちょにつける高速信号用アダプターがおまけです。

TX6550A/Bはアナログ帯域は500MHzあり、実力は十分です。
なおTX6550Aが先端シャフト系2.5mm品でTX6550Bが従来の5mm品です。


秋月で販売されている同社の同スペックのプローブと大きさ比較です。
もう図体が全然違うことがわかりますね〜細かい回路でプローブ引っ掛ける際に
特に4CHぜんぶつかうような場面で非常に使いやすいです。
あと願わくばケーブルも細く引き回しやすくなってくれるとありがたいですね。
きわめて高価なTektroのケーブルはすごい細くて柔らかく、そのあたりに値段差が
出てきているのかなと感じました…が普通に使う分にはTX6550でも十分恩恵は
得られるとおもいます!

ちなみにTEXAS製のプローブはKeySight等のれっきとした測定器メーカで使用されて
いる純正プローブのOEMとなってます。、N2890AはTX6250に、N2873A
TX6550Aに形状が酷似していることからわかりますね。


ねむいさん的には5.0mm版限定のおまけでつけてくれたPA001という高速信号用
アダプタがちょっとうれしかったです。ピンヘッダから出てる信号を確実に
計測するのにすごく役立ちます!!

てわけでますます使いやすくなった測定器環境ですが持ち腐れさせずに
バンバン使い倒していきたいと思います!!そうだね宣伝だね


●arm-gcc定期更新
ARM預かりになって以来すっかり更新頻度が減ったarm-gccですがいつのまにか
更新していたので比較してみました。
主な変更点ですがGCC10.2.1->GCC10.3.1に代わりました

arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release)
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 766928 0 766928 bb3d0 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
764276 2652 2383304 3150232 301198 main.elf
main.elf :
section size addr
.text 0xba7f0 0x8000000
.ctors 0x0 0x80ba7f0
.dtors 0x0 0x80ba7f0
.ARM.exidx 0x8 0x80ba7f0
.itcm 0x17c 0x0
.data 0xa5c 0x24000000
.bss 0x11c40 0x24000a60
.heap 0x0 0x240126a0
.dtcm 0x20c 0x20000000
.stack 0x4 0x2000020c
.ram1_d2 0x0 0x30000000
.ram2_d2 0x0 0x30020000
.ram3_d2 0x0 0x30040000
.ram4_d3 0x0 0x38000000
.batram 0x0 0x38800000
.extram 0x233f78 0xd0000000
.qspirom 0x0 0x90000000
.comment 0x49 0x0
.debug_aranges 0x4d18 0x0
.debug_info 0x1185fe 0x0
.debug_abbrev 0x18d28 0x0
.debug_line 0xb861e 0x0
.debug_frame 0x13690 0x0
.debug_str 0x1bc6b 0x0
.debug_loc 0x147070 0x0
.ARM.attributes 0x32 0x0
.debug_ranges 0x1cd48 0x0
Total 0x682922



arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10-2020-q4-major) 10.2.1 20201103 (release)
Built Informations:
USING_SYSTEM = BARE_METAL
USING_DISPLAY = USE_OTM8009A_DSI_TFT
USING_DEVBOARD = USE_STM32H747I_DISCO

Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 767104 0 767104 bb480 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
764452 2652 2383304 3150408 301248 main.elf
main.elf :
section size addr
.text 0xba8a0 0x8000000
.ctors 0x0 0x80ba8a0
.dtors 0x0 0x80ba8a0
.ARM.exidx 0x8 0x80ba8a0
.itcm 0x17c 0x0
.data 0xa5c 0x24000000
.bss 0x11c40 0x24000a60
.heap 0x0 0x240126a0
.dtcm 0x20c 0x20000000
.stack 0x4 0x2000020c
.ram1_d2 0x0 0x30000000
.ram2_d2 0x0 0x30020000
.ram3_d2 0x0 0x30040000
.ram4_d3 0x0 0x38000000
.batram 0x0 0x38800000
.extram 0x233f78 0xd0000000
.qspirom 0x0 0x90000000
.comment 0x4d 0x0
.debug_aranges 0x4d18 0x0
.debug_info 0x118608 0x0
.debug_abbrev 0x18d28 0x0
.debug_line 0xb86c1 0x0
.debug_frame 0x1367c 0x0
.debug_str 0x1bc6b 0x0
.debug_loc 0x14786a 0x0
.ARM.attributes 0x32 0x0
.debug_ranges 0x1cdd8 0x0
Total 0x6832f9


同条件ではバイナリサイズが767104->766928とスリムになってますね
速度のほうもおいおい試してみます。


●avr-gccも上がった
avr-gccは有志の方が常に最新ビルドしてくださっており非常にありがたい存在
となっております。サポートデバイスに関してはこちらのエントリで紹介している
方法で新デバイスでも対応可能です。

avr-gcc (GCC) 11.1.0
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 125546 0 125546 1ea6a main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
125406 140 5903 131449 20179 main.elf
main.elf :
section size addr
.text 0x1e9de 0x0
.data 0x8c 0x802000
.bss 0x170f 0x80208c
.comment 0x12 0x0
.note.gnu.avr.deviceinfo 0x40 0x0
.debug_aranges 0xa60 0x0
.debug_info 0x285c5 0x0
.debug_abbrev 0x68ff 0x0
.debug_line 0x31c89 0x0
.debug_frame 0x1ea8 0x0
.debug_str 0x66d1 0x0
.debug_loc 0x1f9f9 0x0
.debug_ranges 0x1ab0 0x0
.debug_line_str 0x2a 0x0
Total 0xab1c4


avr-gcc (GCC) 10.1.0
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 125628 0 125628 1eabc main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
125488 140 5903 131531 201cb main.elf
main.elf :
section size addr
.text 0x1ea30 0x0
.data 0x8c 0x802000
.bss 0x170f 0x80208c
.comment 0x12 0x0
.note.gnu.avr.deviceinfo 0x40 0x0
.debug_aranges 0xa60 0x0
.debug_info 0x27c29 0x0
.debug_abbrev 0x6758 0x0
.debug_line 0x3295d 0x0
.debug_frame 0x1ef0 0x0
.debug_str 0x66e6 0x0
.debug_loc 0x1f5e0 0x0
.debug_ranges 0x1aa0 0x0
Total 0xaafb1


バイナリサイズが125628->125546に減ってる!やったー!

一時期は黒歴史にまで落ちたAVRですが私の中で再び復活してきたのでこれからも
STM32の弟分の位置付けて使っていこうと思います!!





というところで2021年最後の記事となります。
来年もこんな感じでぼちぼちと続けていきますのでよろしくお願いいたします!






>ところでねむいさん昔のブログ記事の画像
->そ、それでは皆様よいお年を!!11!!!!

Go to top of page