• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

C.A.Mのブログ一覧

2019年08月31日 イイね!

CMD18 COMMAND_READ_MULTI_BLOCK

CMD18 COMMAND_READ_MULTI_BLOCK画像に
おかしな線が出た

の続きです。







画像をすこし小さく300x225のファイルにしてみると

斜めの点線になりました???



いろいろデータを変えてみたり、
SDカードを変えてみたりしても同じ現象、同じ位置なので
SDファイル読み込みのところがあやしい。


まずは
発生しているデータの場所を特定

ここだ 714ー717あたり。

で、ここはどこ?
何かとの関連は?

SDカードは データの読み出し単位が 1セクタ=512バイトです。

どうやら、
横1ライン320ドットのデータ1280バイトを読み込む際に
続けて2セクタ読み込むことになった時(ほぼ1ラインおき)に、
そのセクタ間に 4バイトのおかしなデータが紛れ込んでいるということ
をつきとめました。
画像をよくみると、へんな点線より右側はドットがずれているようで、
ビートのライトや輪郭、電柱がギザギザになってますね。


SDカード ≒ MMCマルチメディアカードの仕様書なんてのも熟読することとなり。。。

MMCカードのSPIモードというので使うので、
CRC(チェックサムみたいなもの?)は無効の設定ということですが、

これはCRCが出てこないということではなくて、
チェックをしないだけということのようです。
計算がとてもめんどくさいようです
なので、
SDから送られてくるデータには1セクターごとにCRCが入ってくるし、
その後は待ちが入り、スタートトークンを検出してから次のセクタを受け取る
という仕様みたいです。


MPLABX MCCで提供される XC8コンパイラのライブラリ
SD Card(SPI)とFatFsを使ってラクしようってことだったのに

いやんなっちゃう。。。。(プーさん風)



マイクロチップに問い合わせしようかと思いましたが、
ここまでわかればバグフィックスは簡単そう?
ようは4バイト抹殺すれば良い。
に思えたので、
プログラムを読んでみました。


人の書いたプログラムって難しい。。。。
とくに
C言語のこういうのって とにかく数字が見えなくなるように
定義の嵐のようなので、
言葉(変数名、定数名)の意味がわかってこないと
まったくもってちんぷんかんぷん。。。。






。。


sd_spi.c
久しぶりに 紙に出してみましたけど、書き込みできたり やっぱりやりやすいですねぇ。

ここだな。











できました♪

6行のプログラム変更で いちおう 画像はよくなりました。



SDカードのことも
このプラグラムのことも
全部わかったわけではないので
条件が変わったりすると怪しいですけど、
とりあえずはオッケーみたいです。






Posted at 2019/08/31 16:58:30 | コメント(0) | トラックバック(0) | PICマイコン | 日記
2019年08月29日 イイね!

HEPA

HEPA 掃除機が空気清浄機になる?

排気を胸いっぱい吸い込む気にはなりませんが😅
Posted at 2019/08/29 11:52:20 | コメント(0) | トラックバック(0) | 日曜大工 | 日記
2019年08月27日 イイね!

2.4” 320x240 ILI9341

2.4” 320x240 ILI9341来ました、シナポス。

送料込み 676円








3.3Vで使う時はJ1ショートみたいです。
追記*******************
3.3V使用では、J1オープンでOKでした。
信号線が5Vの時はJ1ショートなのかな?
*********************

LEDピンは、この機種では+Vでした。
GNDの機種もあるようなので、トランジスタの回路見てよく確認しないと。。。


デフォルト設定で1.8“と並走させてみると


字が裏返し、色はRとBが反対なタイプでした。

設定を今回は横長に合わせてみて

ポケットオシロとおんなじのみたい。

なんですが

不具合発生。
真ん中辺に変な線が出ています。。。
小さい画像ファイルでは出ないので、モノのせいでは無いみたい。


つづく


Posted at 2019/08/29 12:37:11 | コメント(0) | トラックバック(0) | PICマイコン | 日記
2019年08月27日 イイね!

IOピン ODオープンドレイン

この前、SPI通信のタイミングをロジアナで見てた時、
フラグの変化を出力ピンに出してタイミングを見てみたのですが、
どうにも遅れがあるような。。。
デジタルなはずなのに、どっかにコンデンサがあるみたいな挙動?? ← 妄想です



プログラムは、LEDをつけたり消したりするのとおんなじ。



LED2はローにしてから NOP命令一回 すぐにハイにしてるので、3クロックだっけ?6クロックだっけ?
CPUは64MHzだから、1クロックは15.6nsec。
ローになってる時間は100nsec以内になるはずだと思うんだけど、

500nsecにもなってる。
どうしてそんなに遅いのか??

IOポートの解説見ても、
わからね。


ふと、出力ポートのOD = Open Drainの設定をやめたら

90nsecに速くなった。
90nsecは6クロック分相当かな。確かPICは1命令2クロックだっけ?
ラッチオン、ノップ、ラッチオフの3命令かな。。

ま、それはいいとして、
オープンドレインってのは、
フルコンのアウトプットにはよく使われていて、
負荷のマイナス側をスイッチする方式、
オンの時はGNDに落ちる、オフの時はオープン って覚えていたのですが。

PICマイコンの普通のアウトプットだと
オンがプラス電圧で、オフがGND = 0Vのはずなので、
オン側の電圧が出るか出ないかの違いだけだと思ってた。。。。🤔

とりあえず、ODをオフにしておけば、目的は はたせるみたい。


。。

。。


けれど、
やっぱり、アナログな電圧を見てみます😬

いつものポケットオシロでは、残念ながらこんなに高速な信号は見れません。
15年ほど前に買った卓上オシロを出してきました。


おぅ!

こんなんなってます。
これはデジタルではなくてアナログですね。

どうやらスルーレートコントロールというのが働いているためみたいです。

ODをオフして普通のアウトプット。

だいぶ なまってる感じはありますが、まぁデジタルなんでしょう。

あ、
オシロの能力が25MHz、サンプルレート100MS/s = 10nsecなんでした。
そのせいかな?


この時、
スルーレートコントロールをlimited からmaximum に切り替えてみると

なんかギザギザした?
普通のアウトプットでもスルーレートコントロールは効いてるの?
一応limited側に初期設定しておいたほうが良さそうです。 ← 妄想です


もういっちょ、
オープンドレインのスルーレートマキシマム設定では、

リミテッドとそうは違わないようだけど、ギザギザ?
よくわかりません。。。

が、

んな訳で、
オープンドレインにする時には、
切り替わり時間に注意しないといけないみたいです。


スルーレートコントロールというのを勉強しないといかんかな?
Posted at 2019/08/27 13:19:20 | コメント(1) | トラックバック(0) | 日記
2019年08月26日 イイね!

SPI DMA

マイクロチップ コードコンフィガレーターでは
SPIブロック送信のDMA転送は将来サポートされるようです。

なので、
自作します。

DMA
Direct Memory Access
は初期設定で
転送元、転送先、データ数、各々のアドレス処理、トリガの設定等をすれば、
転送自体はほぼ勝手に行われるはず。。。



動いてはいるみたい。
思ったように動いてもらうには、やっぱりいろいろに設定を変えていちいち試してみないとわかりません。

SPIの勉強で様々なフラグを試しましたが、
ここでは、最も単純にSPI1TXIF、送信開始フラグをスタートトリガに設定するだけでよかったみたいです。
かなり回り道しましたけど、SPIの動作の様子がわかったので、損はしてないかと🙂

データ転送できて、LCDにドットが表示されるようになったので、
できた♪
と喜んでいたのですが、
続けてもう一回の転送ができない。。。。
もう一回DMA初期設定からしないといけないのか?
いや、そんなはずは無いはず。
再トリガ程度で動いてくれないことには使い物にならないもの。。。



。。




また、ハマる。。。


転送が終わったら、DMA関係のフラグをクリアしておかないと、
次は始まらないということみたいなので、

これでオッケー。

できました。

クロックがみっちり続いて、データとデータの間がなくなりました♪
実効速度=クロック速度ということかな。

ん?
16bit color modeの下に
ちょびっとデータ出して実験しているのですが、

1の下、黄色7ドット出したつもりが6ドットしか表示されてない??
bの下、シアン23ドット出したつもりが22ドット??
黄色だけの時は7ドット出てたはず🤔

。。

。。

またハマり😩


。。


これだけハマりどころがあると
老化したアタマでも 少しはパターン学習されてくる?
ここかな?と鼻が効いた、

出た!😙

DMA転送完了の検出時には、
まだSPI側の送信が終わっていないみたい。

SPIが最後のデータを出し終わる前に
CSピン(SPI チップセレクト)をリセットしていたので、最後のデータが表示されなかったようです。
SPIの送信完了を検出してからCSピンをリセットでオッケー。


この辺は、ロジアナあんまり役に立たなかったみたい。
やっぱり、マイコン内のことにはいらないけど通信には有効ということか?

とりあえずはDMA転送できたので、
基礎実験はこのくらいにして
実装していかないとです。



Posted at 2019/08/27 10:44:01 | コメント(0) | トラックバック(0) | PICマイコン | 日記

プロフィール

なんか作ってれば満足
みんカラ新規会員登録

ユーザー内検索

<< 2019/8 >>

    123
45678910
11121314151617
18192021222324
25262728293031

リンク・クリップ

むかしむかし 
カテゴリ:その他(カテゴリ未設定)
2019/04/30 23:17:16
 
らくがき帳 カメラ用 
カテゴリ:写真 カメラ
2016/09/19 21:52:18
 

愛車一覧

ホンダ ビート 赤ビート ターボ (ホンダ ビート)
ぜんぜんジムカーナ練習会に行けてない車
スズキ ジムニー 紺ジムニー ターボ (スズキ ジムニー)
昔乗ってたのと同じ模様をいれました。 大事な乗用車なので、イジらない。
ヘルプ利用規約サイトマップ
©2019 Carview Corporation All Rights Reserved.