Sipeed MAix Bit with MIC MaixPy で マイクのお試し

Sipeed MAix Bit with MIC MaixPy  で マイク入力の確認が出来たので、
PC へ Serial で送れないか試してみました。

PC: Windows10

Sipeed MAix Bit with MIC を PC に USB接続して、TTL-Serialでデータの受信をします。

PC 側は、Python で serial で RAWデータを受信して、pyaudio.PyAudio() で、
PCのスピーカーへ音を出してみます。

1. 最初は、Sipeed MAix Bit 側の python script です。

uartx=UART.repl_uart()
Speed = 115200+9600*3
uartx.init(Speed,8,None,1,timeout=0)
で、Bit に付いている、プログラム転送用の Serial の回線速度を、大きくします。
残念ながら、115200+9600*3 以上大きくできません。

for dt in range(sample_points):
  p=dt*4
  print("%02x"%x[p],end="")
  print("%02x"%x[p+1],end="")
  #uartx.write('1')
  #print(",",end="")
print("")
で、I2Sで受信した1 CHUNK データの先頭16bit だけを、Hex コードをASCII にして、
PCへ送信します。1 CHUNK の区切りは、CR+LF コードです。

2. 次は、 PC 側の python script です。

結果は、Sipeed MAix Bit with MIC に付いている USB-Serial のチップ(CH552T) が、
不味いのか、Baud Rate を 115200+9600*3 より大きくできないみたいで、そこで断念です。
CH552T のドライバーは、FTDI社の FT2232ドライバーを流用するとの事なので、
ここでとちっているのか?

FT2232 は、FT232 と FT245 の機能2個が、1 チップに内蔵されているとの事です。
なので、Windows10 のデバイスでは、 COM3,COM4 の2つが同時に現れるので、
合点が行きました。ここは、純正の FT2232チップを使って試してみるべきか? 

未使用の、UART1,2 デバイス を GPIOピンに割り当てて、別の チップの USB-Serial で試してみれば、旨くいくかも知れません。

現状は、Bit のマイクに口笛を、ピーピーと吹くと、PC のマイクからそれに反応する音は出てくる程度です。

3. Sipeed MAix Bit 側の python script のコードを見直しました。
1) print() で送信するのを、1 CHUNK で、1回に、まとめて発行するようにしました。
2) from fpioa_manager import fm
を追記しました。
MaixPy 0.2.3 で、 boot.py で自動実行させたとき、
NameError: name 'fm' isn't defined
のエラーで停止しているようなので。
3) m=uartx.write(b1)
で、出力バイト数を必ず、変数で受け取ります。そうしないと、出力文字数 '2048' が、
Serial で送信したデータの末尾にゴミとして 2048 が付いてきます。
これは、多分、標準出力(STDOUT) を、 uartx でリダイレクトさせている為だと思います。

4. UART1 に、別途 USB-Serial (FT232RL) を付けて試してみました。
Maix-Bit silk  |  k210 IO  |  USB-Serial (FT232RL)
    15  --  IO15 (tx)  -->  Rx
    17  --  IO17 (rx)  -->  Tx
     GND                  -->  GND
注)上記以外は、オープン
  USB-Serial VCC は結線しません。

回線速度(Baud Rate) は、 MAX=921600 で受信できますが、データ漏れが生じるので、
460800 (Flow control 無し) になりました。
921600 で正常にデータを扱うには、Hardware Flow control を使わないと無理と言う事でしょうか。
注) UART1~ は、Hardware Flow control 可能との事です。

PCのスピーカからの音は、まともに聴ける状態ではありません。
Bit のマイクに音を聞かせると、それに反応して、PCのスピーカからそれらしい音が出る程度です。
後は、バイナリデータで扱うかですか。

最初から、I2Sのデータ量から、必要な、USB-Serial の転送速度を計算すれば、
所詮、無理な事は判っていたのでしょうが、
世の中、やってみなければ判らないこともあるので、試してみました。

このブログ記事について

このページは、おんちゃんが2020年3月12日 18:05に書いたブログ記事です。

ひとつ前のブログ記事は「Sipeed MAix MaixPy で FFT と マイク入力の確認」です。

次のブログ記事は「Sipeed MAix Bit with MIC MaixPy で マイクのお試し #2」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

サイトナビ