Board logo

標題: [開箱] 當氮化鎵變壓器遇上PD Micro開發板 [打印本頁]

作者: Offer    時間: 2021-8-2 21:57     標題: 當氮化鎵變壓器遇上PD Micro開發板

本帖最後由 Offer 於 2021-8-19 16:24 編輯

當氮化鎵變壓器遇上PD Micro 開發板會發生什麼事呢?就是氮化鎵變壓器會乖乖地看著PD Micro想要什麼電壓輸出便聽話地遵從。

PD Micro 應該是第一款具有 USB Type-C 供電功能的 Arduino 兼容板,它允許您的Project使用 5-20 V 的電壓。如果您的控制板僅輸出 3.3 或 5 V - 例如涉及電機控製或大功率 LED 的那些。 可以使用github的library 通過 Arduino 控制輸出PD電壓,還有它也能支援PPS輸出由3.3-20V電壓。 而且都是開源的。 https://www.crowdsupply.com/ryan-ma/pd-micro

https://youtu.be/fO4SUYZ1tlo

[youtube]fO4SUYZ1tlo[/youtube]


https://www.hkepc.com/forum/viewthread.php?fid=67&tid=2632213

我很久沒搞團購了,出了個團購,請多多支持
作者: Offer    時間: 2021-8-2 22:03

本帖最後由 Offer 於 2021-8-31 22:35 編輯

[attach]2275915[/attach]

[attach]2275916[/attach]

[attach]2280639[/attach]


[attach]2280640[/attach]
作者: hon829    時間: 2021-8-2 22:45

好似淘網上的誘騙器+Arduino Micro板實惠啲
作者: Offer    時間: 2021-8-2 23:44

本帖最後由 Offer 於 2021-8-2 23:48 編輯

[attach]2275953[/attach]
好似淘網上的誘騙器+Arduino Micro板實惠啲
hon829 發表於 2021-8-2 22:45


下一個想做的就是PPS PD測試器,只要插上Type C變壓器就在i2c的oled显示屏上显示這火牛能支持的標準,這個應該很好玩

[attach]2275953[/attach]
作者: Joe_Black    時間: 2021-8-2 23:52

提示: 作者被禁止或刪除 內容自動屏蔽
作者: Offer    時間: 2021-8-3 06:36

本帖最後由 Offer 於 2021-8-3 06:55 編輯

眾籌網站 食水好深 加埋美國入口關稅 都幾係野
作者: Joe_Black    時間: 2021-8-3 07:56

提示: 作者被禁止或刪除 內容自動屏蔽
作者: Offer    時間: 2021-8-3 09:31

有無方法直接聯絡呢個香港的 Ryan Ma?
Joe_Black 發表於 2021-8-3 07:56


我有佢電話,你想直接同佢買?
作者: Offer    時間: 2021-8-3 11:22

好似淘網上的誘騙器+Arduino Micro板實惠啲
hon829 發表於 2021-8-2 22:45


有乜好介紹?
作者: Joe_Black    時間: 2021-8-3 11:40

提示: 作者被禁止或刪除 內容自動屏蔽
作者: Offer    時間: 2021-8-3 13:09

回覆

可能其他人有興趣
10# Joe_Black


好應該支持香港人開發的project, 已很少人咁有心搞開源項目了
作者: hon829    時間: 2021-8-3 13:40

有乜好介紹?
Offer 發表於 2021-8-3 11:22



實質未用過
只見淘網多的是都幾眼花繚亂, 由幾蚊到幾百蚊!
作者: Offer    時間: 2021-8-3 15:25

冇 實質未用過
只見淘網多的是都幾眼花繚亂, 由幾蚊到幾百蚊!
hon829 發表於 2021-8-3 13:40


好多係固定電壓,就算貴少少可轉的也要接電腦去改,如果火牛吾支援的電壓就向下一級比你就算,要用表度過先至知吾啱
作者: 燕飛    時間: 2021-8-4 01:11

Ryan 咁熟既?!
作者: Offer    時間: 2021-8-4 06:48

Ryan 咁熟既?!
燕飛 發表於 2021-8-4 01:11


?% 熟既
https://www.openrice.com/zh/hong ... B2%99%E5%BE%8B-r574
作者: Offer    時間: 2021-8-4 13:16

各位有冇想到PD Micro仲可以做什麼好玩的project呢?
作者: royc    時間: 2021-8-4 13:39

本帖最後由 royc 於 2021-8-4 13:41 編輯

有興趣, 但28+ 18 = 46 USD 有啲貴, 雖然係4層板

via HKEPC IR Pro 3.6.1 - iOS(3.0.0)
作者: Offer    時間: 2021-8-4 16:16

有興趣, 但28+ 18 = 46 USD 有啲貴, 雖然係4層板

via HKEPC IR Pro 3.6.1 - iOS(3.0.0)
royc 發表於 2021-8-4 13:39


係,片中我已經講左係貴,因為運費及佢地食水太深,而家睇下佢地的條款看看開發者可否自行零售或团购,如果可以港澳朋友應該省下不少
作者: hon829    時間: 2021-8-4 18:17

各位有冇想到PD Micro仲可以做什麼好玩的project呢?
Offer 發表於 2021-8-4 13:16



其實無咩嘢要用用吓變壓輸入咁玩會增加debug難道
傳統做控制已習慣做恆壓供電, 經PWM/晶體管控電流類應用了
作者: marlin12    時間: 2021-8-4 19:08

其實無咩嘢要用用吓變壓輸入咁玩會增加debug難道
傳統做控制已習慣做恆壓供電, 經PWM/晶體管控 ...
hon829 發表於 2021-8-4 18:17

如果將來的消費類電子產品,USB PD供電器變成主流,而產品又需要5V以外或大電流的供電,那麽就需要有PD sink的控制器。

如果微控器上面已經有這個功能,便不需要另加這個控制器,在減省成本上絶對是個優勢。

其實,在多數的電子產品上(例如:music station、printer、smart watch),微控器都是在多工的環境下工作的,多加一個PD協定也很平常,況且debug也只是工程師的煩惱。
作者: Offer    時間: 2021-8-5 06:37

如果將來的消費類電子產品,USB PD供電器變成主流,而產品又需要5V以外或大電流的供電,那麽就需要有PD si ...
marlin12 發表於 2021-8-4 19:08


沒錯,在產品開發上方便得多了
作者: t9097    時間: 2021-8-5 12:14

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 炎冬    時間: 2021-8-5 14:51

應該是產品支援道高, 才可以普及PD充電器
新型號notebook / 手機食 20/45/65/100W PD, 所以才買一支PD充, 可以用晒其他device..唔洗用幾款牛...
作者: Offer    時間: 2021-8-5 17:11

Change_Voltage_Without_IDE.ino
  1. #include "src/PD_UFP.h"
  2. #include <EEPROM.h>
  3. class PD_UFP_log_c PD_UFP;
  4. char pd_out[] = {5, 9, 12, 15, 20};
  5. int address = 0;
  6. unsigned char value = 0 ;
  7. const int buttonPin = 9;     // the IO number of setup pin
  8. int buttonState = 0;
  9. /*
  10.     PD_POWER_OPTION_MAX_5V      = 0,
  11.     PD_POWER_OPTION_MAX_9V      = 1,
  12.     PD_POWER_OPTION_MAX_12V     = 2,
  13.     PD_POWER_OPTION_MAX_15V     = 3,
  14.     PD_POWER_OPTION_MAX_20V     = 4,
  15. */
  16. void setup() {
  17.   pinMode(buttonPin, INPUT_PULLUP);
  18.   value = EEPROM.read(address);
  19.   Serial1.begin(115200);  // Serial1 is hardware serial on Pin D0 and D1
  20.   buttonState = digitalRead(buttonPin);
  21.   if (buttonState == LOW) {
  22.     value++;
  23.     if (value > 4) {
  24.       value = 0;
  25.     }
  26.   }
  27.   PD_UFP.init(value);
  28.   EEPROM.update(address, value);
  29. }
  30. void loop() {
  31.   PD_UFP.run();
  32.   PD_UFP.print_status(Serial1);

  33.   if (PD_UFP.is_power_ready()) {
  34.     if (PD_UFP.get_voltage() == PD_V(pd_out[value]) && PD_UFP.get_current() >= PD_A(1.0)) {
  35.       PD_UFP.set_output(1);
  36.       PD_UFP.set_led(1);
  37.     } else {
  38.       PD_UFP.set_output(0);
  39.       PD_UFP.blink_led(400);
  40.     }
  41.   }
  42. }
複製代碼

作者: marlin12    時間: 2021-8-5 22:52

本帖最後由 marlin12 於 2021-8-6 12:50 編輯

為了可以在Arduino Micro開發板的有限資源上,實現PD Micro這個項目,作者仔細研究了USB PD spec、FUSB302(PD PHY layer) 和多個現有的程式庫,重新寫出一個壓縮版的PD firmware library。

看Offer哥運用這個程式庫的範例,好似好簡單,其實是這個程式庫在背後隱藏(encapsulate)了很多步驟。
USB Power Delivery是一個很複雜的協定(745頁),要把它實現成一個易用的程式庫,可見作者的功力和汗水。

如果想了解多些這個項目,可以看看這裡。
PD Micro - USB-C PD3.0 PPS Trigger
作者: Offer    時間: 2021-8-6 07:01

為了可以在Arduino Micro開發板的有限資源上,實現PD Micro這個項目,作者仔細研究了USB PD spec(745頁)、F ...
marlin12 發表於 2021-8-5 22:52

沒錯,USB Power Delivery是一個很複雜的協定,而作者在背後已經幫了使用者處理好,因而只須一句指令便可以輕鬆運用,這也是我看中這個開發板的原因
作者: Offer    時間: 2021-8-7 16:31

睇完 眾籌網站條款 開發者出咗貨之後 佢應該可以自行安排零售
作者: Offer    時間: 2021-8-12 08:43

有興趣, 但28+ 18 = 46 USD 有啲貴, 雖然係4層板

via HKEPC IR Pro 3.6.1 - iOS(3.0.0)
royc 發表於 2021-8-4 13:39


https://www.hkepc.com/forum/viewthread.php?fid=95&tid=2631255

出了個團購資詢
作者: hon829    時間: 2021-8-12 22:40

如果純為PD誘騙電壓/電流, 好似用專用芯片較為簡單直接

如HUSB238, 淘模塊都是幾蚊人仔件, 同時支援MCU經I2C及實體引腳電阻值定PD輸出的電壓與電流:



作者: t9097    時間: 2021-8-12 23:15

提示: 作者被禁止或刪除 內容自動屏蔽
作者: Offer    時間: 2021-8-12 23:56

回覆  hon829

呢樣野會唔會有人用來控制摩打速度, 例如風扇電批 吸塵機等? 好似好簡單不過 要拖住條usb ...
t9097 發表於 2021-8-12 23:15


是可以的,當不想用pwm時也是一個很好的選擇,PPS更可控制电壓由3.3至20V,每步20mV
作者: t9097    時間: 2021-8-13 02:09

提示: 作者被禁止或刪除 內容自動屏蔽
作者: Offer    時間: 2021-8-13 06:52

如果個pd power supply 頂得住,可以做棘鷄溫控嗰類嘢,不過成本就...
t9097 發表於 2021-8-13 02:09


我戶外用 辣雞就係用PD攞電
作者: t9097    時間: 2021-8-13 08:26

提示: 作者被禁止或刪除 內容自動屏蔽
作者: Offer    時間: 2021-8-13 11:04

回覆  Offer
咁會唔會利用電壓去控制溫度?
t9097 發表於 2021-8-13 08:26


要求不高还可以,但想 穩定都係用返ADC 及PWM好D
作者: Offer    時間: 2021-8-19 16:26

本帖最後由 Offer 於 2021-8-19 17:15 編輯

https://www.hkepc.com/forum/viewthread.php?fid=67&tid=2632213

我很久沒搞團購了,出了個團購,請多多支持,初步可以拿到三十個
[attach]2278507[/attach]

[attach]2278508[/attach]
作者: Offer    時間: 2021-8-22 13:46

增加生產 滿足需求

[attach]2278927[/attach]

[attach]2278928[/attach]
作者: stephenwong    時間: 2021-8-28 12:05

本帖最後由 stephenwong 於 2021-8-28 12:12 編輯

尋日攞咗塊 PD Micro 啦。今日訓醒,就焊下啲針腳啦。如下圖:
[attach]2279983[/attach]
插落部電腦,見到近輸出電源個邊有兩粒 LED (5V <1A) 眨眨下,另外 Reset 撳掣對面個粒 LED 都閃嘅。
插入隻 PD 充電器,有一個 port (佢話最勁,可以充 MacBook 嘅),塊板的確着咗 20V >3A LED。插其他 port,就眨下眨下 12V <3A。
小小意見,啲 SMD 零件太接近針腳啦!對於我呢啲手震震廢老,焊針腳真係有啲難度呀!係驚解焊咗粒 SMD 零件呀!又條 rosin core 錫線,落錫後,總會有啲小珠珠錫球彈出嚟,好驚 short 到其他嘢呀!
時代進步咗,SMD 零件越來越細,可能我真係應該被淘汰啦!(或者,只可以上嚟 HKEPC FF 下!)
作者: Offer    時間: 2021-8-28 14:34

尋日攞咗塊 PD Micro 啦。今日訓醒,就焊下啲針腳啦。如下圖:

插落部電腦,見到近輸出電源個邊有兩粒 LED ...
stephenwong 發表於 2021-8-28 12:05



    前輩,我也有老花不過 2.54mm勉強仲焊到, 其實飛淺出嚟嘅未必會係錫, 多數都係助焊劑, 可以試下把辣雞嘅溫度降低一點或者用幼一點的錫丝也會有幫助
作者: marlin12    時間: 2021-8-28 16:27

回覆 38# stephenwong
如果唔想銲嘴或者彈出來啲鍚,碰到其他零件,可以用[寶貼萬用膠]遮住果啲零件。

其實,[寶貼萬用膠]仲可以用來固定要銲既零件。

紅色圏住果支針腳,好似係[假銲]。
[attach]2280020[/attach]

建議你去五金舖買支[天拿水],銲完之後洗吓板,之後用紙巾抺乾淨。

現在的SMD零件(例如:0.5mm pitch DFN),根本唔係畀人銲,就算係專業維修人員,都要有顯微鏡和其他工具。
作者: Offer    時間: 2021-8-28 17:57

回覆  stephenwong
如果唔想銲嘴或者彈出來啲鍚,碰到其他零件,可以用[寶貼萬用膠]遮住果啲零件。

其實 ...
marlin12 發表於 2021-8-28 16:27


我上次焊0.5 pitch ram 也要显微镜
作者: idolclub    時間: 2021-8-28 22:55

我上次焊0.5 pitch ram 也要显微镜
Offer 發表於 2021-8-28 17:57

現在用顯微鏡已經好普遍,尤其係維修電話的,個個都要用顯微鏡
作者: Offer    時間: 2021-8-29 00:41

現在用顯微鏡已經好普遍,尤其係維修電話的,個個都要用顯微鏡
idolclub 發表於 2021-8-28 22:55

呢個PD Micro開發板已經接近電話的PCB那麼細密 很難用手工焊接
作者: royc    時間: 2021-8-31 12:18

本帖最後由 royc 於 2021-8-31 12:20 編輯

昨天收到板, 急不及待試一下... 裝好library, 但係編譯有錯誤, 唔知你哋有冇同樣發生?
還是我部機有問題
但係佢裏面的example complie 冇問題, 只係個 "Change_Voltage_Without_IDE.ino" complie error
睇唔明佢講咩 error

[attach]2280506[/attach]
作者: royc    時間: 2021-8-31 14:09

終於成功 complie, 原來問題係個character editor, copy & paste 可能有些古怪字

如果直接從個貼copy and paste code 請小心

reference
https://forum.arduino.cc/t/error-stray-302/393921
作者: Offer    時間: 2021-8-31 15:23

終於成功 complie, 原來問題係個character editor, copy & paste 可能有些古怪字

如果直接從個貼copy and  ...
royc 發表於 2021-8-31 14:09


係,你應該copy左些非ASCII字元,這些看不到的非ASCII字元是你從網頁抄出來時送左比你而不自知
作者: royc    時間: 2021-8-31 17:34

玩完一輪終於可以complie, 但係 code 漏咗一個 #include  <wire.h> , 如果唔係initial 唔到出唔到電
加返兩行就可以啦
#include <Wire.h>

void setup() {

Wire.begin();
...
}
[attach]2280576[/attach]
作者: Offer    時間: 2021-8-31 22:36

玩完一輪終於可以complie, 但係 code 漏咗一個 #include   , 如果唔係initial 唔到出唔到電
加返兩行就可以 ...
royc 發表於 2021-8-31 17:34



Fixed

    https://www.hkepc.com/forum/atta ... GRVdWxleWttQQ%3D%3D
作者: normalyan    時間: 2021-9-1 13:10

我見到佢有三個Vout, 可唔可以同時三個output都同時出电?
作者: Joe_Black    時間: 2021-9-1 13:54

提示: 作者被禁止或刪除 內容自動屏蔽
作者: hon829    時間: 2021-9-1 20:52

本帖最後由 hon829 於 2021-9-1 20:54 編輯

取貨後, 終摸索了吓


玩了兩範例:
1. 誘騙出12V : (發覺輸出幾個固定電壓是屬於PD2.0的)
[attach]2280873[/attach]
[attach]2280874[/attach]


2. 誘騙出8.4V 2A 是屬於PD3.0的:
[attach]2280875[/attach]
[attach]2280876[/attach]



另發現兩個問題  
1) 用Win7 的Auduino IDE不能下載程序到板上, 用Win10即沒問題, 似COM port通訊問題:
[attach]2280872[/attach]


2) 函數 PD_UFP.run(); 必須頻密執行, 否則影響PD通訊, 阻礙誘騙:
[attach]2280877[/attach]


初步感覺MCU不能執行太多別的東西, 有delay/hang都影響誘騙電壓輸出的
作者: peter95811658    時間: 2021-9-2 04:10

本帖最後由 peter95811658 於 2021-9-2 04:13 編輯
取貨後, 終摸索了吓


玩了兩範例:
1. 誘騙出12V : (發覺輸出幾個固定電壓是屬於PD2.0的)




2. 誘 ...
hon829 發表於 2021-9-1 20:52


可以試下用timer interrupt去call個run(); function, 就唔怕loop行delay就搞到行唔到
不過用ATMEGA32U4得16M係禁上下,盡量用timer做野,唔好用delay浪費左MCU資源
作者: Offer    時間: 2021-9-2 07:47

本帖最後由 Offer 於 2021-9-2 09:36 編輯
取貨後, 終摸索了吓


玩了兩範例:
1. 誘騙出12V : (發覺輸出幾個固定電壓是屬於PD2.0的)




2. 誘 ...
hon829 發表於 2021-9-1 20:52

沒錯,因為這是PD Host的特性


.
作者: marlin12    時間: 2021-9-2 20:41

本帖最後由 marlin12 於 2021-9-9 21:17 編輯

回覆 51# hon829
PD_UFP.run()是PD Micro的核心,與其說它是頻密執行,不如說它是一個server,負責處理一切PD通訊和PD sink的工作。

相信你是想用delay,去測試PD Micro剩餘的processing power。但是微控器的多工環境,不是這樣運作的。

通常,每個functional module(例如:PD、UI)會把time critical的部份(例如:處理FUSB302 PHY layer),安排在interrupt裏執行,並且會有priority。而非time critical的部份,才會安排在main loop裏執行。而且,module和module之間,會有semaphore去告訴對方狀況,讓對方避開time critical的部份。

PD Micro沒有充分利用interrupt和周邊的性能,把全部的工作放在main loop裏執行,確實是有改善空間。

PD negotiation有不同的state,由attached state到power ready state之前,應該是最忙的,要把干擾減到最低。

但是,在power ready state之後,在fixed voltage模式下,估計是沒有PD通訊。在PPS voltage模式下,估計只有keep alive的PD通訊 (PD Micro 的設定是每5秒鐘一次)。

因此,在main loop裏,其他的工作是可以避開大部份的PD通訊。
  1. void loop()
  2. {
  3.     PD_UFP.run();
  4.     ... ... ...
  5.     if( (PD_UFP.is_power_ready() || PD_UFP.is_PPS_ready())
  6.     &&  !PD_UFP.is_ps_transition() )
  7.     {
  8.         // PD engine not busy
  9.     }
  10. }
複製代碼
PD Micro支援data logging,可以把PD的通訊,透過微控器的serial1,傳到Arduino的COM monitor,是學習USB PD協議的好工具,詳情可以看README.md的Debugging部份。

[備註] 如果有PD Micro開發板,可以嘗試用PD Micro的data logging,証實在power ready state之後,是否很少PD通訊。
作者: hon829    時間: 2021-9-3 11:50

回覆  hon829
PD_UFP.run()是PD Micro的核心,與其說它是頻密執行,不如說它是一個server,負責處理一切PD ...
marlin12 發表於 2021-9-2 20:41



同意PD Micro是學習USB PD協議的工具 但應用上都是簡單的單芯片誘騙線/模塊較實用

相信PD keep alive的通訊都要幾頻密, 否則中途拔線後隻牛1秒倒就變回5V輸出! 要了解相信一定要看懂FUSB302 芯片的角色/工作
作者: marlin12    時間: 2021-9-3 20:21

本帖最後由 marlin12 於 2021-9-4 15:47 編輯
相信PD keep alive的通訊都要幾頻密, 否則中途拔線後隻牛1秒倒就變回5V輸出! 要了解相信一定要看懂FUSB302 芯片的角色/工作hon829 發表於 2021-9-3 11:50

中途拔線後隻牛1秒倒就變回5V輸出,原因是供電器(PD source)偵測到PD Micro(PD sink) 連接斷開(detach),不是因為收不到keep alive通訊

[備註] 根據USB PD 3.1 spec (section 2.6.1),PPS模式的keep alive timeout (tPSSTimeout) 是13.5秒。
[attach]2281216[/attach]

[attach]2281255[/attach]
作者: Offer    時間: 2022-1-20 09:43

發揚光大


https://oshwhub.com/liuzewen/esp32-desktop-pd-power

https://gitee.com/liuzewen/lvgl8 ... 32-DESKTOP-PD-POWER
作者: victorchuk622    時間: 2022-2-19 01:04

回覆 57# Offer

仲有邊度有得買?
作者: Offer    時間: 2022-2-19 09:14

回覆  Offer

仲有邊度有得買?
victorchuk622 發表於 2022-2-19 01:04


你指PD Micro開發板?
團購貨尾我仲有少量在手
作者: hon829    時間: 2022-2-19 12:52

樓主仲未用晒
作者: Offer    時間: 2022-2-19 13:33

樓主仲未用晒
hon829 發表於 2022-2-19 12:52

PD Micro開發板團購貨尾我仲有少量在手





歡迎光臨 電腦領域 HKEPC Hardware (https://www.hkepc.com/forum/) Powered by Discuz! 7.2