Агуулгын хүснэгт:

Esp8266 Цаг ба импульсийн генератор: 3 алхам
Esp8266 Цаг ба импульсийн генератор: 3 алхам

Видео: Esp8266 Цаг ба импульсийн генератор: 3 алхам

Видео: Esp8266 Цаг ба импульсийн генератор: 3 алхам
Видео: NodeMCU V3 ESP8266 - обзор, подключение и прошивка в Arduino IDE 2024, Долдугаар сарын
Anonim
Esp8266 Цаг ба импульсийн генератор
Esp8266 Цаг ба импульсийн генератор

Энэхүү зааварчилгаа нь энгийн туршилтын төхөөрөмжид зориулагдсан болно; цаг ба импульсийн генератор.

Энэ нь туршилтын цаг эсвэл импульсийн дарааллыг бий болгохын тулд esp8266 дээрх i2S тоног төхөөрөмжийн интерфейсийг ашигладаг. Энэ нь үндсэн системд тусгай тоног төхөөрөмж шаардлагагүй тул угсрахад хялбар болгодог.

  • 2 Гц -ээс 20 МГц хүртэлх цагны үе
  • Ямар ч давтамжийг ашиглаж болно
  • 160MHz үндсэн цагнаас цаг хуваагч болон битийн уртыг хамгийн сайн тохируулахыг хайж байна
  • Ерөнхийдөө 100 кГц -ээс бага давтамжийн хувьд 0.1% -аас илүү сайн таардаг
  • Орон зайны харьцааны сонголтыг тэмдэглэ
  • Орон зайг илүү сайн зохицуулахын тулд давтамжийг тааруулах хүлцлийг сулруулж болно
  • Файл дахь тодорхойлолт дээр үндэслэн импульсийн галт тэрэг үүсгэх
  • Вэб дээр суурилсан GUI нь компьютер, утас, таблетаас удирдах боломжийг олгодог
  • Wifi менежмент нь анхны чиглүүлэгчийг хялбархан тохируулах боломжийг олгодог
  • OTA програм хангамжийн шинэчлэлт
  • Уян хатан хяналтыг өгөх тусгай I2s номын санг (i2sTXcircular) ашигладаг

Алхам 1: Техник хангамж

Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж

Би уурхайгаа USB цэнэглэгчтэй 18650 батерей, асаах/унтраах унтраалга, гаралтын дохионы 3 зүү бүхий толгойн залгуур бүхий 3d хэвлэмэл хашлагад хийсэн.

Хашлага нь зайны дэргэд электрон бараа тавих зориулалттай нарийн үүртэй.

Дохио нь GPIO3 зүү (RX) -ээс гардаг. Үүнийг шууд ашиглаж болно, гэхдээ өндөр хөтчийн чадварын хувьд би 74LVC2G34 ашиглан бага зэрэг буфер оруулахаар шийдсэн. Би энэ төхөөрөмж дээрх хоёр буфертай зэрэгцүүлж, илүү их жолоодох чадварыг бий болгосон.

Бүх зүйл зөвхөн төхөөрөмжийн програм хангамж дээр хийгддэг бөгөөд хяналтыг вэб серверээр хангах замаар хийдэг бөгөөд ингэснээр компьютер, утас, таблет дээрх хөтөч бүрэн хяналтыг өгдөг.

Алхам 2: Програм хангамж

Програм хангамжийг бүтээх, тохируулахын тулд https://github.com/roberttidey/espI2sClockGen дээрх кодыг ашиглана уу.

  • I2sTXcircular номын санг суулгах (багтсан болно)
  • BaseSupport номын санг суулгах (https://github.com/roberttidey/BaseSupport)
  • WifiManager номын санг нэмнэ үү
  • BaseConfig.h дахь нууц үгийг засах
  • Arduino орчинд хөрвүүлэх, байршуулах
  • AP сүлжээнд холбогдож 192.168.4.1 руу хайлт хийх замаар wifi сүлжээний менежментийг тохируулна уу
  • STA ip/upload ашиглан өгөгдлийн хавтаснаас үндсэн файлуудыг байршуулах
  • Дараа нь ip/edit ашиглан нэмэлт байршуулалтыг хийж болно - ердийн интерфэйс нь ip/дээр байна

Хэрхэн ажилладаг

I2sTXcircular номын сан нь буфер хэлбэртэй дугуй гинжин хэлхээг бий болгох боломжийг олгодог бөгөөд үүнийг i2S тоног төхөөрөмжөөр esp8266 дээр DMA ашиглан автоматаар гаргадаг бөгөөд ингэснээр програм хангамжийг ашиглахгүй болно.

Төхөөрөмжийн үндсэн цаг нь 160 МГц бөгөөд хос хуваагчаар хуваагддаг. Дараа нь гаралтын дохиог буферт ямар өгөгдөл оруулснаар тодорхойлно. Хоёр хуваагчийг сонгож, импульс бүрийг илэрхийлэхийн тулд олон тооны өгөгдлийн битүүдийг ашигласнаар давтамжийг ойролцоогоор ойртуулж болно. Энэ нь мөн үүргийн мөчлөгийг (цагийн импульсийн тэмдэглэгээ/орон зайн харьцаа) өөрчлөх боломжийг олгодог.

Хөтчийн javascript код нь сонгосон давтамжтай ойролцоо нийцэхийн тулд параметрийн сонголтыг оновчтой болгохыг хичээдэг.

Гол зорилго нь цаг гаргахад зориулагдсан боловч импульсийн файлд тодорхойлолтыг оруулснаар илүү нарийн импульсийн галт тэрэг үйлдвэрлэх боломжтой бөгөөд дараа нь үүсгэх өгөгдлийг хянаж, дугуй буферт оруулах боломжтой болно. Дэлгэрэнгүй мэдээллийг импульсийн файлуудын жишээн дээр оруулсан болно.

Алхам 3: Үйл ажиллагаа

Үйл ажиллагааг үндсэн зураг дээр үзүүлсэн хөтчийн интерфейсээр хянадаг.

Ердийн цаг үүсгэхийн тулд та зорилтот цаг болон зайны % харьцааг сонгоно уу. Бодит хүрсэн цаг ба түүний алдааг харуулна. Цаг үүсгэх товчийг дарахад параметрүүдийг төхөөрөмж рүү илгээж, эдгээр параметрүүдийг ашиглан цаг үүсгэж эхэлдэг.

Нарийвчилсан мөрөн дээр дарж дэлгэрэнгүй мэдээллийг харах боломжтой.

Бит цаг нь 160 МГц давтамжийг ашиглаж байгааг харуулж байна.

Тэмдэглэгээ ба зай хоорондын зай нь тэмдэг, орон зайг илэрхийлэхэд хичнээн бит ашиглаж байгааг харуулдаг.

Div1 ба Div2 нь хамгийн ойрын битийн цагийг гаргахаар сонгосон хоёр хуваагчийг харуулна.

Ихэвчлэн хоёр хуваагчийг сонгосон давтамжтай хамгийн ойр тохируулах, өгөгдлийн битийн тоог нэмэгдүүлэх зорилгоор сонгодог бөгөөд энэ нь янз бүрийн үүргийн мөчлөгт илүү уян хатан байдлыг бий болгодог. Гэсэн хэдий ч заримдаа хамгийн сайн тохирох нь цөөн тооны тоогоор ажил үүргийн мөчлөгийг өөрчлөхөд бага зай үлдээдэг. Хүлцэл % -ийн утгыг өөрчилснөөр хуваагчдыг энэ хүлцлийн хүрээнд давтамж өгөхөөр сонгох боловч илүү их өгөгдлийн бит ашиглах боломжтой болно. Жишээлбэл, хүлцлийг 0.5 эсвэл 1 болгож тохируулаарай.

Параметрүүдийн сонголтыг хянахын тулд та үг бүрийн битийг тохируулж болно. 0 (анхдагч) гэдэг нь үг бүрт дурын бит сонгохыг хэлнэ. Нэг тоо (жишээ нь 24) гэдэг нь зөвхөн үүнтэй тохирох параметрүүдийг сонгохыг хэлнэ. Та мөн муж оруулах боломжтой (жишээ нь 24, 31). Энэ нь зөвхөн 10 кГц -ээс дээш давтамжтай Гц -д ажилладаг бөгөөд энэ хэмжээнээс доогуур тоог үржүүлэх болно.

Буферийн хэмжээ нь 32 бит үгээр ашигласан нийт буферийг харуулна. Цагны импульс нь буфер дотор төгс дугуй хэлбэртэй байхын тулд үүнийг сонгосон болно. Дотооддоо энэ буферыг хэд хэдэн жижиг руфер болгон хуваасан бөгөөд гинжлэгдсэн DMA -ийг ажиллуулах боломжтой болно.

Импульсийн үйл ажиллагааны хувьд TAB импульсийг сонгоно уу. Энэ нь боломжтой импульсийн файлууд болон тэдгээрийн тодорхойлолтод үндэслэн импульсийн галт тэрэг үйлдвэрлэх тус бүрийн хажууд байгаа товчлуурыг харуулна. Та линк дээр дарж файлын агуулгыг харах боломжтой. Илүү импульсийн файлуудыг ip/edit файл хөтчийг ашиглан байршуулж болно. Тэд импульсийн нэрээр эхлэх ёстой.

Зөвлөмж болгож буй: