お世話になっております。Sugachanceです。
・Synergy S128 ・Renesas Synergy Software Package (SSP) v1.4.0 with e2 studio 6.2.0 1.4.0で、とある通信モジュールと簡易SPI(ch0,モード1)で通信しようとしていて嵌ってしまっています。通信できる出来ないは、いつもの自分の何らかのミスだと思いますがオシロで波形を見たところ、SCKのところで通信用の波形(という言い方が正しいかどうかわかりませんが)の前に、100usほどの山が見られました。g_spi0.p_api->open(g_spi0.p_ctrl, (spi_cfg_t *)g_spi0.p_cfg);
を実行したときに出るようなのですが、そもそもこの波形はSPIとして正しい(なるべくしてなっている、プログラム通り)のでしょうか。因みに通信モジュール自体は他のマイコンでSPI動作確認しています。サポートに問い合わせてもみますが、何か情報をお持ちの方がいらっしゃれば、お願いいたします。
SCK端子がプルアップされていると、入力設定になった場合は赤〇で囲んであるようにHIになったりしませんか、でもオープンする時にSCKの端子を入力に設定する必要があるのか疑問ですが、意図されない出力をしないようにデータレジスターに書き込んでおいて、それから方向レジスターに書き込むようなことをしたりします、それから機能を設定するようなことをします
公式の回答は >SPI モードレジスタ(SPMR)のCKPOLビットの初期値0により、SCKがHighとなります。 >その後、同open APIにおいて、コンフィグレーションで指定されたClock Polarity = Low when Idleの設定に従い、SPMR.CKPOL=1となることで、SCKがLowになります。 >これにより、ご報告頂いた波形となっています。 で、シーケンスを考えてSSでしっかり制御してねとのことでした。 わわい様 仰る通り、openは最初一回だけの実行だったのですが、 サンプルが逐一open→closeしていたのと、 通信がうまくいかなかったときに、 closeを入れてみたらうまくいった(実際は他の部分を変えたことによる成功) ので、毎回open,closeしていました(汗1つずつ検証しないとだめですね・・・