2024年1月30日 星期二

過年北越旅行_下

台灣飛到越南只要三小時,但我對越南的瞭解幾乎是零。藉著旅行機會補充見聞。

越南與中國文化 

越南位置在印度支那半島東方,主體民族為京族,佔人口約百分之九十,自古就有自己的語言和文化傳承。從地理位置來看,因為與中國相近,接受許多中國文化。例如都有十二生肖、類似年節慶典、相同的文化圖騰(龍)。但若將眼光放到今天,這些文化影響已經過去,它受到法國、蘇聯、西方文化的影響更為深遠,在華裔(華族)人口不到總人口1%狀況下,我們與越南就是看似都是東方臉孔但就是不同種族。

文廟:建於1070年,毀於戰火,重建於1954年。形式等同於和中國、台灣各地孔廟,我們參觀時正好有學校舉辦畢業典禮,一斑斑的學生在大殿前宣告受贈,接著在廣場丟帽,儀式感拉滿。

延祐寺:巴亭廣場西南的一柱寺,此寺建於1049年,造型完全依照當初皇帝夢中觀音菩薩手托嬰兒,立於水池蓮花台上的形式,池中一根大石柱上建成類似出水蓮花。

越南主要信仰是佛教,路邊常常可見佛寺

門口土地公:許多店面門口地上都有土地公龕位,想法是地神就要接地氣,且要靠近大門接財氣。

越南受法國殖民

河內市區著名建築幾乎都是法國殖民時期所建,例如總督府、歌劇院、外交使館,顏色以黃色為主。路邊也常常可見非常浮誇的法式風格建築。

法國殖民期間對越南還有個重要改變是文字語言,17世紀法國傳教士以拉丁字母為基礎,添加若干個新字母及聲調符號整合成嶄新表現方式,並且在19世紀法國佔領越南時期全面啟用,成為目前體系。

共產主義在越南

一次世界大戰後,長期受法國殖民壓迫的越南人逐漸覺醒,不少在歐洲且有強烈民族意識的越南人尋思如何脫離統治,當時歐陸正好興起無產階級革命的風潮,產生一批以社會主義為基礎的運動人士,越南國父胡志明就是其中一份子。但當時,他們力量微小,遠遠無法撼動殖民者的根基。

此時第一個重要機會來到,太平洋戰爭日本攻入越南將當地法國統治階級全部清除,最大的障礙被剷除。接著是美軍又趕走了日本人。此時共產革命分子與美國人合作,取代了權力真空,宣布北越獨立。所以胡志明成為國家意志。看他陵寢寫著越南社會主義共和國萬歲/主席胡志明永遠活在我們事業中。

為了獲得資源,北越擴大與更大的共產黨盟國中國和蘇聯尋求幫助,因為對中國的不信任,越南主要和蘇聯合作,許多工程請蘇聯協助設計。之後就是北越通過越戰合併南越的史詩般鬥爭,我小時候看的第一滴血和後續風起雲湧的反戰運動都是越戰的延續,而越南也徹底成為社會主義國家,時至今日四處仍可見國旗飄揚。

社會經濟發展

越南一直是農業為主的生產模式,不知道是否因為勤於農耕,路上看到的人都很瘦。

這次行程中有水中木偶表演,就是過往農閒時期,居民在家附近池塘中娛樂鄉親的活動。


以現代人眼光來看農耕生活實在太艱苦,為求生活造就出特殊的社會現象,也就是台灣所說的越南新娘,台灣人口較越南少,但來自越南的新娘人數累計已達十萬人,而且每年還在上升中(疫情這幾年有減緩但也達三千人),相對而言中國新娘人數卻是逐漸減少,我始終對如此離鄉背井遠嫁外地的行為很好奇,直到現在都無法體會那種心情。

我們參觀的都是風景區和大型城市,雖然與農業無緣,但還是能切實感覺到當地社會與台灣的差距。古街區混亂的形式,傳承下來擁擠門面,狹窄無法行車的巷道,四處無章法(POS管理系統)的雜貨店,只要在市街上站一陣子,立刻就會被混亂的交通,四處亂竄的機車,自求多福的行人給包圍,耳邊不時傳來的喇叭聲交織成交響樂般,這些都是我們十幾二十年前的既視感。

近年來西方國家為了防堵中國崛起,眼光轉向了鄰近的越南,希望用同樣手法扶持起第二個製造工廠,近年經濟發展逐年增好,以我去的下龍市觀光區各式旅館密布,河內同樣有許多新大樓陸續建設中。

河邊一群長頸鹿

當地人們正搭上開發國家的發展路徑,前往未來。

過年北越旅行_上

自從爸爸去世媽媽搬到新竹後,幾次農曆春節為了避免她逢佳節思故人,安排了幾次國外旅遊,之後更與妹妹回國省親合併,幾次行程整理如下。

這其中幾乎全部是旅行社活動,因為經歷了幾次自助行覺得機票、住宿、交通路線規劃實在傷神,旅行社的住宿方面都是幫你安排好,飯店也會有一定的水準,食物方面的安排都是餐廳的合菜或是飯店的Buffet,交通都是遊覽車,上車睡覺、下車尿尿,基本上什麼都不用準備,就是人到就好,語言溝通方面也完全不用擔心。而且價格也不高。所以和媽媽出遊最佳的方案就是參加旅行團。而且旅行團中各色人都有,讓媽媽有機會和不同人聊天交流,整個行程與其他團員互動親切,深受大家喜愛,從出國散心的角度來說,屬於完美旅程。

這次北越行重點是參觀路龍灣和下龍灣,陸龍灣位在河內南方約200公里處,行車途中,只見公路旁或有山丘出現,起初是正常丘陵型態,隨著越往陸龍灣,造型益發奇特,密度越來越高。山丘高度約百公尺,四散在平野上,陡峭山壁與房舍和耕地比鄰而居,在都市人眼中奇怪的存在,此處卻一點也不違和,反而很像天上神仙閒來無事隨意擺放在此,原本就該這樣存在著。

原本以為陸龍灣會是在深山高嶺中,實際上離開筆直公路幾分鐘車程,轉進片山嶺就抵達目的地,這裡山頭不再獨立,而是峰峰相連,最特別吸引人的是一彎河水在兩側山嶺間穿行而過,河水廣闊似湖,乘坐舢舨上無法感受出水流方向,一切方向全由搖槳女士操控。

依行程設計,四人一組遊湖,起初沿岸而行,忽然船首轉向山壁直進。回過神才發現原本以為堅實無比的大山延著水面有個一兩公尺高但夠寬的洞窟可讓我們舢舨穿行通過。洞內陰暗崎嶇且乘客彎腰才能安全通過,搖槳者無視於我們的驚呼,僅憑頂上小小架在岩壁上的燈,逕自帶著船在大山中心左彎右拐的前進直至出洞重見光明,發現景色與先前完全不同,此處地勢平緩,河面上還種有荷花,原來自己已經貫穿大山到達了另一側,這情景非常類似桃花源記中【林盡水源,便得一山。山有小口,彷彿若有光,便舍船,從口入。初極狹,纔通人;復行數十步,豁然開朗。土地平曠,屋舍儼然。】很有山重水複疑無路,柳暗花明又一村感受。此種岩洞共有三處,最長達二百五十公尺,雖然不確定是自然生成或人工穿鑿,為行程增添許多樂趣。

繼續前行,如詩如畫山景外,較大河階處還有廟宇、休憩區可讓遊客上岸休息,尤有甚者河中還浮有座大型涼亭遺世獨立在山水間。

我們無法上岸只能任由船伕帶著前進,此船無引擎全由人力驅動,這勞動力讓我感到吃驚與不安,主要是景光的腰痛因為長時間卡在小舟間動彈不得越來越痛,我無計可施只能乾著急。這次從桃園機場開始,景光就扭到了腰,原本期望三小時航程會有所緩解,狀況卻越來越糟,此時更痛到流出眼淚。因為無法溝通掌握船行方向,有時覺得是直線但又似是在環繞,若要快速上岸的方法只有一個,那就是拿起船槳,幫忙船伕划船加快速度。還好遇到小汽艇將她載離,否則不知得痛到何時。

離開陸龍灣後,車向東北,也是200公里後抵達下龍灣市。此為觀光大城,景光在這享受了按摩疼痛稍微緩解(不然整個行程都會被取消吧),媽媽忘記帶慢性處方簽中的一款藥也有經過親戚幫忙說明解除了些壟罩她頭頂上烏雲。

第二天參觀名列新世界七大奇景世界自然遺產的下龍灣。行程安排是搭乘大型遊輪國賓號出海,船高四層,底下兩層是臥艙,頂部是餐廳和兩層甲板露臺,包括露天按摩⽔池和休憩區,可以360度俯瞰下龍灣,因為是首次搭乘類似遊輪,看什麼都覺得新奇,還被老婆拉著在船頭突出玻璃橋上拍照。經過一小時向東南方向的航行抵達海上景區,接著換乘中型渡輪開往驚奇洞。隨著渡輪開向海中山嶺,這些剛剛在航程中僅能遠眺的山嶺逐漸清晰。

島嶼特徵是山勢挺拔,滿山都是植物覆蓋著,臨海交界處多半是垂直入海幾乎沒有沙灘。此時才能體會下龍灣的特點,牠與陸龍灣相同,兩者都是喀斯特地形,但因為是海中,長年受海洋侵蝕影響,呈現出另外景致。登島後沿步道向上幾十公尺才到洞口幾個轉折就進入大山中心,石灰岩被溶解掏空的大型山洞,這裡遍布著只有在地球科學課本才出現的石筍和石瀑等特殊結構,在不同顏色燈光照明下呈現不同風貌,類似呈現方式在桂林、墾丁、沖繩、深圳旅遊都見過,大同小異,但想到目前是在身在大山之中且四面環海,一切就顯得那麼驚奇。


行程結束後回到大型遊輪用餐,下午接續行程是參觀天井洞(又名穿洞 Hang Luon)。這裡是被群岩環繞的海水湖泊,想欣賞這美景,就得穿過窄小石洞,其名是依此而來。四面環繞僅中間有海灣,像極了紅豬的畫面,曾經007明日帝國也在此拍攝。

天井洞外,星羅棋佈著各式島嶼,若上下都小中間比較大那種很像阿凡達的世界,還有山壁中因為被海水侵蝕但抬升後類似仙洞。還有類似象鼻岩的拱門地形。

行程最後安排了登英雄島,英文名TI-TOP,是紀念蘇聯太空人Titop拜訪後命名,島嶼不大卻有下龍灣各島間難得的潔白沙灘,在冬季都能見到玩水人潮,可想而知夏季必定人滿為患。循步道向上,聽說登頂有很好視野,我和女兒晃到山腰涼亭就折返了。

船上用餐、音樂演唱、適合拍照。海上風光。

\

2024年1月28日 星期日

電子電路_應用組件_電源

電壓轉變

電壓轉變(升壓)

升壓變換器至少有二個半導體元件(一個二極體及一個電晶體)及至少一個儲能元件(電感器)的開關電源。為了降低電壓漣波,會在輸入端及輸出端加裝用電容器製作(有時也會配合電感器)的濾波器。WIKI中有特別介紹升壓的原理,來回運作下逐漸提升,非常了不起。( 連結 連結 )

XL6009

XL6009升壓模組(有兩個),可動態調整輸出的電壓,購買( 連結 ) 外觀和降壓類似,好像只是把零件反過來放啊,照片中右邊是輸入,順時鐘轉,電壓越來越小(和降壓模組相反)。模組性質:非隔離升壓(BOOST)。整流方式:非同步整流。輸入電壓:3V~32V。輸出電壓:5V~35V。 輸入電流:4A(最大),空載18mA(5V輸入,8V輸出,空載小於18mA。電壓越高,空載電流越大)。

单节锂电池1V-5V 3V 3.7V升5V 1A 升压板 移动电源升压充电器模块

1V-5V 3V 3.7V升5V 1A,產品2 1A( 購買連結 ),有兩片。

某種升壓模組,可充2S 3S 4S的電路板,價格約一百多。連結。概念上應該只是調整電壓,和獨立充電沒有關聯。

DC-DC5Vout-模块 DC-DC升压模块(1V~5V)In:1V~5V Out:5V/0.3~0.5A。百年98676。

電壓轉變(降壓)

XL4015

產品 XL4015可调降压模块 DCDC 4~38V 96%高效率 大功率 低纹波 5A ( 連結 )。输入电压范围:4~38VDC 左上是輸入正  左下是輸入負。输出电压范围:1.25-36VDC可调,右上是輸出正  右下是輸出負,用一字螺絲調旋鈕,逆時鐘電壓會越小,順時鐘變大。既然是降壓模組,輸出的電壓一定會比輸入的低啦,如果猛旋鈕讓輸出較高,也無所謂,就只會停在輸入的電壓位置罷了。输出电流:0-5A。输出功率:75W。效率高达96%。


LM2596

LM2596

LM2596

(有兩個)  購買( 連結 )逆時鐘轉,電壓越來越小(和升壓模組不同) 外型和升壓模組很像。輸入電壓範圍:直流3.2V至46V(輸入的電壓必須比輸出的電壓高1.5V以上)。輸出電壓範圍:直流1.25V至35V電壓連續可調,高效率(最大92%)最大輸出電流為3A。

TP4056,鋰電池充電IC,等於是某種降壓模組。固定將Micro USB 的5V 轉成3.7V聚合物鋰電池(200mah) 如18650需要的電壓和電流(1A)進行充電。內部PMOSFET架構,加上防倒充電路,所以不需要外部隔離二極體。熱反饋可對充電電流進行自動調節,以便在大功率操作或高環境溫度條件下對晶片溫度加以限制。充電電壓固定於4.2V,當充電電流在達到最終浮充電壓之後降至設定值1/10時,TP4056將自動終止充電循環。

充電輸入電壓:4.5V-5.5V (可為Micro USB或IN接入電源)
滿充電壓:4.2V
充電指示:紅燈充電 藍色充滿。
購買  連結  連結  連結。類似產品還有ADIO-5VCH(連結) 或是連結

HW-107,兩片,類似上面,鋰電池充電IC。

降壓其他選擇LDO

LDO(Low-dropout regulator),只能用在降壓,原理是通過運放調節P-MOS的輸出。 運放,控制P-MOS的打開程度。優點:能提供精確、沒有雜訊的輸出電壓,能對負載的改變做出快速的回應。 因此,LDO的主要優勢就在於它的簡單性,很低的使用成本和雜訊,以及快速的回應能力。缺點:是兩端壓差大時,耗能高。

同時提供升壓和降壓功能

MP2636 是一款包含電池充電與系統電源路徑管理系統的整合型晶片[25],其工作電壓範圍4.5 V~6.0 V;充電輸入電流最大可達3.0 A;放電輸出電流最大可達3.0 A,擁有輸入過壓保護(OVP),電池過流保護(OCP) ;過溫保護(OTP)在晶片內部溫度達150 °C 時熱關機。此晶片應用上適用於各種使用單節鋰離子電池或鋰聚合物電池(4.2 V、4.3 V、4.35 V)的便攜式裝置。

充放電一體,沒有USB接口,僅有充電板。(連結)

自動升降壓X3 TAOBAO(連結),微型可调自动升降压模块 3V~15V转1V~15V 升压降压板 700ma/5W。

穩壓:單獨電路 LD117AS33TR (LD117A?*),IN OUT ADJ 自動維持恆定電壓的裝置,LM317 (連結)

鋰電池充電電路

概念如下,左邊是電池,中間是充電,上部是工作電路Arduino Nano需要電壓是5V,所以需要右邊是升壓模組。(參考方舟反應器 連結 )。這架構因為是手動控制,不切實際。但可以此為基礎,討論各元件內容。

升壓元件,上面提到,USB接頭的連結法

保護電路介紹

保護電路,例如LC05111C16 是一款內含MOSFET 的1節鋰離子二次電池保護晶片,包含高精度電流檢測線路及檢測延遲線路,以預防電池過度充電、過度放電、過大電流放電及過大電流充電。只是有MOS使用上就會造成微量自放電。一般鋰電池供應商提供的是保護電路加上CELL,且提供認證。若要單獨購買CELL,就是要另外搭配上述保護電路。

GAUGE

BQ27421YZFR-G1A:DATASHEET(連結)新元件4/6。參考資料(連結)。

有ADC能夠精確讀取電壓數值。 The fuel gauge accurately predicts the battery capacity and other operational characteristics of a single Li-based rechargeable cell.

從結構圖看都是input,所以對應command也都是讀取數值。BIN可以偵測電池是否插入,GPOUT可以當成中斷?目前直接接上去,訊問過後,並不會很耗電嗎?

CHARGE

充電 BQ25180:DATASHEET(連結)新元件5/6。可以參考

  • TI訓練教程(連結)
  • BQ25180的GITHUB範例(連結),這是應用端呼叫方式(連結),但

BQ25896的GITHUB ARDUINO範例(連結)

BQ24295的GITHUB ARDUINO範例(連結 連結)

充電模組中有個jeita,似乎是個標準協定

The device can support up to 1-A charging and system loads of up to 2.5 A. The BQ25180 integrates a linear charger that allows the battery to be charged with a programmable charge current of up to 1 A. In addition to the charge current, other charging parameters can be programmed through I2C such as the precharge, termination, battery regulation voltage, and input current limit.

The power path allows the system to be powered from a regulated output, SYS, even when the battery is deeply discharged or charging, by drawing power from IN pin. It also prioritizes the system load in SYS, reducing the charging current, if necessary, in order support the load when input power is limited. If the input supply is removed and the battery voltage level is above VBUVLO, SYS will automatically and seamlessly switch to battery power.

Charging is done through the internal battery MOSFET. There are several loops that influence the charge current: constant current loop (CC), constant voltage loop (CV), input current limit, thermal regulation, VDPPM, and VINDPM. During the charging process, all loops are enabled and the one that is dominant takes control.

BAT是從GAUGE過來的電,會從SYS出去,到各個不同的系統。內部可以控制能不能通電,達到開關的效果。

TI建議的結構圖
資料位置在WIPOC Main PCBA V.10X Layout

搭配組合狀況
四種不同模式
  • Battery Mode
  • Ship Mode
  • Charge/Adapter Mode when a supply is connected to IN
  • Shutdown mode.

MCU醒來後,問GAUGE目前電量,page 10,Voltage() 
如果電量太低無法支撐後面
進入等待充電流程(後面)
如果電量足夠處理後續,繼續
詢問BUTTON是否有按下 可能是用 8.5.1.2 STAT1 Register (Offset = 0x1) [Reset = X] 
如果有按下,表示是由按紐驅動(一開始拿到的實驗也是先從這個開始,就是讓電池直接供應系統電源,都用按紐控制啟動)
問GAUGE目前電量(前面有提過),確認電量是否足夠完成一次注射(會有安全數值)
如果足夠
繼續後面注射流程
進入關機流程(後面)
如果不夠
進入等待充電流程(後面)
詢問USB是否有插入,不確定方法,可能直接問VIN電壓就可以知道是不是有TYPE C
如果USB有插入,表示要準備充電
準備充電啟用充電指令充電指令是什麼
充電過程

對應不同充電階段

充電過程中 是否要一直問GAUGE 或是讓系統自動回報已經充飽
如何得知已經充飽了
充滿電後電燈號改變
等待充電流程
直接閃紅燈,等待充電,可能等個20秒,關機
問題如果這時候USB插入,能夠知道嗎?看起來是啟動WATCHDOG? P38
觀機流程
我找不到關機指令 不確定是不是下表第四個狀態11

整體問題

  • 電池一直接著GAUGE不會耗電嗎?
  • 為什麼CHARGE不能提供電壓呢?
  • 如何決定哪種SLEEP MODE,要先燒錄進去嗎?
  • 現在電池充電溫度控制在哪,由CHARGE或是GAUGE
  • 實驗透過 SYS_MODE ,讓插著USB時,選擇讓電池供電或是讓USB供電


各種安全保護,保護機制分成很多部分,也可以啟動 Watchdog Timer,透過interrupt喚醒系統。


行動電源範例(兼具充放電)

模擬行動電源。參考論文:基於 Arduino 實現USB Type-C 雙向快速充電行動電源(連結)。和前面比較,多了USB晶片FUSB303通知MCU目前插入的裝置為充電,或者是放電模式,通知MP2636進行處理。

實際應用PMIC(Power Management IC)

AXP202:更換AXP173 192 2101,購買連結 連結  datasheet(連結)。
AXP2101:前面已經停產,現在主推這個(連結)
使用APX,螢幕部分使用SSD1306。GITHUB

文字說明

連結

電源供應

最好是具備專業的電源供應器,不過窮人有窮人的作法。B3603高精度數控DC-DC恆壓恆流降壓模組。


電子電路和應用整理



電子電路_MCU_通訊介面

MCU單片機

微控制器(Microcontroller Unit, MCU),等同一顆小電腦(麻雀雖小五臟俱全),內含CPU、記憶體以及基本周邊單元。

ATMEL

ATMEL被microchip合併

  • ATtiny85:最陽春的MCU,也可以用UNO來寫程式(連結)
  • AVR:使用過ATUC64L3U、ATxmega64A1U、AT90S8515(KIM)
  • SAMS:這兩年大量使用SAM4S8B(連結)

ST : STM32XXX

ARM 32bit Cortex-M3CPU  72MHz,1.25DMIPS/MHz   32-512KB Flash  6-64KB SRAM
STM32F4介紹(連結) 記憶體管理(連結) ,還記得以前拿到開發板,覺得好複雜的感覺,現在卻是常常接觸。
自己有用過這個組裝一個包含列印機,MCU,相機三者的東西,不過現在仔細看看若用OpenMV,相機部分可以直接省略呢。
延伸OpenMV(連結):屬於功能整合型MCU,網站。手邊有好幾代。

忘記哪裡來的開發板
忘記哪裡來的開發板

TI : MSP430

低工耗,16bit,過去專案使用到,為了安全起見和SAM4S做對手。

ARC

架構類似ARM但不需給付授權費,工作上用了許多年(專案層次)

Arduino

使用過多種版本,例如MINI、UNO

UNO
MEGA(連結 IDE設定,處理器選1280 價格約140元)

MEGA

Arduino & Android

類似於Mega 加上一個可以連接到安卓手機的USB 主機接口。當初購買約800元(貴),連結

相較於WIFI或是藍芽,自己很喜愛單純線控的概念,只是似乎沒有後續發展。Arduino那邊使用USB CLASS,與ANDROID進行溝通,同時Android程式也要有另外的程式,才能溝通。

Arduino Mega ADK Rev3 連結  連結 Arduino Mega ADK 有一片

Freaduino ADK  連結1 有一片   Arduino Mega ADK 連結2   連結3 

XADOW

依序是RTC 擴展 藍芽 MAIN 類似振動器 電池

硬體

供電 連結 5V的USB行動電源可使用,供電孔為9V至12V,使用9V原因( 連結 )

FTDI當做連結,DRIVER是C:\Program Files (x86)\Arduino\drivers\FTDI USB Drivers 找到,用COMXX對應使用

使用上產生所謂SHIELD,將許多線路延伸出來,SHIELD各式各樣。


安裝和軟體

安裝檔(1.8.8版 下載)

void setup() {

   pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

   digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)

   delay(100);                       // wait for a second

   digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW

   delay(100);                       // wait for a second

}

沒有main的結構,檔案名稱為XXX.ino,系統也會自動以XXX建立同名目錄

使用第三方專案,專案位置在 C:\Program Files (x86)\Arduino\libraries 每個專案都是一個個單獨的目錄

#include “xyz.h”


複雜專案

在相同目錄下,將x.h x.c(cpp) 檔案放在同一目錄

#include “xyz.h”

就可以完成編譯

參考連結


製作屬於自己專案

參考連結

找到每個IDE設定的專案位置,位置在

IDE's File > Preferences > Sketchbook location

這裡就會看到目前的位置,資料是 C:\Users\kayjean\Documents\Arduino

在這個目錄下建立自己專案的目錄名稱PwmLed

把三個檔案放進去

libraries/PwmLed底下還可以放個examples目錄,存放範例(也就是現在正在做的事情)

Arduino OS

PORT簡單OS 超瘋狂,可當成OS學習教材(連結)

顯示TTF文字

控制相機拍照

連結

小型LED

PIN13有內建電組,可實驗LED,也可以用電路板接出(注意,長腳為正)。小功率的LED都是屬於直插式,一般都是按直徑分型號3mm 4mm 5mm 8mm 10mm 12mm。不論直徑大小,其工作電壓和工作電流都是一樣約15mA。電壓以常見的5MM來看,紅光 黃光 1.7--2.1V。白光 藍光 暖白光 粉紅光 紫色光 2.8--3.6V。綠光2.6--3.4V。

藍芽

藍芽模組

抽屜裡

ESP

ESP8266

2014上海樂鑫,內部含WIFI天線。Ai-Thinker生產的ESP-01。連結,有micropython的開發機制。ESP-12E WiFi module is developed by Ai-thinker Team. core processor ESP8266 in smaller sizes of the module encapsulates Tensilica L106 integrates industry-leading ultra low power 32-bit MCU micro, with the 16-bit short mode, Clock speed support 80 MHz, 160 MHz, supports the RTOS, integrated Wi-Fi MAC/BB/RF/PA/LNA, on-board antenna.



ESP32

2019,包含WIFI和藍芽,Tensilica Xtensa LX6微處理器。連結 RISC-V 32 位元單核心處理器

  • ESP32 有BLE功能範例(連結),因為量大所以價格最低
  • ESP32-S 主頻都到240
  • ESP32-C 主頻都到160
  • ESP32-H 主頻96 拔掉WIFI,能有單純BLE功能,較適合目前需要 連結 詳細介紹(連結)

Pixart(BLE)

主功能為BLE,可參考(連結)。僅列出呼叫系統功能寫法。

燒錄方式

JTAG (1/4)

JTAG標準協議,可以實現編程時在線調試和DEBUG。接口為電源線和復位引腳,TDI、TMS、TCK、TDO:

  • TDI-- 數據輸入,所有寫入寄存器的數據都是通過 TDI 接口串行輸入的;
  • TMS-- 模式選擇,Jlink 輸出給目標 CPU 的時鐘信號;
  • TCK-- 時鐘信號,所有數據的輸入輸出都是以該時鐘信號為基準的;
  • TDO-- 數據輸出,所有從寄存器讀出的數據都是通過 TDO 接口串行輸出的

設計電路時要選用上拉電阻。 JTAG 接口有多種形式,常用的 20 引腳、14 引腳和 10 引腳(不懂)。JTAG 接口燒錄方式常用的工具為 J-Link。

SWD (2/4)

SWD是JTAG的子集合,意法半導體的 ST-Link也支持SWD。只需要兩根線。

  • SWDIO-- 串行數據線,用於數據的讀出和寫入。
  • SWDCLK-- 串行時鐘線,提供所需要的時鐘信號。

UART (3/4) 和 燒錄方式SWIM單線 (4/4) (連結)


程式語言

一般都是C或是C++,但是多了個MicroPython

通訊介面

序列:非同步I2C

I2C的特點是只有兩條線,理論說明(連結)。(很多裝置同時支援I2C和SPI兩種介面,只要切換某個電路,就會切換)。

I2C的特色是,每種裝置會有自己特殊的代號(同型號內各個產品的代號都是相同,不像WIFI通訊裝置則是UUID每個都不同),這個代號是寫在data sheet中。比較特別的是,如果一個系統裡面有多個這種裝置怎麼辦呢?牠會用是否提供電壓,改變一些address資訊,但改來改去最多就是兩個。例如手邊的三軸感測器,LIS3DSH( 這和LIS3DH不一樣歐 ),根據datasheet(連結),所謂的位置又叫做SAD  slave address

The slave address (SAD) associated to the LIS3DSH is 00111xxb whereas the xx bits are modified by the SEL/SDO pin in order to modify the device address. If the SEL pin is connected to the voltage supply, the address is 0011101b, otherwise the address is 0011110b if the SEL pin is connected to ground. This solution permits to connect and address two different accelerometers to the same I2C lines.   0011101 : 1D   0011110 : 1E

從master角度看,配合clock的動作,將slave的位置丟到bus上,各個slave判斷位置訊號若是屬於我這個裝置,就會在最後面一個訊號結束後,將電位拉下(此時master是進入free的狀況),然後就開始一連串訊號串送過程。master的頻率可以從100k~400k範圍,而slave本身並沒有發送任何頻率的訊號,slave僅僅是在每次master的clock頻率拉起來時,進行相對應動作。(非常聰明的作法)。

系統功能,將資料寫入規定暫存器和記憶體內(透過C語言的結構功能),然後變更register就可以進行例如enable、送出資料、讀取資料等動作。

ARDINO寫I2C軟體方式(連結)。

I2C大量應用在專案中,好奇其內部究竟如何設計,找到一篇文章介紹(連結),

序列:非同步SPI

連結。SPI和I2C類似(連結),同樣可以連結多個裝置。如下圖。每個SLAVE裝置掛四條線。MASTER可掛多個裝置但會依照SS而逐漸增加,要與哪個裝置溝通,就改變對應的SSX即可。

通訊方式如下(連結),分成四種。
單工:線路上的訊號只能做單向傳送
半雙工:線路上的訊號可以雙向傳送 , 但是不能同時傳送
全雙工:線路上的訊號可以同時雙向傳送
同步:傳送端和接收端共用同一個CLOCK

SPI的速度遠高於I2C,目前只在少數螢幕上使用過。

其他的協定實在太多,可以先從這篇當作基礎。I2C、SPI、UART、RGB、LVDS,MIPI,EDP和DP。(連結)

其他

UART(MCU與MCU溝通)

LVDS和MIPI的區別連結

LVDS功耗比較低,適合長距離傳輸

藍芽(連結)