วิธีเพิ่ม Bluetooth 5.3 เข้าไปในการออกแบบ Edge IoT อย่างรวดเร็วและคุ้มค่า
Contributed By DigiKey's European Editors
2023-11-29
การแข่งขันอย่างไม่หยุดยั้งสร้างแรงกดดันให้นักพัฒนาอุปกรณ์ Internet of Things (IoT) ให้ต้องพัฒนาผลิตภัณฑ์ใหม่และเป็นนวัตกรรมอย่างรวดเร็ว ในขณะเดียวกันก็ลดต้นทุนและสร้างความมั่นใจในการสื่อสารที่แข็งแกร่ง ใช้พลังงานต่ำ และปลอดภัย โดยโหนดปลายทาง IoT อัจฉริยะแบบดั้งเดิมประกอบด้วยหน่วยไมโครคอนโทรลเลอร์ (MCU) เพื่อรองรับการประมวลผล Edge และไอซีไร้สายสำหรับการเชื่อมต่อ ปัญหาเกิดขึ้นเมื่อทีมออกแบบขาดทักษะด้านความถี่วิทยุ (RF) ที่จำเป็นสำหรับการแก้ปัญหาที่มีประสิทธิภาพ
เพื่อให้เสร็จสมบูรณ์ มีการรับรอง และเปลี่ยนการออกแบบ IoT ไร้สายไปสู่การผลิตจำนวนมากให้ตรงเวลา นักพัฒนาจำเป็นต้องทำให้กระบวนการพัฒนามีประสิทธิภาพมากขึ้น วิธีการหนึ่งที่จะเพิ่มประสิทธิภาพของกระบวนการพัฒนาเกี่ยวข้องกับการใช้ MCU พลังงานต่ำพร้อมอินเทอร์เฟซไร้สาย Bluetooth Low Energy (BLE) ในตัว
บทความนี้จะแนะนำ MCU ซีรีส์ STM32WBA52 ที่ใช้พลังงานต่ำเป็นพิเศษจาก STMicroelectronics และแสดงให้เห็นว่านักพัฒนาสามารถใช้บอร์ดประเมินผล BLE, เครื่องมือการพัฒนาได้อย่างไร รวมถึงตัวอย่างการใช้งาน เพื่อให้การออกแบบไร้สาย BLE 5.3 ทำงานได้อย่างรวดเร็ว โดยภาพรวมโดยสังเขปนั้นยังรวมถึงการเขียนโปรแกรมและการเดินสาย MCU
MCU ไร้สายประหยัดพลังงานพร้อมความปลอดภัยระดับสูง
MCU ซีรีส์ STM32WBA52 ได้รับการรับรองสำหรับ BLE 5.3 เป็นโซลูชันที่คุ้มค่าซึ่งช่วยให้นักพัฒนามือใหม่สามารถเพิ่มการสื่อสารไร้สายลงในอุปกรณ์ได้อย่างรวดเร็ว ขึ้นอยู่กับ Arm® แกน Cortex®-M33 พร้อมวงจรนาฬิกา 100 เมกะเฮิรตซ์ (MHz) และเทคโนโลยี TrustZone ไมโครคอนโทรลเลอร์เหล่านี้ให้การรักษาความปลอดภัยในระดับสูง ปกป้องข้อมูลและทรัพย์สินทางปัญญา (IP) และป้องกันการแฮ็กและการโคลนอุปกรณ์
ในขณะที่ MCU ไร้สาย รุ่น STM32WBA52CEU6 มีหน่วยความจำแฟลช 512 กิโลไบต์ (Kbytes) และ RAM แบบคงที่ (SRAM) 96 Kbytes โดย MCU รุ่นนี้ STM32WBA52CGU6 มีหน่วยความจำแฟลช 1 เมกะไบต์ (Mbyte) และ SRAM 128 Kbytes รูปที่ 1 แสดงขอบเขตการทำงานของไอซีในแพ็คเกจ 48 UFQFN ช่องสัมผัสแบบคาปาซิทีฟมากถึง 20 ช่องช่วยให้สามารถใช้งานอุปกรณ์ที่ปิดผนึกแน่นหนาได้ (ไม่จำเป็นต้องใช้กุญแจกล)
รูปที่ 1: แผนภาพบล็อกการทำงานของ STM32WBA52 แสดงวิทยุ BLE 5.3 ในตัว, แฟลชและ SRAM และการสนับสนุนด้านความปลอดภัย (แหล่งที่มาภาพ: STMicroelectronics)
ระบบนิเวศ STM32Cube ที่สมบูรณ์รองรับการใช้งานและการเขียนโปรแกรมแอปพลิเคชัน BLE ประกอบด้วยสภาพแวดล้อมการพัฒนา STM32CubeIDE ตลอดจนเครื่องมือต่างๆ เช่น ตัวกำหนดค่าอุปกรณ์ต่อพ่วง STM32CubeMX และสร้างโค้ด, เครื่องมือทดสอบประสิทธิภาพ STM32CubeMonitorRF และรุ่นเดสก์ท็อปและคลาวด์ STM32Cube.AI สำหรับปัญญาประดิษฐ์ (AI) บอร์ดการประเมินผลที่ตรงกัน NUCLEO-WBA52CG ช่วยลดความซับซ้อนในการสร้างต้นแบบและเร่งการตรวจสอบความถูกต้องด้วยแอปพลิเคชันตัวอย่าง BLE จำนวนมากและซอร์สโค้ดที่หาได้โดยทั่วไป
ความปลอดภัยของอุปกรณ์และข้อมูล
กลุ่มผลิตภัณฑ์ STM32WBA52 เป็นไปตามมาตรฐานความปลอดภัยของ IoT Platform Security Arm (PSA) Certified Level 3 และมาตรฐานการประเมินความปลอดภัยสำหรับ IoT Platforms Assurance Level 3 (SESIP3) การป้องกันทางไซเบอร์ได้รับการปรับปรุงโดยโปรแกรมรักษาความปลอดภัย PSA โดยอิงตามการแยกความปลอดภัย การป้องกันหน่วยความจำ การป้องกันการงัดแงะ และ Cortex-M33 ของ MCU ที่มีสถาปัตยกรรม Arm TrustZone โดยที่เฟิร์มแวร์ที่เชื่อถือได้สำหรับ Arm Cortex-M (TF-M) เป็นไปตามกรอบการทำงานด้านความปลอดภัยที่ได้รับการรับรอง PSA มาตรฐานอุตสาหกรรม พร้อมด้วย Root of Trust (RoT) ที่ไม่เปลี่ยนรูปของ PSA รวมถึงการบูตที่ปลอดภัยและการอัปเดตเฟิร์มแวร์ที่ปลอดภัย (X-CUBE-SBSFU) การเข้ารหัส พื้นที่จัดเก็บข้อมูลที่ปลอดภัย และการรับรองรันไทม์
วิทยุในตัวช่วยลด BOM ให้เหลือน้อยที่สุด
โมดูลวิทยุพลังงานต่ำพิเศษในตัวส่ง +10 เดซิเบลอ้างอิงกับกำลังเอาต์พุต RF 1 มิลลิวัตต์ (mW) (dBm) ช่วยให้สามารถสื่อสารที่เชื่อถือได้ในระยะทางสั้น (BLE 5.3) และระยะทางไกล (Long Range) ด้วยอัตราข้อมูลสูงสุด 2 เมกะบิตต่อวินาที (Mbps) โหมดพลังงานต่ำในโหมดสแตนด์บายแบบลึกจะช่วยลดพลังงานไฟฟ้าโดยรวมเมื่อมีการสื่อสารทางวิทยุทำงาน MCU STM32WBA สามารถรองรับการเชื่อมต่อพร้อมกันได้สูงสุด 20 รายการ
ลักษณะการทำงานทางไฟฟ้าของโมดูลวิทยุ:
- เครื่องรับส่งสัญญาณ RF 2.4 กิกะเฮิรตซ์ (GHz) รองรับ BLE 5.3
- ความไว RX: -96 dBm (BLE ที่ 1 Mbps)
- กำลังเอาต์พุตที่ตั้งโปรแกรมได้ สูงสุด +10 dBm โดยเพิ่มขึ้นหรือลดลงทีละ 1 dB
- บาลันแบบรวม
แบตเตอรี่มีขนาดเล็กลงเนื่องจากการจัดการพลังงานที่มีประสิทธิภาพสูง
MCU STM32WBA52 มีเทคโนโลยีประหยัดพลังงานมากมาย รวมถึง Low Power Direct Memory Access (LPDMA) ของ STMicroelectronics และสถานะการประหยัดพลังงานที่ยืดหยุ่นพร้อมเวลาปลุกที่รวดเร็ว คุณสมบัติเหล่านี้ร่วมกันสามารถลดการใช้พลังงาน MCU ได้ถึง 90% ซึ่งแปลว่าแบตเตอรี่มีขนาดเล็กลงอย่างมากหรืออายุการใช้งานแบตเตอรี่ยาวนานขึ้น
คุณสมบัติประสิทธิภาพทางไฟฟ้าของ FlexPowerControl:
- แหล่งจ่ายไฟ 1.71 ถึง 3.6 โวลต์
- โหมดสแตนด์บาย 140 นาโนแอมแปร์ (nA) (พินเวคอัป 16 พิน)
- โหมดสแตนด์บาย 200 nA พร้อมนาฬิกาเรียลไทม์ (RTC)
- โหมดสแตนด์บาย 2.4 ไมโครแอมแปร์ (μA) พร้อม SRAM ขนาด 64 Kbytes
- โหมดหยุด 16.3 μA พร้อม SRAM ขนาด 64 Kbyte
- โหมดรัน 45 μA/MHz ที่ 3.3 โวลต์
- วิทยุ: Rx 7.4 มิลลิแอมแปร์ (mA) / Tx @ 0 dBm 10.6 mA
นอกจากนี้ Bluetooth 5.3 ยังให้การสลับระหว่างรอบการทำงานต่ำและรอบการทำงานสูงได้เร็วขึ้น ทำให้ประหยัดพลังงานมากกว่ารุ่นก่อนๆ
สถาปัตยกรรมของสแต็กบลูทูธและแพ็กเก็ตข้อมูล
MCU Arm Cortex-M33 แบบคอร์เดียวใน STM32WBA52 ได้รับการออกแบบมาเพื่อการพัฒนาเฟิร์มแวร์แอปพลิเคชัน รวมถึงโปรไฟล์และบริการบนสแต็ก BLE (ตัวควบคุมและโฮสต์) MCU ประมวลผลการไหลของข้อมูลจากโมดูล RF ในตัวที่เลเยอร์ทางกายภาพต่ำสุด (PHY) ไปยังโปรไฟล์แอตทริบิวต์ทั่วไป (GATT) และโปรไฟล์การเข้าถึงทั่วไป (GAP) (รูปที่ 2) GAP กำหนดและจัดการโฆษณาและการเชื่อมต่อ ในขณะที่ GATT กำหนดและจัดการการแลกเปลี่ยนข้อมูลเข้า/ออก
รูปที่ 2: MCU ประมวลผลการไหลของข้อมูลจากวิทยุ PHY ไปยัง GATT และ GAP (แหล่งที่มาภาพ: STMicroelectronics)
BLE ส่งแพ็กเก็ตข้อมูลที่ถูกกำหนดให้เป็นโครงสร้างเฟรมคงที่ของลำดับบิต ความยาวของพื้นที่ข้อมูลผู้ใช้อาจแตกต่างกันแบบไดนามิกตั้งแต่ 27 ถึง 251 ไบต์
ตัวอย่างการใช้งาน BLE
สารานุกรมออนไลน์ STMicro-Wiki สำหรับ MCU STM32WBA มีตัวอย่างการใช้งานหลายตัวอย่างสำหรับบทบาท Bluetooth ที่แตกต่างกัน ได้แก่:
- แอดเวิร์ท: BLE_Beacon
- เซนเซอร์: BLE_HealthThermometer, BLE_HeartRate
- บริดจ์: BLE_SerialCom
- เราเตอร์: BLE_p2pRouter
- ข้อมูล: BLE_DataThroughput, BLE_p2pServer และ Multi Slave BLE_p2pClient
- จอภาพ RF: BLE_TransparentMode,
- อัพเดตเฟิร์มแวร์ทางอากาศ: BLE_Fuota
เมื่อจับคู่โปรเจ็กต์ BLE ของตนเอง นักออกแบบอุปกรณ์และโปรแกรมเมอร์สามารถแฟลชไบนารีที่คอมไพล์แล้วจากไดเร็กทอรีโปรเจ็กต์ GitHub ที่เกี่ยวข้องไปยังบอร์ด NUCLEO และเริ่มการเชื่อมต่อ Bluetooth กับสมาร์ทโฟนหรือเดสก์ท็อปพีซี STM32CubeProg เป็นซอฟต์แวร์โปรแกรมเมอร์ที่ต้องใช้ในการอ่าน การเขียน และการตรวจสอบหน่วยความจำอุปกรณ์ผ่านทางอินเทอร์เฟซการดีบักและอินเทอร์เฟซบูตโหลดเดอร์
เรียกใช้ตัวอย่าง BLE “เซ็นเซอร์วัดอุณหภูมิสุขภาพ”
โปรไฟล์เครื่องวัดอุณหภูมิสุขภาพ (HTP) เป็นโปรไฟล์พลังงานต่ำที่ใช้ GAP ที่กำหนดโดย Bluetooth Special Interest Group (SIG) โดยผสมผสาน Health Temperature Collector และ Health Temperature Sensor เพื่อเชื่อมต่อและแลกเปลี่ยนข้อมูลในการใช้งานต่างๆ (รูปที่ 3)
รูปที่ 3: การสื่อสาร BLE ระหว่างบอร์ด NUCLEO ในฐานะเซ็นเซอร์/เซิร์ฟเวอร์ และสมาร์ทโฟนในฐานะตัวรวบรวม/ไคลเอนต์ (แหล่งที่มาภาพ: STMicroelectronics)
เซ็นเซอร์วัดอุณหภูมิสุขภาพ:
- วัดอุณหภูมิและส่งข้อมูลผ่าน Health Thermometer Service
- ประกอบด้วยบริการข้อมูลอุปกรณ์ที่จะระบุโดยอุปกรณ์ระยะไกล
- เป็นเซิร์ฟเวอร์ GATT
เครื่องวัดอุณหภูมิสุขภาพ:
- เข้าถึงข้อมูลที่เปิดเผยโดยเซ็นเซอร์วัดอุณหภูมิสุขภาพและสามารถแสดงให้ผู้ใช้เห็นหรือจัดเก็บไว้ในหน่วยความจำแบบไม่ลบเลือนเพื่อการวิเคราะห์ในภายหลัง
- เป็น GATT Client
หลังจากเทอร์โมมิเตอร์วัดสุขภาพไฟล์ไบนารี ถูกแฟลชเข้าสู่ MCU ของ NUCLEO นักพัฒนาจำเป็นต้องทำตามขั้นตอนถัดไปเพื่อเรียกใช้ตัวอย่างแอปพลิเคชัน BLE:
การใช้แอปสมาร์ทโฟน
- ติดตั้ง ST BLE Toolbox บนสมาร์ทโฟน แอปนี้ใช้เพื่อโต้ตอบและดีบักอุปกรณ์ ST BLE
- เปิดบอร์ด STM32WBA NUCLEO โดยที่แอปพลิเคชัน Health Temperature กระพริบอยู่
- เปิดบลูทูธของสมาร์ทโฟน (BT) และสแกนอุปกรณ์ BT ที่มีอยู่ในแอป เลือก เครื่องวัดอุณหภูมิสุขภาพ และเชื่อมต่อ
การใช้อินเทอร์เฟซของเว็บเบราว์เซอร์
- ตรวจสอบความเข้ากันได้ของเบราว์เซอร์:
- บนคอมพิวเตอร์เดสก์ท็อป: Chrome, Edge หรือ Opera
- บนอุปกรณ์สมาร์ทโฟน: Chrome Android
- เปิดบอร์ด STM32WBA NUCLEO โดยที่แอปพลิเคชัน Health Temperature กระพริบอยู่
- เปิดใช้งาน Bluetooth บนคอมพิวเตอร์
- เปิดหน้าเว็บ https://applible.github.io/Web_Bluetooth_App_WBA/ ในเบราว์เซอร์
- คลิกที่ปุ่มเชื่อมต่อที่ด้านบนของหน้าเว็บ จากนั้นเลือก HT_xx ในรายการอุปกรณ์และคลิกจับคู่ เชื่อมต่ออุปกรณ์แล้ว
- คลิกที่เครื่องวัดอุณหภูมิสุขภาพเพื่อแสดงอินเทอร์เฟซ
ตารางที่ 1 อธิบายโครงสร้างการบริการของเซนเซอร์วัดอุณหภูมิสุขภาพ Universally Unique Identifier (UUID) ยาว 128 บิต แยกแยะคุณลักษณะและบริการแต่ละรายการ
|
ตารางที่ 1: บริการ GATT และ UUID สำหรับ GAP "เซ็นเซอร์วัดอุณหภูมิสุขภาพ" (แหล่งรูปภาพ: STMicroelectronics)
ลำดับ JavaScript ต่อไปนี้จากGitHub แสดงให้เห็นว่าอินเทอร์เฟซของเว็บเบราว์เซอร์กรองคุณลักษณะการรับส่งข้อมูลของ GATT ที่แตกต่างกันอย่างไร (รายการ 1)
สำเนา
[...]
// Filtering the different datathroughput characteristics
props.allCharacteristics.map(element => {
switch (element.characteristic.uuid) {
case "00002a1c-0000-1000-8000-00805f9b34fb":
IndicateCharacteristic = element; // Temperature Measurement (TEMM)
IndicateCharacteristic.characteristic.startNotifications();
IndicateCharacteristic.characteristic.oncharacteristicvaluechanged =
temperatureMeasurement;
break;
case "00002a1d-0000-1000-8000-00805f9b34fb":
ReadCharacteristic = element; // Temperature Type
readTemperatureType();
break;
case "00002a1e-0000-1000-8000-00805f9b34fb":
NotifyCharacteristic = element; //Immediate Temperature
NotifyCharacteristic.characteristic.startNotifications();
NotifyCharacteristic.characteristic.oncharacteristicvaluechanged = notifHandler;
break;
case "00002a21-0000-1000-8000-00805f9b34fb":
ReadWriteIndicateCharacteristic = element; // Measurement Interval
readMeasurementInterval();
break;
default:
console.log("# No characteristics found..");
}
});
[...]
รายการ 1: JavaScript นี้กรองคุณลักษณะการรับส่งข้อมูล GATT ที่แตกต่างจากตารางที่ 1 (แหล่งที่มาของรายการ: GitHub, STMicroelectronics)
ติดตามกระบวนการสแต็ก BLE
NUCLEO-WBA52CG ฝังโปรแกรมเมอร์และดีบักเกอร์ในวงจร ST-LINK/V3 ซึ่งสนับสนุนไดรเวอร์พอร์ต COM เสมือน STM32 สำหรับการสื่อสารกับพีซีผ่านอินเทอร์เฟซแบบอนุกรม เทอร์มินัลซอฟต์แวร์ใดๆ สามารถเปิดพอร์ตการสื่อสารแบบอนุกรมนี้เพื่อแสดงข้อความสั้นที่สร้างขึ้นในโค้ดโดยฟังก์ชัน APP_DBG_MSG
ต้องเปิดใช้งานการติดตามภายในโปรเจ็กต์ในไฟล์ app_conf.h
#กำหนด CFG_DEBUG_APP_TRACE (1)
หรืออีกทางหนึ่ง แอปสมาร์ทโฟน "SE BLE Toolbox" มีฟังก์ชันการติดตามบนแท็บ .
การเขียนโปรแกรมแอปพลิเคชัน BLE 5.3
สำหรับการโปรแกรม MCU STM32WBA52 ทาง STM ได้รวบรวม STM32CubeWBA-Package ประกอบด้วย hardware abstraction layer (HAL), low-layer application programming interfaces (API) และ CMSIS, File system, RTOS, BLE/802.15.4, Thread และ Zigbee stacks ตลอดจนตัวอย่างที่ทำงานบนบอร์ด STMicroelectronics
การตั้งค่าโครงสร้างโปรเจ็กต์สำหรับสภาพแวดล้อมการพัฒนาทั้งสาม (IDE) เช่น IAR Embedded Workbench for Arm (EWARM), Keil MDK-ARM และ STM32CubeIDE จะรวมอยู่ในแต่ละรายการตัวอย่างการใช้งาน NUCLEO-WBA52CG BLE
ในกรณีของตัวอย่าง Health Temperature เฉพาะไฟล์จากแผนผังไดเร็กทอรีโปรเจ็กต์ (เฟรมในรูปที่ 4 ด้านซ้าย) เท่านั้นที่สร้างบริการ GATT กิจวัตรทั้งสอง "Health Thermometer Service" (hts) และ "Device Information Service" (dis) จากตารางที่ 1 ทำงานแบบขนาน (ด้านล่างขวาของรูปที่ 4)
รูปที่ 4: โปรแกรมเมอร์สามารถเพิ่มเนื้อหา GATT ของตนเองลงในไฟล์โค้ดที่มีเฟรม (ซ้าย) ไฟล์เหล่านี้สร้างบริการ GATT (ขวา) (แหล่งที่มาภาพ: STMicroelectronics)
โปรแกรมเมอร์สามารถใช้ซอร์สโค้ดสำหรับโครงการของตนเองและขยายด้วยเนื้อหา GATT ในพื้นที่ที่มีเครื่องหมาย USER CODE BEGIN / USER CODE END (รายการ 2) โค้ดเริ่มต้นจากไฟล์ hts.c จะสร้างคุณลักษณะการวัดอุณหภูมิ (TEMM) ของ GATT ซึ่งมี UUID 0x2A1C
สำเนา
[...]
void HTS_Init(void)
{
[...]
/* TEMM, Temperature Measurement */
uuid.Char_UUID_16 = 0x2a1c;
ret = aci_gatt_add_char(HTS_Context.HtsSvcHdle,
UUID_TYPE_16,
(Char_UUID_t *) &uuid,
SizeTemm,
CHAR_PROP_INDICATE,
ATTR_PERMISSION_NONE,
GATT_DONT_NOTIFY_EVENTS,
0x10,
CHAR_VALUE_LEN_VARIABLE,
&(HTS_Context.TemmCharHdle));
if (ret != BLE_STATUS_SUCCESS)
{
APP_DBG_MSG(" Fail : aci_gatt_add_char command : TEMM, error code: 0x%2X\n", ret);
}
else
{
APP_DBG_MSG(" Success: aci_gatt_add_char command : TEMM\n");
}
/* USER CODE BEGIN SVCCTL_InitService2Char1 */
/* USER CODE END SVCCTL_InitService2Char1 */
[...]
}
[...]
รายการ 2: ลำดับการเริ่มต้นจากไฟล์ hts.c สร้าง TEMM คุณลักษณะ GATT (แหล่งรูปภาพ: GitHub, STMicroelectronics)
ข้อกำหนดส่วนประกอบภายนอก
MCU ไร้สาย STM32WBA52 ต้องการส่วนประกอบภายนอกเพียงไม่กี่ชิ้นสำหรับการใช้งานพื้นฐานพร้อมฟังก์ชัน Bluetooth ซึ่งรวมถึงตัวเก็บประจุสำหรับการจ่ายแรงดันไฟฟ้า คริสตัลออสซิลเลเตอร์ เสาอากาศแผงวงจรพิมพ์ (บอร์ดพีซี) ที่มีการจับคู่อิมพีแดนซ์ และตัวกรองฮาร์มอนิก (รูปที่ 5)
รูปที่ 5: สำหรับ Bluetooth เทอร์มินัล RF ของ STM32WBA52 เชื่อมต่อกับเครือข่ายที่จับคู่อิมพีแดนซ์ ตัวกรองฮาร์มอนิก และเสาอากาศ (แหล่งที่มาภาพ: STMicroelectronics)
สรุป
นักพัฒนาอุปกรณ์ IoT ไร้สายจำเป็นต้องลดรอบการออกแบบและลดต้นทุนลงเพื่อแข่งขันในตลาดที่มีการพัฒนาอย่างรวดเร็ว อย่างไรก็ตาม การออกแบบ RF ถือเป็นความท้าทาย MCU STM32WBA52 พร้อมอินเทอร์เฟซ BLE 5.3 ในตัว ช่วยให้นักพัฒนาออกสู่ตลาดได้อย่างรวดเร็วและคุ้มค่า สแต็ก BLE ที่ตั้งโปรแกรมไว้ล่วงหน้าและตัวอย่างแอปพลิเคชัน BLE หลายรายการจะสร้างเทมเพลตการเขียนโปรแกรมสำหรับโปรเจ็กต์แบบกำหนดเองที่แทรกเนื้อหา GATT ได้อย่างง่ายดาย

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.