UnoをSPIのMasterにして、複数のSlaveを使う。UnoをSPIのMasterにして、複数のSlaveを使う。5110も同じSPIバスを使って動作させてみた。Slaveにすることができないので、Arduinoのスケッチの中でAVRのレジスタを使って実験しました。Slaveとして使う。5110」間のMISOはつながっていません。Select)を使う。信号線はMaster→SlaveのMOSIとMaster←SlaveのMISOの2本だがスレーブの数だけSSが必要になる。MasterのArduinoが、繋がれているPOTの値を読み取り、SPIでSlaveのPSoC4に送信する。SlaveのPSoC4はArduinoから送られてきたデータを受け取り、繋がれているロータリー・エンコーダーの値を読み取り、MasterのArduinoに送信する。SlaveのPSoC4はArduinoから送られてきたデータの値(RX)と、Arduinoに送ったデータ(TX)をキャラクタLCD(パラレル接続)に表示する。したがって、POTを回しても、ロータリー・エンコーダーを回してもArduinoのLCDにもPSoC4のLCDにも同じデータが表示される。5110の表示には「Nokia5110_Graph」ライブラリを使っている。LCD5110を動かす」)。PSoC4とのSPI通信にはArduinoの「SPI」ライブラリを使った。「NOKIA5110_Graph」はArduinoのSPIライブラリを使用していない(ATMega328pのハードウェアSPIも使っていない)ので、PSoC4との通信の前後でSPIオブジェクトをbegin()、end()させている。5110との通信がうまくいかない。送受信データは、どちらも3byteにしていて、Masterが生成したカウンターの値(1byte)+POT/RotaryEncoderの16bitの読み取り値(2byte)。Slave側のPSoC4のプロジェクトTopDesignSPISはSCBのSPIコンポーネントでスレーブに設定している。UARTはデバッグ用に使った。PIN_REというPINコンポーネントはロータリー・エンコーダーの読み取り用。(PSoC4)https://github.com/ryood/PSoC4_SPI_Slave_Test/tree/master/PSoC(Slave)/PSoC4_SPI_Slave_Testメモ:SPIは全二重なので送信だけ、受信だけという使い方にするには少し工夫が必要。普通のシリアル通信のようにプログラムを書くと電話でお互いが勝手に喋っべいるみたいな状態(自分の声でかき消されて相手が何を言っているか聞き取れない?)になってしまってハマってしまった。SlaveからMasterに送信するには、Master側からSlaveに「どうぞ」と声をかけてからSlaveが送信するとか、Master側から制御するR/Wの信号線を追加するとかしないとダメかもしれない。fx-JP500買ってみた。mbedのRtosTimerをClassの中で使う。F401RE(mbed)でシーケンサーを作るつもりで入出力デバイスのテスト。F40...mbedのAnalogInでPotentiometerの読み取り値のふらつきを抑える。Headerは一部未接続(メモ)NucleoF401REでQEIライブラリを使う。F401RE(mbed)でDebounceInライブラリを使う。F401REのファームウェアアップデート。DACのMCP4922を動かす。F401RE(mbed)をMasterにしてPSoC4とSPI通信する。F401RE(mbed)でNokia5110を動かす。USBシリアル変換モジュールで使う。Kitを外部クロックで動かす。KitでSPI制御のDCOを作る。UnoをSPIのMasterにして、複数のSlaveを使う。秋月のI2Cバス用双方向電圧レベル変換モジュール(PCA9306)を使ってみる。LCD5110をU8GLIBで使ってみる。ArduinoとSPIのDAC(MCP4922)でエンベロープ・ジェネレーターを作る。OTAのNJM13600、NJM13700をシンプルに使う。