手上 Notebook A 是 Intel Arc 350m , Notebook B 卻是 RTX 4060, 又有 無 GPU 的Notebook ...
.....嗯嗯... 啥都有~ 就是沒有 AMD GPU :p
由於 常會更換機器使用,需要一個 能 自動判定/選擇 最佳GPU 的 Python Function
網路上找許久 都不見有人提供相似功能
在此紀錄一下, 期待日後介面統一的到來
另,期待能人志士添加 AMD GPU判定辦法
暫時使用 DirectML方式偵測 AMD GPU, 功能尚未確認過
AMD使用 DirectML方式 需先安裝:
2026/01/08
2025/04/02
CAN Mask & Filter of MCP 2515 calculate
由於 CAN Bus 的 Receiver ID - MCP-2515 具有 2個Mask & 6個Filter
我們可以善加利用,過濾掉許多不需要的 Message,大大減少 MCP的負擔
但是,市面上討論 Mask & Filter 的文章超級少,這邊做個紀錄
◎ 首先, 先理解 Mask & Filter 的功能 :
1. MCP-2515 有兩個 Mask + 六個Filter , 但是 依據文件說明,並非一個 Mask配三個Filter!
而是:
* Mask0 配 Filter0 & Filter1 僅有兩個,使用 Buffer0
* Mask1 配 Filter2 ~ Filter5 共有四個,使用 Buffer1
由於 ext flag 是分開的, 若有使用 ext的需求,甚至是混合使用的需求的,可以一個mask使用ext=1,另一個使用 ext=0;
ID使用量大的 用Mask1,使用量小的 用Mask0
2. Mask & Filter 計算式:
當 CAN Bus 收到一 Frame Message, #ID & Mask & Filter 間的關係 計算式:
( #ID & Mask ) ?= ( Filter & Mask )
當等式成立時,後端MCU方能順利收到 該條 Message !
◎ 再來, 嘗試依據我們需要收到的 Message ID 反推 需要設定的 Mask & Filter :
1. 當 需求 ID 僅一個的時候:
Mask = 0x7ff(ext=0, 11 bits) -or- Mask = 0x1FFFFFFF(ext=1,29 bits)
Filter = #ID
2. 當 需求 ID 僅兩個的時候:
我們只需要知道 兩個 ID之間 沒有變動的 bits, 作為 Mask 即可
- 期望收到 CAN #ID1 & #ID2 :
( ( #ID1 | #ID2 ) & Mask ) ?= ( Filter & Mask )
Mask := NOT ( ID1 xor ID2 )
Filter := ID1 -or- Filter := ID2
3. 當 需求 ID 超過兩個的時候:
- 目標: 找出各ID間 重複出現 0 & 1 的 bits 作為Mask
重複出現 1 的 bit
Mask1 := ( #ID1 and #ID2 and #ID3 and ... )
重複出現 0 的 bit
Mask0 := not ( #ID1 or #ID2 or #ID3 or ... )
重複出現 0 & 1 的 bits
MASK := Mask1 or Mask0 := ( #ID1 and #ID2 and #ID3 and ... ) or ( not ( #ID1 or #ID2 or #ID3 or ... ) )
FILTER := #IDx and MASK
2025/03/16
[Cheat code] Age of Mythology + The Titans
| ◎ 資源類 | |
|---|---|
| JUNK FOOD NIGHT | 增加 1000 食物 |
| TROJAN HORSE FOR SALE | 增加 1000 木材 |
| ATM OF EREBUS | 增加 1000 黃金 |
| MOUNT OLYMPUS | 最大化 Favor 值 |
| ENGINEERED GRAIN | 提升農田產出/瞬間讓群居動物肥壯 |
| FEAR THE FORAGE | 行走的金牛莓叢 |
| ◎ 單位與建築類 | |
| WUV WOO | 召喚飛行的紫色河馬 |
| GOATUNHEIM | 將所有單位變成山羊 |
| I WANT TEH MONKEYS!!!1! | 生成 100 隻猴子 |
| BARKBARKBARKBARKBARK | 生成特殊寵物狗(Basket the dog) |
| TINES OF POWER | 生成一個“叉子小子”單位 |
| O CANADA | 快速熊 |
| L33T SUPA H4X0R | 所有建築物立即完成 |
| ◎ 地圖與視野類 | |
| SET ASCENDANT | 揭露整張地圖 |
| LAY OF THE LAND | 開啟地圖但保留迷霧 |
| UNCERTAINTY AND DOUBT | 隱藏所有玩家的地圖視野 |
| RED TIDE | 遊戲中的水變為紅色 |
| LETS GO! NOW! | 加快(2個空白?) |
| IN DARKEST NIGHT | 白天/黑夜 |
| ◎ 神力與特殊效果類 | |
| DIVINE INTERVENTION | 可以重複使用已使用的神力 |
| WRATH OF THE GODS | 獲得強大的神力(例如雷電風暴、地震等) |
| PANDORAS BOX | 隨機生成一個神力或效果 |
| BAWK BAWK BOOM | 降下爆炸雞的神力 |
| CONSIDER THE INTERNET | 立刻增加 10% Favor |
| ISIS HEAR MY PLEA | 免費建造所有神廟 |
| ◎ 關卡 | |
| THRILL OF VICTORY | 立即獲勝 |
| CHANNEL SURFING | 跳到下一關 |
| ◎ Titan 專屬 | |
| TITANOMACHY | 召喚一個強大的泰坦單位 |
| MR. MONDAY | 給泰坦 AI 提供 1000% 增益 |
| TITANS BE GONE | 快速移除所有泰坦單位 |
| ATLANTEAN NO MORE | 讓亞特蘭提斯單位轉換為其他文明單位 |
| ZENOS PARADOX | 讓所有單位移動速度變得非常緩慢 |
| DECONSTRUCTIVE CRITICISM | 摧毀所有敵方建築物 |
| ATLANTIS REBORN | 召喚英雄單位 Amanra |
| RESET BUTTON | 將所有單位還原到他們的出生地點或起始位置 |
| TINFOIL HAT | 所有人戴帽 |
2024/08/22
[NXP][S32K14x 功能安全特性] EIM/ERM 功能驗證
NXP S32K14x 作為一車規級的晶片,晶片本身是支援功能安全相關的特性,晶片的功能安全等級是ASIL-B等級。
從以下功能安全手冊的描述可以看到S32K14x 晶片的FLASH/SRAM 是支援硬體ECC校驗機制,支援 SEC/DED 演算法修正1bit 錯誤及多bit 錯誤檢出機制。
2024/04/29
[NXP][S32K144] CAN UJA1169 SBC chip Hard Reset Circuit Connection
手上有塊 NXP S32K144 EVB, 結果,被用到 原本可以正常 CAN通訊的 被用到 CAN直接無訊號輸出。 想著要針對 SBC的UJA1169 做硬體 Reset, 網路上僅找到 對 S32K118 Reset的文章 找不到針對 144的相關說明
2024/02/21
2024/02/20
CAN Bus 工作原理 - 資料連結層
前面提到 CAN bus物理層的工作原理 現在來聊聊Layer 2的工作
Tag:
車用通訊,
車用匯流排,
CAN bus,
CANbus,
CANoe,
Computer,
data link layer,
OSI Layer 2
2024/01/30
CAN Bus 工作原理 - 物理層
作為 車用通訊 車用匯流排標準 的
控制器區域網路 (Controller Area Network,簡稱CAN或者CAN bus) 首先,先了解硬體架構: CAN Bus通訊 僅使用兩條電線相連,一條高電壓,名曰 CAN+(CAN High);
另一條是低電壓,名曰 CAN-(CAN Low) 通常使用 5V電壓,所有設備皆拉兩條 CAN+/-出來,跟別人的CAN+/- 接在一起,
中間並需接上120Ω的電阻,俗稱 終端電阻。 自己的CAN+線 接別人的CAN+線,CAN-接別人的CAN-。 CAN Bus無所謂的 Master/Host,不需要找特定主機 逐一訊問(俗稱Polling)。 只要自己開機完 通訊準備完畢,就可以開始發送訊號。
每條CAN bus上,最少需要兩個設備在線!
因為 通訊中有個ACK訊號,需要別台機器幫忙發送確認。 同時作為他台機器確認收到正確完整封包的指示。 通訊期間,一般不會如同其他Bus般 :
稱呼高低電壓為 0/1(因為CAN+與CAN-恰好電壓是相反的), 而是稱 顯性及隱性 (理由下面說明) 平時無通訊期間,CAN bus上皆為 隱性(1)訊號! 隱性(1) 訊號時, CAN+為低電壓; CAN-為高電壓。 顯性(0)訊號時, CAN+為高電壓; CAN-為低電壓。 CAN bus晶片,僅以CAN+及CAN-之間的電壓差,作為0或1的判定標準;
俗稱: 差分訊號。
例如:
雖然 CAN+有高達 2.8V電壓,但 CAN-此時也有2.4V訊號;
此時CAN chip仍判定Bus上訊號為 隱性(1) 訊號 § 依據 ISO 11898-2規範 :Vdiff>=1.5V 視為 顯性(0);理解工作原理 才能順利記憶 關於 CAN Bus背後的工作原理: 問:
Vdiff<=0.5V 視為 隱性(1)。一條 5V的電線,與一條 0V電線,中間 串接一 120Ω的終端電阻; 斷電後,若不持續外加電壓,此時兩條線的電壓會是多少?
Tag:
車用通訊,
車用匯流排,
CAN bus,
CANbus,
CANoe,
Computer,
OSI Layer 1,
Physical Layer
訂閱:
文章 (Atom)