這篇文章寫到現在我都不記得要寫了啥了。因為平時沒事就打開寫一點。
首先是ESP32-C3只支持BLE,也就是數據是以packet出現的。不支持普通的藍牙,也就是數據的處理的時候是可以字符串去操作的。
還有就是任何有發送功能,就像藍牙,WIFI,NRF這些芯片的PCB都是4層板,因為要保證性能。
這個就是普通的比如ESP32這個有通用藍牙的芯片,就是調用的這個庫
另外如果是有使用外置的這些開發板
裝上面這個By ESP的
這個是這樣的
可以看到讀寫的命令很簡單
BluetoothSerial::begin(String localName=String(), bool isMaster=false)藍牙初始化方法這里寫入藍牙名稱
BluetoothSerial::connect(uint8_t remoteAddress[])連接指定藍牙的方法 參數是指定藍牙設備的MAC地址
BluetoothSerial::available()檢查藍牙接收的寄存器中是否有數據 返回值是藍牙寄存器中剩的字節數
BluetoothSerial::write()見文生意 藍牙發送數據的方法 每次只能寫入一字節 但是還有
write(const uint8_t *buffer, size_t size)不定長寫入方式
BluetoothSerial::read()一樣見文生意 讀取藍牙數據的方法 每次讀取1字節 藍牙寄存器采用的先進先出 read()每調用一次 藍牙數據寄存器的字節就-1
BluetoothSerial::register_callback()該方法用來登記回調函數 不了解回調函數的請自行百度。
????
牛逼 ,普通藍牙沒有居然是???
原來如此
有各種網絡拓撲
對比
服務器宣傳它的存在,因此它可以被其它設備發現并包含客戶端可以讀取的數據。客戶端掃描附近的設備,當它找到它正在尋找的服務器時,它會建立連接并監聽傳入的數據。這稱為點對點通信。
GATT 代表通用屬性,它定義了向連接的 BLE 設備公開的分層數據結構。這意味著 GATT 定義了兩個 BLE 設備發送和接收標準消息的方式。理解這個層次結構很重要,因為它可以更容易地理解如何將 BLE 與 ESP32 一起使用。
Profile:針對特定用例的標準服務集合;
Service:收集相關信息,如傳感器讀數、電池電量、心率等;
Characteristic:它是實際數據保存在層次結構(值)上的位置;
Descriptor:關于數據的元數據;
Properties:描述如何與特征值交互。例如:讀、寫、通知、廣播、指示等。
這個就是UUID
里面有這個寫入時候的操作
對應的要操作的回調函數
可以把特征值定為寫入類型, 這樣客戶端可以給我們寫入, 觸發寫入回調函數。 這段代碼定義了一個名為 MyCallbacks 的C++類,該類繼承自 BLECharacteristicCallbacks。 BLECharacteristicCallbacks 是一個用于處理BLE特征(characteristic)的回調函數的基類。 在 MyCallbacks 類中,定義了一個名為 onWrite 的回調函數,該函數將在BLE特征被寫入(write)時被調用。具體來說,當遠程設備向BLE特征寫入數據時,這個回調函數會被觸發。 以下是 onWrite 回調函數的主要功能:
voidonWrite(BLECharacteristic*pCharacteristic):
這是一個回調函數的聲明,接受一個指向 BLECharacteristic 對象的指針作為參數。該參數指向觸發寫入事件的BLE特征對象。
在函數體內部,首先通過 pCharacteristic->getValue() 獲取到從遠程設備寫入的數據,將其存儲在名為 rxValue 的字符串中。 然后,檢查 rxValue 的長度,如果長度大于0,表示接收到了有效的數據。 如果有有效數據,就會通過串口(Serial)輸出一條包含接收到的數據的消息,用多個 Serial.print 語句來逐個打印接收到的字符。 后面為了有補全,我使用了PlatformIO,但是遇到了大家都遇到的問題,就是創建項目非常慢!
C:Userszyy18.platformiopenvScripts
把上面的路徑加到環境變量里面
首先,需要確保C:Users[你的用戶名].platformiopenvScripts這個目錄已經在環境變量中了 并且默認的Python就是這個路徑下的python 其次,打開你的powershell,輸入如下命令 mkdir [你的工程文件夾名稱] cd [你的工程文件夾名稱] pio project init --board esp32dev # 這句是核心
我們使用命令行來生出一個新項目
具體的板子的名稱可以去官網看
這個就是它的名字
你可以更改一個keyword來說明要使用什么編程環境
事實上,這個東西也是有的
可以去選擇各種的功能,給IDF設置
其實慢的原因是pip的源是國外的
本來就沒有多少引腳,后面一看更沒有了,天生的遙控芯片
可以跟著這個看
這個是官方的開發板上面使用的按鍵
這個是原理圖的示意圖
官方的按鍵連接是有電容的
這個是jlc的一個項目,按鍵是電容的
我以前大學的時候也做過類似的東西
使用一個MOS管來當開關
大家現在都喜歡MOS管,這里也是開關
本來是需要設計這個電池充電的部分的,但是現在為了快速就不考慮了
以下的內容來說明,ESP32-C3不是低功耗的,而且對于電池應用來講是不可行的。
接下來就是喜聞樂見的電池
大概就是這么大
對于隨機 CR2032(典型的 Ir 被稱為 10-40 歐姆 (10,000-40,000mOhm)。可以將內阻視為與理想電壓源串聯的電阻。
現在,當ESP32啟動時,它可以輕松拉取300mA。
即使在最好的情況下(Ir=10 歐姆),這也意味著內阻會消耗可用 3V 電壓中的(U=I*R,0.3A*10ohm=)3V。
換句話說,當 ESP32 啟動時,它會從不良的 CR2032 中拉出大量電流,導致電壓完全降至零,從而ESP32 復位/崩潰。
可以看到就是到了300mA以上的電流,應該就是峰值了
很多帖子聲稱啟動期間甚至在 RF 初始化之前就有高達 300mA 的峰值,然后在 WiFi 或 BT 啟動時出現額外的浪涌。處理這個問題的通常方法確實是在電源上安裝一個巨大的電容器。
研究 ESP32,所以在電源上串聯了一個 1R 電阻來檢查啟動時的電源電流。-電流是需要串流進去的。
黃色線,1 歐姆,因此 1V = 1mA。
RST——釋放復位按鈕。 1 - 它進入 arduino setup(),它做的第一件事是脈沖 GPIO(藍色跡線),以便顯示在示波器上。 4 - 頻率降低至 80MHz,這確實減少了一點電流消耗。 3 - WiFi 已啟用,因此與應用程序無關。當前的峰值比圖表顯示的要高得多。 在 RST 和 1 之間,你無法控制,它正在執行引導加載程序和啟動代碼,并且在 250ms 內消耗約 55mA 的電流。對于 CR2032 來說這已經是相當多了,令人驚訝的是它甚至能夠初始化串口并打印一些東西。電池一定是新的! 上面說的電容器有幫助嗎? i=C dv/dt,因此 C=i dt/dv。為了使輸入電壓在 dt=0.25s 期間、i=55mA 期間從 6V 降至 3.5V (dv=2.5V),C=5500μF,與電池并聯放置在電源開關之前。不完全實用,也不是很“薄和時尚”,但可行。 為了減少電流,必須破解 SDK 以插入一些在啟動時立即執行的代碼。也許可以降低時鐘速度,或者插入一些周期性睡眠以減少平均電流消耗。當然,無法修改 ROM 引導加載程序,因此如果它想在運行代碼之前讀取整個閃存以對其進行校驗和, 我不打算這樣做,但如果你真的想以 5mA 的電流運行 ESP,我想你必須重新編譯 SDK 和引導加載程序. 如果啟動后這種情況發生得相當快,那么此時你也許可以將其重新配置為低功耗,并使用更小的電容器。 如果你不使用 arduino“框架”,而是使用 espressif SDK,它的行為可能會有所不同(如果啟動速度更快就好了)。 另一個潛在的罪魁禍首是 LDO。它是一個微功率 LDO,速度往往非常慢,并且需要很長時間才能對脈沖負載做出反應:
這個是靜態的漏電流來著
有人設計了一個這樣的板子,老外喜歡的不行
扛不住的電池,換成了鋰電池
對于低電池功耗設備,
使用 MCP1703 LDO(2μA 靜態電流)可能比使用 65μA 的 SE5218 更好。
其實一點都不低功耗
確實,人家文檔自己也說了
這里就看看沖牙器的按鍵
都是這種按壓的
這個是不清晰的圖
都是這樣的
反正都是這種按鍵,這里是我拆了幾個
Apple Watch的按鍵是這樣的
旋鈕
電源管理單元采用的是Micro-USB充電接口和一顆型號為LTH9鋰電池充放電管理芯片,并在芯片的引腳1處連接了一顆100K的電阻和10μF電容構成一個RC吸收回路,用來抑制電路中的浪涌電壓,規避充電電壓過高的問題。
為了避免直流電機在運行過程中,電刷與轉子之間摩擦產生的電火花以及高頻的噪聲,這款電動沖牙器在離電刷與轉子最近的兩極側,并聯了一個顆0.1μF的陶片電容,用以抑制其他因素對電機運行的影響,保證電路正常工作。
電機并聯電容的設計在很多小型的電動設備中普遍都有使用,這主要還是廠商考慮到了電容對電火花和高頻噪聲抑制效果的問題。由于電容對噪聲與電火花的抑制效果受會電容到電機的距離影響,當電容離噪聲源越遠時,諧振頻率就會降低,消除噪聲的效果自然會變差,因此這也是為什么這顆電容放在電機兩極的原因。
本文的開發板改裝于這個,超小板子,0201封裝
哥們呢,眼神不行,就0603了。。。
記得在這里批量修改封裝
它這個的LDO漏電流很小,是下面面寫的很小封裝的LDO
這個是官方使用的LDO
使用固定輸出
老師傅才不管呢,直接10.0.1
這個是原版的LDO
超小封裝,我覺得就沒有這個必要了
右下角
原版這個的電容可以濾波一下
直接在Type-C上面取電
官方的有著完善的保護系統
LDO也支持最小2.7V的輸入,也就是說鋰電池OK
官方的是
UART->USB
這個是控制芯片的模式
圓弧的走線看著就是可愛
第一次見圓弧的
放大看
在這里設置
1. 最小線寬: 6mil (0.153mm) 。也就是說如果小于6mil線寬將不能生產,如果設計條件許可,設計越大越好,線寬越大,工廠越好生產,良率越高 一般設計常規在10mil左右。 2. 最小線距: 6mil(0.153mm).。最小線距,就是線到線,線到焊盤的距離不小于6mil 從生產角度出發,是越大越好,一般常規在10mil,當然設計有條件的情況下,越大越好。 3.線路到外形線間距0.508mm(20mil) 線寬原則:一般情況下,信號線寬為0.3mm(12mil),電源線寬為0.77mm(30mil)或1.27mm(50mil); 線隙原則:線與線之間和線與焊盤之間的距離大于等于0.33mm(13mil),實際應用中,條件允許時應考慮加大距離; 布線密度較高時,可考慮(但不建議)采用IC腳間走兩根線,線的寬度為0.254mm(10mil),線間距不小于0.254mm(10mil)。 英寸(")是美洲體系的常用規格單位,如鋼管、閥門、法蘭、彎頭、泵、三通等,如規格是10"。 英寸(inch,縮寫為in.)在荷蘭語中的本意是大拇指,一英寸就是一節大拇指的長度。當然人的大拇指的長度也是長短不一的。14世紀時,英皇愛德華二世頒布了“標準合法英寸”。 其規定為:從大麥穗中間選擇三粒最大的麥粒并依次排成一行的長度就是一英寸。 英寸與公制的換算如下:
1"=2.54cm=25.4mm 1mil = 1/100 " = 0.254 mm
早期的設計,主打一個信號通暢
把引腳拉一些出來
對于信號傳輸來說,可以平滑阻抗,減小阻抗的急劇跳變;避免高頻信號傳輸時由于線寬突然變小而造成反射,可使走線與元件焊盤之間的連接趨于平穩過渡化。
在工具這里設置
這個差分布線是很方便的
這個是在布局的時候,點一下讓它去下面
關鍵信號線優先:模擬小信號、高速信號、時鐘信號和同步信號等關鍵信號優先布線 ; 密度優先原則:從單板上連接關系最復雜的器件著手布線。從單板上連線 最密集的區域開始布線 。 元件布局時,應適當考慮使用同一種電源的器件盡量放在一起,以便于將來的電源分割。 現在的芯片引腳越來越多,越來越密。如果集成芯片相距過于親密,就會有很大可能無法將它們的引線輕松的引出布線,往往是越到后來布線越難。因此,在布置任何元器件的時候,都需要盡可能在它們之間留下至少350mil的距離,對于引腳多的芯片,留的空間需要更大。 電解電容充當瞬態電流的電荷儲存器,以最大程度地降低電源上的低頻噪聲,而低電感陶瓷電容用于降低高頻噪聲。另外,鐵氧體磁珠是可選的,但會增加高頻噪聲隔離和去耦。 去耦電容必須盡可能靠近器件的電源引腳放置。這些電容應通過過孔或短走線連接到低阻抗接地平面的較大區域,以最大程度地減少附加串聯電感。 較小電容(通常為0.01μF至0.1μF)應盡可能靠近器件的電源引腳放置。當器件同時有多個輸出切換時,這種布置可防止運行不穩定。電解電容(通常為10μF至100μF)距離器件的電源 引腳應不超過1英寸。 為使實施更輕松,可以利用器件GND引腳附近的過孔通過T型連接將去耦電容連接到接地平面,而不是創建走線。示例參見圖。
所有的文章都稱為T型布局
通常,高性能數據收集系統應有四層或更多層。 頂層通常用于數字/模擬信號,而底層用于輔助信號。 第二層(接地層)充當阻抗控制信號的參考平面,用于減少IR壓降并屏蔽頂層中的數字信號。 最后,電源平面位于第三層。 電源和接地平面必須彼此相鄰,因為它們提供了額外的平面間電容,有助于電源的高頻去耦 信號線布在電(地)層上 在多層印制板布線時,由于在信號線層沒有布完的線剩下已經不多,再多加層數就會造成浪費也會給生產增加一定的工作量,成本也相應增加了,為解決這個矛盾,可以考慮在電(地)層上進行布線。首先應考慮用電源層,其次才是地層。因為最好是保留地層的完整性。 小信號放大器的電源布線需要地銅皮及接地過孔隔離,避免其它EMI干擾竄入,進而惡化本級信號質量。 為了減少線間串擾, 應保證線間距足夠大, 當線中心間距不少于 3 倍線寬時,則可保持 70%的電場不互相干擾, 稱為 3W 規則。如要達到 98%的電場不互相干擾,可使用 10W 的間距。 在距離PCB板邊緣1mm以內和安裝孔周圍1mm范圍內不允許布線; 電源線和地線應呈放射狀排列,信號線不應回環。
審核編輯:黃飛
-
藍牙芯片
+關注
關注
17文章
376瀏覽量
46045 -
開發板
+關注
關注
25文章
5050瀏覽量
97456 -
網絡拓撲
+關注
關注
0文章
102瀏覽量
11381 -
ESP32
+關注
關注
18文章
971瀏覽量
17257 -
ESP32-C3
+關注
關注
0文章
9瀏覽量
384
原文標題:ESP32-C3設計匯總
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論