Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ESP-WROOM-02とマイクをつないでみた話。

 ESP-WROOM-02とマイクをつないでみた話。

ESP-WROOM-02とマイクをつないでみた話。
I connected between ESP8266 and digital MIC via I2S interface.

masato-ka

May 14, 2017
Tweet

More Decks by masato-ka

Other Decks in Technology

Transcript

  1. ֎؍ ϋʔυ ΢ΣΞ ಈ࡞ͤ͞ΔͨΊͷपลճ࿏ඞ ཁ,A/Dม׵ͰऔΓࠐΉ ϚΠΫଆͰϑΟϧλͱADม׵Λߦ ͏ɻγϦΞϧΠϯλϑΣʔε(I2SͰ ઀ଓ͢Δɻ ιϑτ ΢ΣΞ

    A/Dม׵ΛλΠϛϯάΑ࣮͘ࢪ ͯ͠16kHzʹͳΔΑ͏ʹ͢Δɻ I2S or SPIͷಡΈऔΓΛߦ͏ॲཧΛ ॻ͘(ArduinoϥΠϒϥϦ͋Γ) ઀ଓͰ͖ͦ͏ͳϚΠΫͷબ୒ ίϯσϯαϚΠΫ σδλϧϚΠΫ ࣸਅग़య:ळ݄ిࢠ 17೥5݄19೔༵ۚ೔
  2. ֎؍ ϋʔυ ΢ΣΞ ಈ࡞ͤ͞ΔͨΊͷपลճ࿏ඞ ཁ,A/Dม׵ͰऔΓࠐΉ ϚΠΫଆͰϑΟϧλͱADม׵Λߦ ͏ɻγϦΞϧΠϯλϑΣʔε(I2SͰ ઀ଓ͢Δɻ ιϑτ ΢ΣΞ

    A/Dม׵ΛλΠϛϯάΑ࣮͘ࢪ ͯ͠16kHzʹͳΔΑ͏ʹ͢Δɻ I2S or SPIͷಡΈऔΓΛߦ͏ॲཧΛ ॻ͘(ArduinoϥΠϒϥϦ͋Γ) ֎෦ճ࿏͕ෆཁͳσδλϧϚΠΫΛ࠾༻ ίϯσϯαϚΠΫ σδλϧϚΠΫ ؆୯ͦ͏ʂ (ʹݟ͑ͨ) ࣸਅग़య:ळ݄ిࢠ 17೥5݄19೔༵ۚ೔
  3. I2S/SPI ͲͪΒͱϚΠΫΛ઀ଓ͢Δ͔ • ESP8266 ͸I2SͱSPIͷ྆ํͷΠϯλϑΣʔεΛ౥ࡌ͍ͯ͠Δɻ Interface I2S SPI Arduino ϥΠϒϥ

    ϦରԠঢ় گ ˚ (TXͷΈɺઃఆݻఆ) ̋ ϋʔυ΢ ΣΞରԠ ঢ়گ TX,RXϞδϡʔϧ͕෼͔Εͯ ͍ͯDMA͕ϝϞϦసૹ͢Δ (※ޙड़) ϝϞϦૢ࡞͸ιϑτ΢ΣΞଆ Ͱॲཧ͢Δɻ 17೥5݄19೔༵ۚ೔
  4. I2S/SPI ͲͪΒͱϚΠΫΛ઀ଓ͢Δ͔ • ESP8266 ͸I2SͱSPIͷ྆ํͷΠϯλϑΣʔεΛ౥ࡌ͍ͯ͠Δɻ Interface I2S SPI Arduino ϥΠϒϥ

    ϦରԠঢ় گ ˚ (TXͷΈɺઃఆݻఆ) ̋ ϋʔυ΢ ΣΞରԠ ঢ়گ TX,RXϞδϡʔϧ͕෼͔Εͯ ͍ͯDMA͕ϝϞϦసૹ͢Δ (※ޙड़) ϝϞϦૢ࡞͸ιϑτ΢ΣΞଆ Ͱॲཧ͢Δɻ ݱঢ়΍ΔͳΒҰ୒ʂ 17೥5݄19೔༵ۚ೔
  5. • CPU͔Βͷread໋ྩͰSPIͷಡΈࠐΈ։࢝ SPI઀ଓͷ৔߹ ※ৄࡉ͸QiitaͰʮAMDP441ʯͰݕࡧ ESP8266 SPI CLK L/R CLK DATA

    CPU SPI ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ESP8266಺෦ͷಈ࡞ read໋ྩ σʔλड৴ 17೥5݄19೔༵ۚ೔
  6. • SPI͔ΒಡΈऔͬͨσʔλΛCPU͕ϝϞϦʹอଘ͢Δɻ SPI઀ଓͷ৔߹ ※ৄࡉ͸QiitaͰʮAMDP441ʯͰݕࡧ ESP8266 SPI CLK L/R CLK DATA

    CPU SPI ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ESP8266಺෦ͷಈ࡞ read໋ྩ σʔλड৴ ϝϞϦʹอଘ 17೥5݄19೔༵ۚ೔
  7. • ֎෦ʹσʔλΛૹ৴͢ΔؒɺSPIͷಡΈऔΓॲཧ͸ఀࢭ͢Δɻ SPI઀ଓͷ৔߹ ※ৄࡉ͸QiitaͰʮAMDP441ʯͰݕࡧ ESP8266 read໋ྩΛ࣮ߦ͍ͯ͠Δ࣌ͷΈCLK ͕ग़ྗ͞ΕΔɻ CPU SPI ϝϞϦRAM(32KB)

    ϢʔβϓϩάϥϜ ֎෦΁ͷσʔλૹ৴ CLKఀࢭλΠϛϯάͰϚΠΫ͕Ϧηο τ ESP8266಺෦ͷಈ࡞ ϝϞϦͷಡΈग़͠ 17೥5݄19೔༵ۚ೔
  8. • CPUͰશͯͷॲཧΛߦ͏ͨΊɺϚΠΫ͔ΒͷσʔλΛऔΓ͜΅ͯ͠͠·͏ɻ SPI઀ଓͷ৔߹ ※ৄࡉ͸QiitaͰʮAMDP441ʯͰݕࡧ ESP8266 SPI CLK L/R CLK DATA

    read໋ྩΛ࣮ߦ͍ͯ͠Δ࣌ͷΈCLK ͕ग़ྗ͞ΕΔɻ CPU SPI ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ read໋ྩ σʔλड৴ ֎෦΁ͷσʔλసૹ CLKఀࢭλΠϛϯάͰϚΠΫ͕Ϧηο τ σʔλసૹ ESP8266಺෦ͷಈ࡞ 17೥5݄19೔༵ۚ೔
  9. I2S/SPI ͲͪΒͱϚΠΫΛ઀ଓ͢Δ͔ • ESP8266 ͸I2SͱSPIͷ྆ํͷΠϯλϑΣʔεΛ౥ࡌ͍ͯ͠Δɻ Interface I2S SPI Arduino ϥΠϒϥ

    ϦରԠঢ় گ ˚ (TXͷΈɺઃఆݻఆ) ̋ ϋʔυ΢ ΣΞରԠ ঢ়گ TX,RXϞδϡʔϧ͕෼͔Εͯ ͍ͯDMA͕ϝϞϦసૹ͢Δ (※ޙड़) ϝϞϦૢ࡞͸ιϑτ΢ΣΞଆ Ͱॲཧ͢Δɻ 17೥5݄19೔༵ۚ೔
  10. • CPUΛհͣ͞DMA͕ϝϞϦ΁௚઀సૹ I2S઀ଓͷ৔߹ ESP8266 SPI CLK L/R CLK DATA CPU

    I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ DMA σʔλ σʔλ ։໋࢝ྩ 17೥5݄19೔༵ۚ೔
  11. • ࢦఆαΠζͷσʔλΛϝϞϦʹసૹ͢ΔͱCPUʹׂΓࠐΈΛൃੜͤ͞Δɻ I2S઀ଓͷ৔߹ ESP8266 SPI CLK L/R CLK DATA CPU

    I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ DMA సૹ׬ׂྃΓࠐΈ σʔλ·ΜͨΜʂ σʔλ σʔλ 17೥5݄19೔༵ۚ೔
  12. • I2Sͷॲཧ͸ఀࢭͤͣʹCPU͸ϝϞϦ͔ΒσʔλΛऔΓग़ͯ͠֎෦ૹ৴ I2S઀ଓͷ৔߹ ESP8266 SPI CLK L/R CLK DATA I2SϞδϡʔϧ͕ৗʹΫϩοΫΛग़ྗ

    CPU I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ֎෦΁ͷσʔλૹ৴ DMA సૹ׬ׂྃΓࠐΈ σʔλ σʔλ σʔλ 17೥5݄19೔༵ۚ೔
  13. • σʔλΛऔΓࠐΈͳ͕Β֎෦ʹૹ৴͢Δ͜ͱ͕Մೳɻ I2S઀ଓͷ৔߹ ESP8266 SPI CLK L/R CLK DATA I2SϞδϡʔϧ͕ৗʹΫϩοΫΛग़ྗ

    CPU I2S ϝϞϦRAM(32KB) ϢʔβϓϩάϥϜ ֎෦΁ͷσʔλૹ৴ DMA సૹ׬ׂྃΓࠐΈ σʔλ read໋ྩ σʔλ σʔλ 17೥5݄19೔༵ۚ೔