トップページ > 記事閲覧
ATP3011のSPI通信方法
日時: 2014/09/11 22:19
名前: afo

こんにちわ
SPI通信がよくわかってないので質問致します。

1.MSBはSSが"L"かつ最初にSCKが立ち上がったbitになるのでしょうか?(mode0設定)
(SSをGNDに常時落としたままだとMSBがわからない??)
2.たとえば『あ』と発声させる場合はシリアルデータで『0100000100001101』のみでよいでしょうか?
明らかに発声中でない状態でもI2CのようにS/W/ /Pを送信して、「>」が返らないと上記のシリアルデータだけ送信しても発声しないのでしょうか?
メンテ

Page: 1 |

Re: ATP3011のSPI通信方法 ( No.1 )
日時: 2014/09/18 14:01
名前: 管理人

こんにちは
1.は、Mode0の場合そのとおりです。
また、ご指摘のとおり、SSをGNDに常時落としたままだと、電源ON時の不安定な状態で同期がずれることがありますので、SSはマスター側から制御したほうが良いと思われます。
2.SPIではI2CでのS/W/Pなどは使いませんので、'a',CR の2バイト転送だけで「あ」と発声します。
メンテ
Re: ATP3011のSPI通信方法 ( No.2 )
日時: 2014/09/21 22:15
名前: afo

ご回答ありがとうございました。
SSを未制御かつASCII文字を大文字で入力していた("0110000100001101"が正解)ため正常動作してないことが判明し、修正した所、発声しました。
お手数をおかけ致しました。
メンテ
Re: ATP3011のSPI通信方法 ( No.3 )
日時: 2014/10/11 12:46
名前: afo

度々すみませんが、ご教授ください。
ATP3011をリセット後に
SDI端子に'a'⇒20μs間"00"⇒CRを入力すると、
SDOから 'FF''a'⇒20μs間"00"⇒CRの出力となり
'a'の後に'>'が返ってこず、発声しません。
考えられる原因はなんでしょうか?
クロックは500KHzで動作させています。
メンテ
Re: ATP3011のSPI通信方法 ( No.4 )
日時: 2014/10/15 12:00
名前: 管理人

こんにちは

>SDI端子に'a'⇒20μs間"00"⇒CRを入力すると、
>SDOから 'FF''a'⇒20μs間"00"⇒CRの出力となり

の20μs間"00"と、'FF''a'の部分の意味がわからないのですが、SPI通信の場合には、送信と受信が必ず対になっているはずですが・・・

9/21で発声した時と異なっているのは何でしょうか?
メンテ
Re: ATP3011のSPI通信方法 ( No.5 )
日時: 2014/10/15 18:47
名前: afo

ご回答ありがとうございます。
波形を見せられれば一番良いのですが、送付したらご確認可能でしょうか?(お手数をかけてすみません)

9/21で発声した時と異なっているのは周波数(前回は1MHz)とバイト間の20μsec の間隔です。

'a','a',CRの2文字を発声させようとした所、発声しなかったので、バイト間の20μsec の間隔が足りないのかと思い、追加し、周波数を落として'a',CRの1文字でまず試そうと思った次第です。

受信のシフトデータは確認できています。デリミタ">"が見えてないという状態です。
メンテ
Re: ATP3011のSPI通信方法 ( No.6 )
日時: 2014/10/16 15:43
名前: 管理人

こんにちは
動作した9/21と、動かない今回との違いは、
1) SCKのクロック周波数が1MHz->500KHz
2) 'a'、CR の間に 20usecの間隔を追加
ということですね。

まずは、どちらかの条件だけを変えて確認してみてはいかがでしょうか。

なお、「20μs間"00"」 の"00" 部分が何を示されていたのかも気になってます。
メンテ
Re: ATP3011のSPI通信方法 ( No.7 )
日時: 2014/10/17 17:16
名前: afo

ご指摘の通りです。
1は未確認です。2は試してみましたが動作していません。
そもそも動作したというのもリセット後に色々データを入力した挙句に、あるタイミングで'a',CR の2バイト転送が入ると動作したという経緯があるので、リセット後単独で'a',CR の2バイト転送は成功していません。説明が不足してすみません。

「20μs間"00"」の"00"は'L'データ(GND)を示しています。
SDI端子に20μs間"L"を入力し、SCKは500KHzのまま,SSは"L"を入力したままになっています。

因みに
@応答コマンドの">"とは16進の"3e"が返ってくるとの認識でよろしいでしょうか?
Aリセット後、ポーリングのために適当なデータを一回送信してから、">"が返って来たら送信すべきなのでしょうか?
メンテ
Re: ATP3011のSPI通信方法 ( No.8 )
日時: 2014/10/18 11:39
名前: 管理人

こんにちは

>SDI端子に20μs間"L"を入力し、SCKは500KHzのまま,SSは"L"を入力したままになっています。

そうでしたか
これでは0x00という値のデータを転送を続けている状態で、バイト間隔を20usecあけることになりませんね。

>@応答コマンドの">"とは16進の"3e"が返ってくるとの認識でよろしいでしょうか?

そのとおりです。

>Aリセット後、ポーリングのために適当なデータを一回送信してから、">"が返って来たら送信すべきなのでしょうか?

本来、リセット後の最初の応答で'>'が返ってくるはずなので、最初のポーリングは不要です。なお、リセット後はLSIが起動するのにある程度時間(100usec)がかかりますので、その前に転送を行った場合は'>'は返りませんのでご注意ください。

本件、配線等ハードウェアまわり、マスター側のファームウェアなど確認すべきところはたくさんあるので、これ以上のアドバイスはできないのですが、まずは、

1.最初の応答で'>'を得ること
2.'a'+CRで「あ」と発声させること

を確実に再現できることを目指してみてくださいね。
メンテ
Re: ATP3011のSPI通信方法 ( No.9 )
日時: 2014/10/26 15:15
名前: afo

返事が遅くなり、すみません。
20μs間SCKを"L",SSを"H"にしたら応答'>'を得て、
a'+CRで「あ」と発声させられました。
また、適当に「つくえ」等の単語を発声させることでもできました。
リセットは直後の場合にSDIデータを入力した所、
SDOから放電波形が得られたので待ち時間が必要だなとの認識でした。

お手数をおかけしました。
ご回答ありがとうございました。
メンテ

Page: 1 |

題名 スレッドをトップへソート
名前
URL
パスワード (記事メンテ時に使用)
コメント
CAPTCHA captcha画像 ←英数字を入力

   クッキー保存