- RP2040 มีจุดแข็งคือ PIO·DMA·การโอเวอร์คล็อก แต่ด้วยข้อจำกัดด้านประสิทธิภาพคอร์, RAM, GPIO, ทรัพยากร PIO และการขาด QSPI PSRAM ทำให้บางโปรเจกต์ต้องย้ายไปใช้ STM32H7; RP2350 ช่วยอุดช่องว่างเหล่านั้นได้มาก
- RP2350 มี dual Cortex-M33F, รองรับ floating point, คำสั่งแบบคัสตอมสำหรับเร่งคณิตศาสตร์ double precision, RAM เพิ่มเป็น 2 เท่า และมีตัวเลือกคอร์ RISC-V โดยถูกใช้งานอย่างเสถียรที่ 300MHz ในหลายโปรเจกต์
- PIO สามารถใช้ FIFO เหมือนหน่วยความจำเพื่ออ่าน·เขียนแบบสุ่มได้ และด้วย PIO 3 ชุด, interrupt ระหว่าง PIO และ DMA ที่ปรับปรุงแล้ว จึงทำได้ถึงขั้น implement Sony Memory Stick slave และ SDIO slave
- QSPI PSRAM รองรับการอ่าน·เขียนและ cache ทำงานได้; memory test ที่เคยค้างหรือ crash บน STM32H7 สามารถรันต่อเนื่องบน RP2350 ได้ และการติด RAM 16MB บนบอร์ด 2-layer ที่ประกอบมือก็ง่ายขึ้น
- โปรเจกต์ RP2350 สาธารณะแรกอย่าง DEFCON 32 badge แสดงการรัน Game Boy emulator และ PalmOS ส่วน RP2354A/RP2354B มี flash 2MB แบบ in-package, pinout เดิม และรุ่นขยาย GPIO แบบ 80 พิน
สิ่งที่ยังขาดใน RP2040 และการปรับปรุงที่คาดหวัง
- RP2040 เป็นไมโครคอนโทรลเลอร์ที่ถูกใช้ในหลายโปรเจกต์ โดยมีจุดแข็งเป็นพิเศษคือ PIO, DMA ที่ออกแบบดี และศักยภาพในการโอเวอร์คล็อกสูง
- การผสาน PIO กับ DMA ถูกนำไปใช้ในการ implement สิ่งต่อไปนี้
- ไดรเวอร์จอแสดงผลขั้นสูง
- บอร์ดที่ทำงานเหมือนบัสระบบเต็มรูปแบบซึ่งมี RAM·ROM
- การเชื่อมต่อกับโปรเซสเซอร์ MC68328
- ส่วนที่ยังไม่พอใน RP2040 กระจุกอยู่ที่ทรัพยากร peripheral และความสามารถในการขยายหน่วยความจำ
- forever transfer mode ที่ไม่ต้องเปลือง DMA channel อื่น
- จำนวน DMA channel ที่มากขึ้น
- register เพิ่มเติมสำหรับเก็บตัวแปรชั่วคราวใน PIO state machine
- จำนวน PIO unit ที่มากขึ้น
- instruction slot มากกว่า 32 ช่องต่อ PIO
- GPIO ที่มากขึ้น
- clock สูงช่วยกลบจุดอ่อนของคอร์ Cortex-M0+ ได้มาก และประเมินว่าหากมีคอร์ที่ดีกว่าอย่าง Cortex-M4F ก็น่าจะได้เปรียบกับงาน floating point หรือ workload SIMD เบา ๆ
- การรองรับ QSPI PSRAM และ RAM ที่มากขึ้นก็เป็นความต้องการสำคัญเช่นกัน
ประสบการณ์กับ QSPI RAM บน STM32H7 และการเปรียบเทียบ
- ในบาง use case จำเป็นต้องใช้ STM32H7 แทน RP2040 แต่ยังเหลือความไม่ไว้วางใจอย่างมากต่อบั๊กของ STM32H7 และการรับมือ errata ของ STMicro
- การรองรับ QSPI RAM ของ STM32H7 พบปัญหาต่อไปนี้
- หากใช้โดยไม่มี cache จะเกิด write สูญหาย
- เมื่อเปิด cache จะมี garbage แบบสุ่มถูกเขียนรอบ ๆ write ขนาด 1 ไบต์บางกรณี
- หากรันโค้ดจาก PSRAM หลังจากเข้าถึงหลายพันล้านครั้ง ชิปทั้งตัวจะค้างและ debugger ก็ attach ไม่ได้
- แม้จะรายงานปัญหาและให้ demo แล้ว แต่การตอบสนองของ STMicro ยังไม่เพียงพอ
- พบ workaround แล้ว แต่ต้องเสีย ประสิทธิภาพ 7–10% ทำให้ความมีประโยชน์ของชิปลดลง
การปรับปรุงที่ RP2350 ตอบโจทย์ได้
- ตลอดปีที่ผ่านมา ด้วยความช่วยเหลือจาก Raspberry Pi ได้ใช้งาน ตัวอย่าง RP2350, รายงานบั๊กและเสนอแนะ รวมถึงตรวจสอบว่า use case ของ RP2040 ดีขึ้นอย่างไร
- คอร์และประสิทธิภาพการคำนวณดีขึ้นอย่างมาก
- ติดตั้ง คอร์ Cortex-M33F 2 คอร์
- รองรับ floating point
- มีคำสั่งคัสตอมที่เร่งคณิตศาสตร์ double precision เกินกว่า single precision ทั่วไปของ Cortex-M33F
- การคำนวณ double precision ไม่ใช่ single-cycle แต่ใช้ราว 2–3 cycle ต่อ op
- สามารถใช้คอร์ RISC-V ได้ด้วย แต่ในโปรเจกต์จริงใช้ Cortex-M33
- ในหลายโปรเจกต์ การรัน RP2350 ที่ 300MHz ก็ไม่มีปัญหา
- ขนาด RAM เพิ่มเป็น 2 เท่า เมื่อเทียบกับ RP2040
การเปลี่ยนแปลงของ PIO และ DMA
- PIO ของ RP2350 สามารถใช้ FIFO เหมือนหน่วยความจำเพื่อ อ่าน·เขียนแบบสุ่ม ได้ ทำให้การจัดโครงสร้าง PIO ที่ก่อนหน้านี้ยากเพราะตัวแปรชั่วคราวไม่พอทำได้ง่ายขึ้น
- จำนวน PIO ภายในชิปเพิ่มเป็น 3 ชุด
- สามารถส่ง interrupt ระหว่าง PIO ได้ ทำให้ทำ cross-PIO synchronization และโครงสร้างที่ซับซ้อนขึ้นได้
- การผสาน PIO และ DMA ที่ปรับปรุงแล้วถูกใช้ในโปรเจกต์จริงเพื่อ implement สิ่งต่อไปนี้
- Sony Memory Stick protocol slave: อุปกรณ์ต่าง ๆ มองเห็นเป็น Memory Stick จริง
- SDIO slave device: อุปกรณ์ที่ทดสอบมองเห็นเป็นอุปกรณ์ SDIO
- DMA ก็ได้รับการเสริมด้านความต่อเนื่องของ transfer และการควบคุม address
- ทำ infinite transfer ได้โดยไม่ต้องใช้ channel อื่น
- มีวิธีปรับ address หน่วยความจำต่อการเข้าถึงเพิ่มขึ้น
- นอกเหนือจาก “address เดิม” หรือ “เพิ่มตามขนาดการเข้าถึง” ของ RP2040 ยังเพิ่มตัวเลือกการลดค่าและการเพิ่มด้วยขนาดอื่น
การรองรับ QSPI PSRAM
- RP2350 รองรับ QSPI PSRAM และการอ่านเขียนทำงานได้
- มี cache ให้และทำงานปกติ
- memory test ที่เคยค้างหรือ crash บน STM32H7 สามารถรันต่อบน RP2350 ได้โดยไม่มีข้อมูลสูญหายหรือชิป hang
- ชุดผสมที่เป็นไปได้มีดังนี้
- flash 1 ตัว + PSRAM 1 ตัว
- flash 2 ตัว
- boot flash 1 ตัว + runtime PSRAM 2 ตัว
- การจัดวาง VTOR, SP และ PC ทั้งหมดไว้ใน PSRAM พร้อมรันคำสั่ง LDM/STM ที่ target ไปยัง PSRAM จำนวนมากขณะรับ interrupt ก็ทำงานได้ไม่มีปัญหา
- การตั้งค่าใช้ C code แค่ 3 บรรทัด และการเพิ่ม RAM 16MB ให้บอร์ด 2-layer ที่ประกอบด้วยมือก็ง่ายขึ้น
- บอร์ดตัวอย่าง RP2350 รุ่นแรกอย่าง Pi Pico 2 ไม่มี footprint สำหรับ PSRAM จึงติด PSRAM แบบ dead-bug แต่ถึงอย่างนั้นก็ยังทำงานที่ full speed ได้
จุดแข็งที่ยังคงอยู่และประสบการณ์พัฒนา
- เมื่อย้ายจาก RP2040 มา RP2350 คุณภาพการออกแบบและเอกสารของ peripheral ยังคงอยู่
- ประเมินว่า peripheral ทำงานตามที่สัญญาไว้
- SDK ชัดเจนและกะทัดรัด ไม่ต้องดาวน์โหลดเครื่องมือขนาดใหญ่อย่างตระกูล Cube/HAL
- โค้ดไม่ใช่ macro hell และทำงานได้ดี
- บอร์ดพัฒนา RP2350 ของ Raspberry Pi เข้ากันได้กับ rPiPico และสามารถนำหลายโปรเจกต์ขึ้นบน PiPico 2 ได้อย่างง่ายดาย
โปรเจกต์ RP2350 สาธารณะแรก: DEFCON 32 badge
- หนึ่งในโปรเจกต์ RP2350 ที่เปิดเผยต่อสาธารณะคือ DEFCON 32 badge
- ฮาร์ดแวร์พัฒนาโดย Entropic Engineering และเฟิร์มแวร์เป็นพอร์ตของ tiny Game Boy emulator uGB
- คอร์ 2 ตัวถูกแบ่งบทบาทใช้งาน
- คอร์หนึ่งใช้คำสั่ง SIMD ของ Cortex-M33 เพื่อ upscale หน้าจอ Game Boy เป็น 1.5 เท่า
- อีกคอร์จัดการ emulation, UI และงานที่เหลือ
- เกม Game Boy ที่ valid สามารถทำงานได้ถึง สูงสุด 2MB และหากติดตั้งชิป flash ที่ใหญ่ขึ้น ก็รองรับเกมที่ใหญ่ขึ้นได้
- เกม Game Boy ที่โหลดไว้ล่วงหน้าถูกเขียนโดยฝ่าย DEFCON
- ใน badge นี้ ชิปถูกตั้ง clock แบบ conservative ที่ 125MHz
- มีเวลาทดสอบไม่มาก การผลิตเพิ่มจาก 10 ชิ้นเป็น 28,000 ชิ้นโดยไม่มีขั้นกลาง และไม่มี plan B
- clock สูงสุดของจอคือ 62.5MHz และ PIO state machine เป็นตัวจ่าย clock นี้ ดังนั้น clock ของจอต้องเป็นตัวคูณจำนวนเต็มของ system clock
การรัน PalmOS และเฟิร์มแวร์
- ฮาร์ดแวร์ DEFCON 32 badge เดียวกันสามารถรัน PalmOS full version ได้ผ่าน rePalm project
- badge พื้นฐานไม่ได้ติดตั้ง PSRAM แต่ PalmOS ก็ทำงานได้
- หน่วยความจำค่อนข้างตึง แต่ infrared beaming, SD card, เกมง่าย ๆ, memo pad, audio และอื่น ๆ ทำงานได้
- หากติดตั้งชิป AP Memory 64Mbit PSRAM จะใช้ image ที่สองได้ และด้วยหน่วยความจำที่มากขึ้นจึงโหลดเกมหรือเล่น MP4 แบบ real-time ผ่าน TCPMP ได้
- firmware image อยู่ใน เอกสาร ให้วางลงใน SD card ด้วยชื่อ
FIRMWARE.BINแล้วเลือกfirmware updateจากเมนูปุ่มFNเพื่อโหลด - การกู้คืน stock firmware ทำได้จากคอมพิวเตอร์ใดก็ได้ผ่าน USB และ UF2 protocol และดาวน์โหลด stock image ได้จากเอกสารเดียวกัน
RP2354 และ GPIO ที่มากขึ้น
- ได้ข้อสรุปว่าสามารถวางแผนโปรเจกต์ STM32H7 ใหม่ด้วย RP2350 ได้
- สำหรับข้อสังเกตว่า RP2350 ต้องใช้ SPI flash ภายนอก มีรุ่นที่มี built-in flash คือ RP2354A และ RP2354B
- RP2354A/RP2354B มี flash 2MB แบบ in-package
- pinout เหมือนกับ RP2350A/B
- ยังมีรุ่น แพ็กเกจ 80 พิน ที่ให้ GPIO มากขึ้นด้วย
การเปิดเผยผลประโยชน์
- ไม่ได้รับค่าตอบแทนเป็นเงินหรือผลประโยชน์อื่นสำหรับบทความนี้
- ไม่ได้รับการร้องขอให้เขียน และไม่ได้รับการอนุมัติใด ๆ
- early access ของ RP2350 ไม่ได้มีเงื่อนไขว่าต้องพูดในเชิงบวกต่อสาธารณะหรือต้องกล่าวข้อความใดเป็นพิเศษ
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ช่วงไม่กี่ปีที่ผ่านมา ผมพัฒนา ไดรเวอร์มอเตอร์ไร้แปรงถ่านที่ใช้ RP2040 อยู่ และการประกาศครั้งนี้ทำให้ตื่นเต้นจริง ๆ
โมดูลไดรเวอร์รองรับได้สูงสุด 53V, กระแสต่อเนื่อง 30A และพีก 50A ช่วงหลังผมแยกไดรเวอร์ออกมาเป็นโมดูลต่างหาก ซึ่งมีประโยชน์กับหุ่นยนต์ฟาร์ม และยังสำคัญต่อการทดสอบไดรเวอร์ระหว่างปรับปรุงแบบด้วย รีวิชันนี้ดูค่อนข้างเสถียร ดังนั้นอีกไม่นานอาจทำไดรเวอร์ 1 มอเตอร์แบบรวมบนบอร์ดเดียวราคาประหยัดด้วย RP2350 ได้ บน RP2040 ความเร็วลูปอยู่ที่ 8kHz ซึ่งเพียงพอสำหรับมอเตอร์ขับเคลื่อนของหุ่นยนต์ฟาร์มขนาดใหญ่ แต่ในบรรดาไดรเวอร์สมรรถนะสูงที่ใช้ floating point ก็มีบางตัวที่ทำความเร็วลูปได้ 50kHz
บอร์ดรัน SimpleFOC อยู่ และในฟอรัมก็มีการคุยกันเรื่องทำดีไซน์ระดับเรือธง อย่างไรก็ตาม จำเป็นต้องรองรับการควบคุมแบบไร้เซ็นเซอร์และ floating point ดังนั้นหากใช้รุ่นแพ็กเกจพินใหญ่แบบใหม่ของ RP2350 ที่มีขา ADC 8 ขา ก็จะวัดสัญญาณกระแส 3 จุดและแรงดันบริดจ์ 3 จุดเพื่อทำไดรเวอร์ไร้เซ็นเซอร์ที่ดีได้ กว่าจะเตรียมดีไซน์พร้อมคงใช้เวลาอีกหลายเดือน แต่ติดตามข่าวล่าสุดได้ที่ Git repository หรือโปรไฟล์ Twitter
https://github.com/tlalexander/rp2040-motor-controller
https://twitter.com/TLAlexander
ชอบมากที่ใช้ ชิ้นส่วนจักรยาน กับขาและล้อ
มี MCU เฉพาะทางที่มี peripheral เฉพาะ, application note และตัวอย่างโค้ดสำหรับการควบคุม BLDC ทั้งแบบมีเซ็นเซอร์/ไร้เซ็นเซอร์อยู่แล้ว ผมมองว่า RP2040 ไม่ใช่ชิปที่ถูกเตรียมมาให้เหมาะกับงานนี้นัก
นึกถึงตอนเด็ก ๆ ที่แกะรถของเล่นพังแล้วเอามอเตอร์ออกมา แล้วรู้สึกเหมือนทำอะไรสำเร็จสักอย่าง
ก่อนหน้านี้นึกภาพไม่ออกว่าจะใช้ RP2040 ในผลิตภัณฑ์จริง แต่ RP2350 แก้จุดที่ไม่พอใจไปได้มาก จนทำให้อยากลองใช้
RP2040 ก็มีข้อดีมากมาย TBMAN เป็นแนวคิดที่เท่มาก และโอเวอร์คล็อกได้ดีเหลือเชื่อ PIO นั้นถือว่าแหวกแนวจริง ๆ และมีคุณค่ามากสำหรับหลายบริษัทที่อยากแทนที่ตระกูล 8051 ด้วยคอร์ Arm แบบบอร์ดลูก
แต่ข้อดีแต่ละอย่างก็มีจุดน่าเสียดายตามมาด้วย ความเร็วสัญญาณนาฬิการะดับ DSP แต่ไม่มี FPU และไม่มี hardware integer division การมีฟังก์ชัน USB DFU ใน boot ROM บน MCU ที่ไม่มี memory protection ก็ไม่ใช่เรื่องน่าพึงประสงค์ ใน SDK ของบุคคลที่สามอย่าง Zephyr การรองรับ PIO มีจำกัดมาก ทำให้ใช้ประโยชน์ในโปรเจกต์ขนาดใหญ่ได้น้อยลง
RP2350 แก้ข้อไม่พอใจเหล่านี้แทบทั้งหมด จึงน่าตื่นเต้นมาก อย่างไรก็ตาม หากต้อง implement peripheral ทั่วไปอย่าง CAN หรือ SDMMC ด้วย PIO ก็เสียเปรียบทันที ความยืดหยุ่นนั้นยอดเยี่ยม แต่เวลาต้องทำให้ผลิตภัณฑ์บูตขึ้นมาเร็ว ๆ ก็ไม่อยากไปยุ่งกับภาษา assembly เฉพาะทาง สุดท้ายถ้ามี ไลบรารี soft peripheral สำเร็จรูปสำหรับฟังก์ชันทั่วไปอย่าง SD/MMC, MII, Bluetooth HCI ก็น่าจะช่วยให้ผสานกับ Zephyr และอื่น ๆ ได้ง่ายขึ้น และขยายขอบเขตการใช้งานของชิปได้มาก
อาจทำให้สมบูรณ์กว่านี้ได้ แต่ก็ถือว่าใกล้เคียงรูปแบบ “สำเร็จรูป” อยู่พอสมควร
PIO เป็นข้อได้เปรียบใหญ่ และดีใจที่เวอร์ชันใหม่ยิ่งเสริมทิศทางนั้นให้แข็งแรงขึ้น ตอนนี้ผู้คนก็พัฒนาไดรเวอร์ PIO สำหรับ peripheral หลากหลายอย่าง เช่น CAN, WS2812 อยู่แล้ว ซึ่งใกล้เคียงกับสิ่งที่อยากเห็น
การทำงานของ peripheral แบบอัตโนมัติ, op-amp, comparator, timer แบบ capture/compare ก็คล้ายกัน Zephyr พยายามให้ interface ร่วมเหมือนระบบปฏิบัติการเดสก์ท็อป แต่ในงาน embedded มันไม่ค่อยเข้ากัน บนเดสก์ท็อป แค่ตัวหารร่วมต่ำสุดมักก็เพียงพอ แต่ใน embedded หลายครั้งเราเลือกแพลตฟอร์มก็เพราะ ฟีเจอร์ที่ไม่ใช่ของร่วมทั่วไป นั่นแหละ
เหตุผลที่เลือก RP2040 มีทั้งเรื่องปรัชญาการออกแบบ แต่หลังวิกฤตขาดแคลนชิปแล้ว การจัดหาได้ง่าย ก็เป็นปัจจัยใหญ่มาก
ในความเป็นจริงมี “ตัวอย่าง” อยู่ และคงดีขึ้นถ้าสิ่งเหล่านั้นถูกจัดให้เป็นรายการที่รองรับระดับ first-class
ดูสเปกได้ที่นี่: https://www.digikey.ca/en/product-highlight/r/raspberry-pi/r...
ใช้ RP2350 ที่ Raspberry Pi ออกแบบในสหราชอาณาจักร, Arm M33 คู่ 150MHz พร้อม FPU, SRAM 520KiB, ฟีเจอร์ความปลอดภัยอย่าง signed boot, OTP, SHA-256, TRNG, ตัวตรวจจับ glitch, Arm TrustZone for Cortex-M, CPU RISC-V Hazard3 คู่ 150MHz แบบเลือกได้, การทำงานพลังงานต่ำ, PIO v2 3 ชุดและ state machine 12 ตัวสำหรับรองรับอุปกรณ์ต่อพ่วงแบบกำหนดเอง, รองรับ PSRAM, อินเทอร์เฟซแฟลช XIP QSPI ภายนอกที่เร็วขึ้น, แฟลช QSPI บนบอร์ด 4MB, GPIO ทน 5V, รองรับโอเพนซอร์ส C/C++ SDK และ MicroPython, เข้ากันได้กับซอฟต์แวร์ Pico 1/RP2040, โปรแกรมแบบลากแล้ววางผ่าน USB mass storage, โมดูลแบบ castellated ที่บัดกรีลง carrier board ได้โดยตรง, ฟุตพรินต์และขาเข้ากันได้กับ Pico 1, GPIO อเนกประสงค์ 26 ขา รวมอินพุตแอนะล็อก 3 ช่อง, อุณหภูมิทำงาน -20°C~+85°C, แรงดันอินพุต 1.8VDC~5.5VDC
ทีหลังถึงเห็นว่าในหัวข้อ 14.8.2.1 มีขาดิจิทัลสองชนิดคือ “Standard Digital” กับ “Fault Tolerant Digital” และดูเหมือนว่า FT Digital pin จะทน 5V ได้
เป็นวันสำคัญของทีม Pigweed
ในประกาศหลักของ RP2350/Pico 2 ก็มีพูดถึงงานบางส่วน [1] แต่ตลอดหลายเดือนที่ผ่านมาเราได้ทำ SDK แบบ end-to-end ตัวใหม่ [2] ที่สร้างบน Bazel [3] และรองรับทั้ง RP2040 กับ RP2350 รวมถึงงาน upstream การรองรับ Bazel เข้าไปใน Pico SDK ด้วย “Tour of Pigweed” [4] ตัวใหม่แสดงให้เห็นฟีเจอร์หลายอย่างของ Pigweed ทำงานร่วมกันใน codebase เดียว เช่น hermetic build, unit test บนอุปกรณ์, การสื่อสารที่เน้น RPC และ factory test บนโต๊ะทำงาน รับคำถามใน Discord [5]
[1] https://www.raspberrypi.com/news/raspberry-pi-pico-2-our-new...
[2] https://opensource.googleblog.com/2024/08/introducing-pigwee...
[3] https://blog.bazel.build/2024/08/08/bazel-for-embedded.html
[4] https://pigweed.dev/docs/showcases/sense/
[5] https://discord.gg/M9NSeTA
พอเห็นทุกอย่าง ถูกรวมแบบ hermetic และ workflow ถูกจัดให้เหลือคำสั่ง Bazel คำสั่งเดียว มันต่างกันมากจริง ๆ
แปลกใจที่ประกาศของ Pigweed ไม่พูดถึงเรื่องนี้เลย
อยากให้เอา Java ออกจาก ecosystem ของไมโครคอนโทรลเลอร์
นี่เป็นดีไซน์แรกที่เคยเห็นซึ่งเลือกได้ระหว่าง คอร์ Arm กับคอร์ RISC-V บนไดเดียวกัน
สงสัยว่าจะมีผลต่อราคาและการกินไฟไหม คอร์ Hazard3 เป็นตัวเลือกเสริม และตอนบูตสามารถเลือกใช้คู่คอร์ Arm Cortex-M33 ที่มีมา หรือคู่คอร์ Hazard3 แล้วรันที่ 150MHz ได้ ถ้าจะสุดกว่านั้นก็รัน RV หนึ่งคอร์กับ Arm หนึ่งคอร์พร้อมกันได้ด้วย
Hazard3 เป็นดีไซน์โอเพนซอร์สและมีเอกสารเผยแพร่ เป็นเครื่อง RV32IMACZb* แบบ in-order 3-stage น้ำหนักเบา รองรับ ISA RISC-V พื้นฐาน 32 บิต พร้อมการคูณ·หารด้วยฮาร์ดแวร์, atomic instructions, bit manipulation ฯลฯ
Eben Upton อธิบายว่า “เลือกได้ตอนบูต แต่ละพอร์ตที่เข้าสู่ bus fabric สามารถเชื่อมต่อผ่าน mux ไปยัง M33 หรือ Hazard3 ก็ได้ ถ้าอยากทำตัวเป็นพวก geek ก็รันอย่างละหนึ่งคอร์ได้”
ที่มา: https://www.theregister.com/2024/08/08/pi_pico_2_risc_v/
พื้นที่ที่คอร์คำสั่งจริง ๆ ใช้มักค่อนข้างเล็กเมื่อเทียบกับอุปกรณ์ต่อพ่วงหรือหน่วยความจำภายใน
ตรวจสอบได้ทั้งความเป็นไปได้ทางเทคนิคและการยอมรับของตลาด ด้วยต้นทุนต่ำกว่าการ tape-out ชิปใหม่แยกต่างหากมาก
เจ๋งมากที่ถ้าต้องการก็เลือก RISC-V ที่เป็นโอเพนซอร์สเต็มตัวได้ ผมคิดว่าคอร์ RV น่าจะช้ากว่า M33 ในด้านประสิทธิภาพต่อ clock และคาดว่าคะแนน benchmark ของ M33 จะดีกว่า เพราะ Hazard3 เป็น pipeline 3-stage แต่ M33 เองก็ 3-stage เหมือนกัน รอดู benchmark อยู่
โพสต์ข่าวอย่างเป็นทางการ: https://news.ycombinator.com/item?id=41192341
หน้าผลิตภัณฑ์อย่างเป็นทางการ: https://news.ycombinator.com/item?id=41192269
มีการพอร์ต Doom ไปยัง RP2040 แล้ว: https://kilograham.github.io/rp2040-doom/
RP2350 ดูเหมือนว่าจะสามารถ รัน Quake ได้ด้วย การเปลี่ยนแปลงบางอย่างให้ความรู้สึกเหมือนออกแบบมาแทบจะเพื่อจุดประสงค์นี้โดยเฉพาะ มี FPU, ดูอัลคอร์ 150MHz, ความเป็นไปได้ในการโอเวอร์คล็อกเกิน 300MHz และรองรับ PSRAM สูงสุด 16MB พร้อม hardware read/write paging
ไม่ค่อยชอบที่บอร์ดพัฒนาใช้ micro-USB นี่ปี 2024 แล้วนะ
นอกนั้นยอดเยี่ยม และเป็นผลิตภัณฑ์ที่จำเป็นพอดีสำหรับการแข่งขันกับยักษ์ใหญ่เดิม ๆ
การที่ผลิตภัณฑ์สมัยใหม่ทั้งหมดเป็น USB-C เป็นเรื่องดี แต่ยังมีสาย micro-USB เหลืออยู่มาก ดังนั้นการที่ Pico และ Pico 2 อย่างเป็นทางการเป็น micro-USB ก็ไม่ได้ลำบากอะไรมาก การมีตัวเลือกให้เลือกพอร์ตที่ต้องการตามโปรเจกต์ถือว่าดี
ชิปอินเทอร์เฟซก็ต้องซับซ้อนกว่าเช่นกัน จึงมีแนวโน้มว่าจะแพงกว่า บนอาลีเอ็กซ์เพรสยังมีอุปกรณ์ราคาถูกจำนวนมากที่ใช้ micro-USB และน่าจะยังมีดีมานด์อยู่ ลูกค้าบางกลุ่มอาจนำบอร์ดพัฒนาไปทำเป็นผลิตภัณฑ์สำหรับผู้บริโภคโดยตรงได้ด้วย
ค่อนข้างแปลกใจที่ไมโครคอนโทรลเลอร์ตัวที่สองของบริษัทอายุน้อยที่ดูเน้นผู้บริโภค ใส่เรื่อง ความปลอดภัย มาเยอะขนาดนี้
ตอนแรกผมรู้สึกว่าไว้ใจความปลอดภัยได้ยากเพราะยังขาดประสบการณ์ แต่ไมโครคอนโทรลเลอร์สายความปลอดภัยของผู้ผลิตที่ “มีประสบการณ์” ก็มีบั๊กความปลอดภัยที่เป็นที่รู้จักมากมาย และที่สำคัญกว่านั้น เคยมีกรณีที่เห็นได้ว่าพยายามกลบปัญหาเหล่านั้น การได้รับการตรวจสอบสถาปัตยกรรมความปลอดภัยสองครั้ง ตั้ง bug bounty 10,000 ดอลลาร์ และออกแบบบอร์ดสำหรับทำ glitching แบบเดียวกับ DEF CON badge แสดงถึงความมุ่งมั่นด้านความปลอดภัยที่ค่อนข้างจริงจัง ผมก็สงสัยเหมือนกันว่า Redundancy Coprocessor ทำงานอย่างไร ถึงอย่างนั้นก็ไม่แปลกใจถ้าจะมีใครเจาะมันได้อย่างน้อยบางส่วน
ที่ว่าดูเน้นผู้บริโภคหมายถึงในแง่ภาพลักษณ์ ส่วนในแง่ยอดขายและซัพพลาย ดูเหมือนจะให้ความสำคัญกับผู้ใช้ภาคอุตสาหกรรมมาก่อน
ยังหาเอกสารประกาศอย่างเป็นทางการหรือดาต้าชีตไม่เจอ แต่ตามบทความนี้ ดูเหมือนเป็น ก้าวกระโดดครั้งใหญ่จาก RP2040
ดูเหมือนจะมี 2× Cortex-M33F, DMA ที่ปรับปรุงแล้ว, PIO ที่มากขึ้นและดีขึ้น, รองรับ PSRAM ภายนอก, แฟลชภายใน 2MB และรุ่น 80 พิน, RAM เพิ่มเป็นสองเท่าเป็น 512KiB รวมถึงคอร์ RISC-V อยู่สองสามตัว อาจมีไว้สำหรับงานพลังงานต่ำ