組み込みソフト屋 不惑の途

Latest Entries

NASとして使っていたHDDが認識されない事件

私、今単身赴任で一人暮らしをしています。
先日、自宅で構築していたNASのHDDのデータを両親が見られるような
クラウドサービスに移行しようと久しぶりにアクセスすると。

「フォーマットが必要です」

・・・?

HDDの情報を見ると、パーティションのフォーマットが「RAW」と表示されていて
中身が一切わからない状態になっていました。
RAIDも組んで安心して使っていたらそもそもアクセスできなくなるとは・・・。

焦っていろいろ試しました。
・TestDisk
・Recuva
など、有名どころは一通り。
でもどれもダメ。RAID組んでるからなのか?

と、ここでいろいろググっていると「復旧天使」なる不審な(失礼)ソフトを発見。
藁にも縋る思いで試行版をダウンロードしてスキャンしてみると・・・。

見えた!全部見えた!!

すごい!でも試行版だと770kB以上のファイルは復旧できない。
RAID対応版は個人用で19000円ほど。
でも業者に頼んだり、12年分くらいの思い出を失うことを考えると高くはない。

もうすぐさま購入。
見事に復旧できました!

ありがとう!復旧天使!不審とか思ってごめんなさい!!

皆さんも外付けHDDが「RAW」になってしまったら試してみてくださいね!
こちらです→復旧天使
スポンサーサイト

PDG2の罠(その2)

こんにちは。
前回、PDG2を使っていての注意点を書きました。
もうPDG2自体は開発中止のものなのであまり役に立つかどうかはわかりませんが、今回も注意せねばならないことを書こうと思います。

PDG2が生成するソースコードはリエントラントではありません。
つまり、非同期で動作するモノ(処理中に割り込みが入るとか)では注意が必要になります。
例えばUART通信するAPIを使ってソフトを組んだとします。
送信のAPIは制御がすぐ戻り、送信完了をコールバックで知らせるという仕組みが選べるのですが、このとき、戻った制御のすぐ後でまた送信APIを使ったりすると、送信データが上書きされます。

これは内部で使っているRPDLという共通ハードウェアライブラリの仕様で、静的変数を使って作られているためです。

通信系は通信そのものがボトルネックになるので、処理はずっと早く他のことができてしまい、誤動作がよく起こります。IIC(I2C)のようなものも一緒です。
同様に、コールバック関数内(つまり割り込み処理内)でAPIを使う場合も注意が必要です。
他の処理で使っている領域を、コールバック関数が呼んだAPIが上書きするケースがあるからです。

うまく使えば便利なPDG2ですが、いろいろとある制約を踏まえておかないとしっぺ返しがあります。
処理時間が重視されているケースでは、冗長な部分の多いPDG2は使わない方がいいでしょう。

自動生成ツールで生成されるソースコードはまだまだラクチンというところには至っていないな、というのが今でも感じられます。他のものはどうなんでしょうかね?

PDG2の罠

ルネサスの開発環境で、デバイスドライバ部分を自動生成してくれる
「PDG2」というモノがあります。

大変便利なのですが、あまり割り込みや内部動作を理解していない人が
使うと、不具合の解析に苦労する例もあるようです。

今回は、その一例を紹介します。

PDG2を使って非同期シリアル通信を使い、パソコンとCPUボードとの
コマンドのやりとりを行っていました。
パソコンからは確かにコマンドを出しているのですが、
「PDG2の割り込み処理で登録した関数に処理が飛んでこない」
という現象が発生していました。

PDG2の受信処理は、「受信完了時に関数で通知する」という機能を
使っており、指定したバイト数を受信したら指定した関数をコールする
という仕組みになっています。
なので、その関数に飛んでこないことは「受信割り込みが発生していない」
と思い込んでいたようです。

この場合、「指定したバイト数」が受信されていないことが原因です。
調べると案の定、フレーミングエラーが発生して1バイトたりとも受信
できていませんでした。

パソコンからCPUボードにはUSB-232C変換ボードを介して通信していた
のですが、このボードがレベル変換しかしておらず、信号が反転した状態
で通信していて、CPUボード内の232Cコンバーターによってレベル変換
&インバート(信号反転)を行っていたため、論理が逆の信号が入力されて
フレーミングエラーになっていた、というのが原因でした。

PDG2を使う場合であっても、UART(非同期シリアル通信)の基本動作を
理解していないと、思わぬところでつまずく端的な例だと思います。

やはり、CPUの内部動作、規格上の信号の動作を知っておくことは組み込み
技術者には不可欠だなと実感する事件でした。

皆さんも気を付けてくださいね。

ロードセルとの闘い(2)

100ミリグラムの壁はまだ超えられていません。
一応、覚書。
・差動信号の+側と-側の間にコンデンサを入れる
・アンプでシングルエンドにした後にローパスフィルタを入れる
 (C=10μF、R=100kΩくらい)
・アナログ部分を全部シールドする
・デルタシグマADコンバータで変換後、ソフトで移動平均をかける

といったところでしょうか。

差動信号をシングルエンドにして増幅後、ADコンバータに入れるのはキツイ気がしています。
あとはアンプをゼロドリフトアンプのような低周波の変動に強い物にするくらいでしょうか。
ソフトで工夫すれば何とかなるのかわかりません。

仕様的には100ミリグラムで計り、後段でそれを利用する部分のアルゴリズムを工夫することで精度面は回避できそうです。

もう少し追い込んでみますかね。

ロードセルとの闘い(1)

こんにちは。
今度はロードセルと闘っております。
ロードセルは信号成分が非常に微小なので、ノイズに影響されやすいのです。
そして今回開発しているモノでは数ミリグラムオーダーの精度が求められています。
ところが現在、いろいろ工夫してようやく100ミリグラムオーダーに抑え込んだ段階です。

最初はSAR(逐次変換)方式のADコンバーターを使っており、このときのノイズによる
「振れ」は大変なものでした。数十グラムは平気でグラグラします。
これをソフトでローパスフィルターをかけることで数グラムにはなりました。しかし
ローパスフィルターも減衰量を大きくすると応答時間が遅くなり使い物にならず行き詰りました。

そしてデルタシグマ方式のADコンバーターを使い、ソフトのローパスフィルターを併用することで
ようやく現在に至った次第です。

でもやはりノイズが信号に乗った状態で増幅してしまうのと、せっかく差動で出てくる信号を
シングルエンドに変換して入力しているのとで回路的に問題があることは否めません。
回路屋さんが最近忙しいので私が回路と格闘していますw。
今度差動アンプ内蔵のADコンバーターを使って試そうと思っています。

まだ1/100の精度にする必要があり、長い闘いになりそうです。
良い方策をご存知の方がいらっしゃったら是非、ご教示いただきたいです。

また経過を報告しますね。

サボりまくり

こんにちは。
少しサボってしまい申し訳ありません。

さて今回は、近所で見つけたラーメン屋についてご紹介したいと思います。
山梨県甲府市にある「初志貫徹」というラーメン屋です。

私が今まで食べた中では断トツで一位というシロモノです。
週一で必ず行っていますね。

ダイエットが進まなくて困っています(笑)

もし近所に来られた方は是非お試しあれ!

うつ病、克服に向かってる!?

 こんにちは。

 長い間苦しめられてきた「うつ病」ですが、最近仕事のこなせる量が増えてきたり、就業中に眠気に襲われたりすることがなくなってきました。
 現在は減薬をしている段階です。薬を減らされてから数日は調子が良くありませんが、すぐ慣れて通常通りの生活を行えています。

 いよいよ克服・・・でしょうか・・?

 うつ病に悩まされていた時期を振り返ると、自分で自信を持てなくなって、自分を責めることがよくありました。仕事をこなしていくうちに段々と自信が出てきて、悩みも小さくなったように思います。
 やはり自己肯定、これが一番うつ病に打ち勝つための武器なのではないかと思います。

 仕事に限らず、何かにおいて自己肯定できることが大事なのかと思います。今悩まれている方は自己否定に苦しみ、動くことに恐怖感があるというのが多いのではないでしょうか。

 何か動いてみて、自己肯定できれば良くなるというのは自分の経験上からの話ですが、動くことが大切なのは確かだと思います。

ploom tech入手!

 ネットオークションで高値で取引されているのを横目に、半年間耐え忍び、ようやく手に入れました。JTからキャンペーン価格で2000円のスターターキットです。

 ploom techは電子タバコの一種で、カートリッジ内蔵のリキッドを加熱・霧化させて、カプセル内のタバコ葉を通して吸うという物です。

 私個人はメンソールが苦手なので、レギュラータイプのタバコカプセルを購入して嗜んでいます。
一回吸うことを「1パフ」と数え、タバコカプセルが50パフ、カートリッジがタバコカプセル5個分持ちます。1箱内にはカートリッジ1本とタバコカプセルが5個セットになっています。それが460円します。

 初めはこれだけで460円!?と高く感じていましたが、私の場合、平日は会社で仕事の合間に吸う程度なのでタバコカプセル1個で1日持ちます。平日5日で460円の計算になりますので、ちょうど普通のタバコ1箱分の価格となり、一日に4本以上吸う場合を想定すると存外高くないのかな、というイメージです。

 さて、味ですが「軽めの普通のタバコ」を吸っている感じです。タバコ葉を燃焼させないのでタール、一酸化炭素は発生せずニコチンだけを摂取できます。副流煙が出ないのも大きな特徴でしょう。
 普通のタバコは吸っていないときも勝手に燃焼してしまいますので、吸った時だけタバコを味わえるという意味では良い印象を持っています。
 また、部屋や車内のような閉ざされた空間でも煙のモクモク感はなく、タバコ臭くなりません。

 いいところだらけのような気もしますが、まずカートリッジが金属製の筺体になっており、使い捨てにするのが勿体ないなと思います。このあたりリサイクルできるように考慮されていないんですね。また、本体に電池が内蔵されているので電池がヘタってきたら買い替える必要があることも気になります。(そうすぐにはヘタらないとは思いますが)
 あと最大の難点は本体部分の入手が現状、非常に困難な状態なことですかね。
 ちなみに新品の状態でバッテリーは一箱分と少しで充電が必要です。(私は一箱分吸ったら充電するようにしています)

 10年以上タバコは止めていたのですが、どうしても好奇心の方が先に立ってしまい、電子タバコとは言えど禁を破ってしまったことに少し後悔していますw

 例によって写真とかないのが当ブログの特徴ですのでご了承ください。(汗)




ステッピングモーターとの闘い3

久々の更新です。
ステッピングモーターの制御について悩んでいましたが、とうとう終結しました。

タイマーを2つ使うところがミソで、モーター制御パルスを出すためのタイマーの「元」になる信号を、別のタイマーが作ったパルスを使って作りだす、というややこしい方法です。

テーブルには、モーター制御パルス用のタイマーのカウント値と、クロックからの分周比と、「元」のタイマーの分周比を持たせ、「元」タイマーの出力線を、モーター制御パルス用のタイマーへの入力信号線に突っ込みます。これで加速度的な数値の変化を吸収することができました。

テーブルが小さくなったわけではないのですが、最小限の被害で治められたと思います。

まだまだ面倒な制御が待ってますので、ワクワク感はまだ続きそうですw

ステッピングモーターとの闘い2

 前回から1カ月経っていますがまだ闘ってますw

 タイマーからパルスを発生させてモーターを回すわけですが、タイマーのカウンタを大きな値にすればするほどモーターは遅くなります。思い切り反比例しているわけですね。

 Excelでグラフにしたら「グラフどこ?」って探すくらい、X軸とY軸にベッタベタでしたw

 反比例の計算をさせようとすると、逆数を65536倍して掛け算して、その積をまた65536で割るような小細工が必要になります。(浮動小数点演算器が無いタイプの場合)
 ただそのままやると誤差がすごいので、テーブルを持たせることにしました。

 テーブルの容量をケチって考えると、例えば32分割して、その区間内をy=ax+bで求められるような線形近似をする方法があります。
 さっそく試しましたが、タイマーが遅くなっていくごとに誤差が大きく出てしまいます。(今思えば当たり前なんですが)

 仕方がないので全テーブルにしました。4kバイトくらいかな。私みたいにレガシーな人からすると大きいな、と思ってしまうのですがまあ良しとしましょう。

 あとは1回転中のある区間だけモーターを速く動かす、という難題が残っています。
 評価してトライ&エラーの挙句にどんな区間を、どれくらいの速度で動かせばいいかが決まり、それをやっぱりテーブルに持たせるしかないんでしょうねぇ。

 パラメータを自由に変えられるような評価用ソフトを作るにも少々骨が折れます。
 こんなとき、たまに神が降りてきてすげぇアイデアが浮かんだりするんですけどね。
 う○こ出た瞬間とか風呂でボーっとしてるときとか。

 まあ神をアテにはできないのでチョボチョボやります。

Appendix

検索フォーム

サービス

組み込み制御系プログラムの悩み相談(不具合解析やコツなど)を受け付けます。 小学算数をわかりやすくお教えします。「お受験」の一助にいかがでしょう。

QRコード

QR

ブロとも申請フォーム

この人とブロともになる

Extra

プロフィール

tomfuwaku

Author:tomfuwaku
ソフト屋なのに半田ゴテやオシロスコープを扱い、ハードのデジタルなところが得意な、奇妙な奴です。普段は魚飼ったり、庭いじったり、ホームセンターでわくわくしたりしてる奴です。

そんな奴が、気が向いたら更新しています。
気が向いたら見に来てやって下さい。

最新記事

最新コメント