1 điểm bởi GN⁺ 22 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • ESP32-S31 là vi điều khiển RISC-V 32 bit lõi kép hoạt động ở xung nhịp tối đa 320MHz, hướng tới các ứng dụng IoT cao cấp cần kết nối đa giao thức và HMI phong phú
  • Kết nối bao gồm 2.4GHz Wi-Fi 6, Thread·Zigbee dựa trên IEEE 802.15.4, Bluetooth 5.4 LE và Bluetooth Classic, cùng với Ethernet MAC 1000Mbps
  • Hệ thống·bộ nhớ có 60 GPIO, MMU, hiệu năng 6.86 CoreMark/MHz, 512KB SRAM, kết nối PSRAM DDR 8 bit 250MHz, truy cập đồng thời flash·PSRAM và giao diện SPI chuyên dụng tương thích Octal SPI tốc độ cao
  • HMI·âm thanh kết hợp camera DVP, LCD song song RGB/I8080/MOTO6800, codec JPEG·PPA·2D-DMA, tối đa 14 kênh cảm ứng, LE Audio dựa trên LC3 và đồng bộ âm thanh Bluetooth phần cứng với I2S kép
  • Bảo mật·phần mềm cung cấp TRNG, PUF dựa trên RAM, secure boot, mã hóa flash·PSRAM, bộ tăng tốc AES/RSA/ECDSA/ECC, TEE/APM và dự kiến tích hợp với ESP-IDF, ESP-Matter, ESP-BLE-AUDIO, ESP-GMF, ESP Private Agents

Tổng quan

  • ESP32-S31 là vi điều khiển RISC-V 32 bit lõi kép hiệu năng cao, hoạt động ở tối đa 320MHz, nhắm tới các ứng dụng IoT cao cấp cần kết nối đa giao thức toàn diện và giao diện người-máy phong phú
  • Thông qua 60 GPIO, nó mang lại sự linh hoạt cho các thiết kế phức tạp tích hợp nhiều giao thức không dây, nhiều giao diện hiển thị khác nhau và phạm vi thiết bị ngoại vi rộng
  • Phù hợp với khối lượng công việc AI biên và machine learning, theo hướng xử lý suy luận mạng nơ-ron, xử lý tín hiệu nâng cao, computer vision và các ứng dụng âm thanh thông minh trong giới hạn hiệu quả của nền tảng nhúng

Kết nối và hiệu năng xử lý

  • 2.4GHz Wi-Fi 6 (802.11ax) hướng tới cải thiện hiệu quả truyền dữ liệu và giảm tiêu thụ điện năng, phù hợp cho thiết bị chạy pin và thiết bị luôn kết nối
  • IEEE 802.15.4 cho phép các giao thức Thread và Zigbee, còn Bluetooth 5.4 LE hỗ trợ LE Audio, Direction Finding và Bluetooth Mesh 1.1
  • Bluetooth Classic (BR/EDR) đảm nhiệm khả năng tương thích với thiết bị âm thanh hiện có và các ứng dụng HMI độ trễ thấp, trong khi Ethernet MAC 1000Mbps cung cấp kết nối có dây băng thông cao ổn định
  • Hệ thống sử dụng kiến trúc RISC-V 32 bit lõi kép hỗ trợ MMU, cung cấp hiệu năng xử lý 6.86 CoreMark/MHz và 60 GPIO
  • Một lõi có đường dữ liệu 128 bit và lệnh SIMD để hỗ trợ xử lý song song nhanh
  • Bộ nhớ gồm 512KB SRAM, kết nối PSRAM DDR 8 bit 250MHz, truy cập đồng thời flash và PSRAM, cùng mở rộng bộ nhớ ngoài dựa trên giao diện SPI chuyên dụng tương thích chế độ Octal SPI tốc độ cao

HMI và âm thanh

  • Đầu vào camera sử dụng giao diện camera DVP 8~16 bit, còn LCD hỗ trợ RGB song song 8~24 bit, I8080 và MOTO6800
  • Hỗ trợ chuyển đổi giữa RGB565, YUV422, YUV420 và YUV411, đồng thời nâng cao hiệu quả xử lý hình ảnh và cập nhật hiển thị bằng các bộ tăng tốc phần cứng codec JPEG, PPA và 2D-DMA
  • Cung cấp tối đa 14 kênh phát hiện cảm ứng điện dung, phù hợp cho màn hình thông minh, chuông cửa video, bảng điều khiển đa phương tiện và các ứng dụng tích hợp cảm ứng·hình ảnh·âm thanh
  • Bluetooth 5.4 LE Audio hỗ trợ truyền phát chất lượng cao, tiêu thụ điện thấp dựa trên codec LC3 và âm thanh đa luồng
  • Bluetooth Classic đảm nhiệm khả năng tương thích với tai nghe, loa và hệ thống ô tô, còn bộ điều khiển I2S kép cung cấp đồng bộ âm thanh Bluetooth ở mức phần cứng để đạt thời gian chính xác và độ trễ thấp

Bảo mật

  • Các tính năng bảo mật dựa trên phần cứng hướng tới những ứng dụng có yêu cầu công nghiệp nghiêm ngặt
  • Tích hợp TRNG và chức năng PUF dựa trên RAM để tạo nền tảng cho việc tạo khóa và bảo mật thiết bị
  • Hỗ trợ secure boot, mã hóa flash và PSRAM, cùng các bộ tăng tốc mật mã AES-128/256·RSA·ECDSA·ECC
  • Thiết bị ngoại vi chữ ký số dựa trên ECDSA bảo vệ khóa riêng khỏi truy cập bằng phần mềm, còn TEE và APM cho phép cô lập phần mềm để triển khai nhiều ứng dụng an toàn

Phần mềm và tài nguyên sản phẩm

  • ESP32-S31 dự kiến sẽ được hỗ trợ thông qua framework phát triển IoT mã nguồn mở của Espressif là ESP-IDF, ESP-Matter dành cho thiết bị Matter, ESP-BLE-AUDIO và ESP-GMF cho ứng dụng đa phương tiện
  • Theo định hướng, nền tảng ESP Private Agents và việc kết nối trực tiếp với các LLM phổ biến sẽ cho phép tạo thiết bị client có thể chạy hoặc tương tác với AI agent
  • Tài nguyên sản phẩm liệt kê SoC ESP32-S31, mô-đun ESP32-S31-WROOM-3 và các bộ kit phát triển ESP32-S31-Korvo-1 cùng ESP32-S31-Function-Coreboard-1

1 bình luận

 
Ý kiến trên Hacker News
  • Espressif đang làm rất tốt, thậm chí còn đưa cả lệnh SIMD vào CPU
    Với hệ thống nhúng, lõi RISC-V có ý nghĩa lớn. Vì giờ đây việc biên dịch cho SoC không còn là phải tải về một bộ SDK và toolchain độc quyền nửa hỏng nửa sống nữa, mà gần như chỉ còn là một dòng rustup target add riscv32imac-unknown-none-elf
    Nếu muốn bắt đầu phát triển nhúng Rust hiện đại, có thể xem https://kerkour.com/introduction-to-embedded-development-wit...https://kerkour.com/rust-esp32-pentest

    • Đúng là có lệnh SIMD, nhưng có vẻ không có dấu phẩy động phần cứng. Phần mô tả mô-đun CORDIC cũng chỉ ra tính toán số cố định, và điều đó cũng khớp với việc không hề có đề cập đến dấu phẩy động
      CAN-FD và mô-đun Motor PWM thì rất đáng mừng, nhưng không thấy thời gian chuyển đổi ADC ở đâu cả. Trong điều khiển động cơ, cần thời gian chuyển đổi dưới 1µs, và sau khoảng 15 năm trì hoãn thì năm ngoái họ mới chuyển từ số cố định sang dấu phẩy động
    • Nhưng rồi hễ cần đến các khối IP như Wi‑Fi, Ethernet hay USB thì lại quay về vạch xuất phát
    • Tò mò không biết imac trong tên đích kiến trúc nghĩa là gì
    • Cần một thứ giống Claude Code cho các dự án phần cứng, để có thể thật sự làm ra mọi dự án từng tưởng tượng với ESP32
      Kiểu như kết hợp in 3D, tự động mua linh kiện, viết phần mềm tùy chỉnh, có khi cả cánh tay robot nữa; một món đồ đẹp đặt trên bàn, chỉ việc bỏ linh kiện vào như bỏ thư vào hòm thư. PROFIT
    • Tôi từng định thử dùng Rust trên mấy thiết bị này, nhưng cho đến nay những thứ phía RISC-V tôi thấy trông cứ như ARM và RISC-V bị trộn lẫn với nhau vậy, khá kỳ lạ
  • Ước gì đừng gọi tất cả là ESP32. Từ ESP8266 và ESP8285 sang ESP32 thì còn hợp lý, nhưng giờ đã có hơn 10 biến thể khác nhau về tính năng và kiến trúc
    Cũng giống như trong mọi chủ đề về Raspberry Pi Pico (RP2030/RP2350), lúc nào cũng có người nhầm nó với phiên bản máy tính một bo mạch
    Nghe đến ESP32 thì tôi vẫn thường nghĩ ngay đến ESP32 Classic, thường là WROOM-32E

    • Có vẻ bạn đang hiểu sai về bản chất cách một họ vi điều khiển được tổ chức
      Không phải là có hơn 10 “phiên bản” khác nhau về tính năng. Từ “phiên bản” hàm ý một quá trình phát triển dần theo thời gian, rồi bị làm hỏng bằng cách gắn thêm hoặc bỏ bớt mô-đun
      Thực tế là có 4–5 dòng sản phẩm dùng chung SDK, triết lý thiết kế, cấu trúc giá, chuỗi cung ứng và kênh hỗ trợ. Với các nhóm kỹ sư thiết kế sản phẩm, từng dòng này đều rất quan trọng. Không phải chỉ để phục vụ người học vì sở thích, dù tôi nghĩ họ cũng hỗ trợ nhóm đó khá tốt
      Bên trong các dòng đó thì đúng là có phiên bản thật. Ví dụ hiện nay chủ yếu có các dòng S, C, H và P, và ESP32-S2 không còn được khuyến nghị cho thiết kế mới nữa, nên dùng ESP32-S3
      Cuối cùng, cách để hiểu điều này là: “Liệu có thể đặt một con chip mang tên ESP32 lên PCB và lập trình nó bằng cùng một SDK hay không?”
      Dòng vi điều khiển RP2XXX cũng vậy. Nếu bạn còn nhầm giữa vi điều khiển và máy tính một bo mạch, thì có lẽ đó không phải chỗ dành cho bạn
      Nhìn rộng hơn, khi gặp những chuyện như thế này thì học sẽ nhanh hơn nếu không bắt đầu bằng giả định “mình đã hiểu rồi còn người khác sai”. Tốt hơn là giữ đầu óc cởi mở và đặt nhiều câu hỏi; đây là thời kỳ vàng cho người tự học, nhưng chỉ dành cho những ai giữ được sự tò mò khiêm tốn trong thời gian dài
    • Đó là hệ thống đặt tên kiểu STM32, EFM32, GD32, v.v.
    • Đó là tên để chỉ khả năng tương thích với ESP-IDF
    • Các họ sản phẩm khác cũng tương tự. Có STM32, và bên dưới là rất nhiều lựa chọn trung gian, từ STM32C0 nhập môn cho đến những con chip Linux hoàn chỉnh như STM32MP2
    • Thú vị là chính bạn vừa trộn lẫn Pico là bo phát triển với con chip của nó là RP2040
  • Tôi đang làm các dự án nghệ thuật LED kiểu hobby bằng WLED, mà WLED chỉ được xây dựng trên nền tảng ESP32. Nó thực sự rất vui, và tôi vẫn liên tục ngạc nhiên trước hiệu năng của những bo mạch nhỏ này cũng như cộng đồng mã nguồn mở
    Nền tảng điều khiển tôi thích là dòng QuinLED. Nó có phân phối nguồn, bộ điều áp điện áp, đường đồng dày, điện trở đường dữ liệu có thể cấu hình, hỗ trợ phần cứng phụ trợ thông minh, và giá khá rẻ, khoảng 30–50 USD mỗi bộ điều khiển. quinled.info
    <https://kno.wled.ge/> là trang chủ WLED, và cá nhân tôi thấy đây là một trong những URL thông minh nhất từ trước đến nay

    • Tò mò không biết bạn dùng phần cứng nào. Muốn biết bạn đang mua loại LED hay ma trận nào, và dùng mẫu bộ điều khiển QuinLED nào. Gần đây tôi chơi khá vui với màn hình HUB75 nên cũng muốn xem thêm các lựa chọn và dự án khác
    • Tôi làm khá nhiều dự án LED nhưng chỉ dùng WS2812. Tò mò không biết tại sao lại cần bộ điều khiển. Có phải vì độ sáng lớn không?
    • cr.yp.to/ cũng là một URL khá ngầu, và nó đã tồn tại từ rất lâu rồi
  • Xem datasheet thì thấy có ngoại vi BitScrambler, và xét về độ linh hoạt thì trông rất giống PIO của Raspberry Pi Pico

    Các phép toán mức bit có thể tiêu tốn khá nhiều CPU, còn DMA vốn được thiết kế để giảm tải những công việc kiểu này khỏi CPU, vì vậy ESP32-S31 tích hợp hai ngoại vi chuyên dụng mang tên BitScrambler. Các mô-đun này được thiết kế để biến đổi định dạng dữ liệu trong quá trình truyền giữa bộ nhớ và ngoại vi. Một BitScrambler xử lý truyền từ bộ nhớ sang ngoại vi hoặc từ bộ nhớ sang bộ nhớ, còn cái kia chỉ dành cho truyền từ ngoại vi sang bộ nhớ. BitScrambler có thể xử lý các phép toán mức bit đã nêu ở trên, nhưng trên thực tế nó là một máy trạng thái linh hoạt và có thể lập trình, đủ sức thực hiện cả những phép biến đổi nâng cao hơn.
    Hy vọng nó sẽ hữu ích ngang với PIO trên Pi Pico

  • Thông số có vẻ tốt, và còn phải xem mất bao lâu nữa để nó xuất hiện dưới dạng mô-đun WROOM — form factor Espressif tôi ưa thích — hoặc các bo mạch phát triển nhỏ. Tôi cũng tò mò về giá, nhưng đến nay khá ấn tượng vì qua từng thế hệ, họ vẫn giữ mức giá tương tự mà cung cấp được nhiều thứ hơn hẳn
    Nếu bạn mong đợi lõi RISC-V tương đối nhanh cùng SIMD thì mẫu P4 đã có sẵn cũng đáng xem. Xung nhịp nhanh hơn một chút nhưng không có không dây: https://products.espressif.com/#/product-comparison?names=ES...
    Cũng có những ứng dụng thú vị xử lý lượng lớn dữ liệu pixel nhờ tận dụng tính năng DSP và xử lý hình ảnh tích hợp, và có vẻ S31 cũng sẽ làm được tương tự: https://www.reddit.com/r/WLED/comments/1ry2jd7/wledmmp4_with...

    • Nếu giá vẫn giữ ở mức tương đối tương tự thì giá/hiệu năng sẽ cực kỳ tốt. Có khi tôi lại phải hoãn side project đang làm để quay lại một side project khác đã gác vì các vấn đề tối ưu trên ESP32 đời cũ
    • ESP32-S31-WROOM-3 cùng hai bo mạch phát triển dựa trên nó là ESP32-S31-Function-CoreBoard-1 và ESP32-S31-Korvo-1 đã được phát hành rồi. Tất cả đều có trên cửa hàng Aliexpress chính thức của Espressif
  • Thảo luận trước đó khi nó được công bố hai tháng trước: https://news.ycombinator.com/item?id=47561678

  • Thật tốt khi Wi-Fi và Ethernet có dây lại cùng có mặt trên một linh kiện
    Tuy vậy nó đã mất hỗ trợ MIPI vốn có trên dòng P4 RISC-V lõi kép

    • Sẽ rất tuyệt nếu cả hai đều có trên cùng một con chip
    • Tôi tò mò về mặt kỹ thuật thì Ethernet có dây hoạt động như thế nào trên các chip kiểu này. Có phải nó dùng 8 chân GPIO chuyên dụng không?
  • Những thiết bị nhỏ này thực sự rất thú vị. Tôi có một side project định làm vào lúc nào đó: bố trí 32 SoC, hoặc ít hơn nhưng là các SoC có nhiều lõi hơn, nối chúng bằng đường mạch PCB tới một hub Ethernet, rồi chừa lại một hoặc nhiều cổng mạng uplink để có thể nối nhiều bo mạch với nhau
    Tôi định để mỗi lõi bật một đèn LED đỏ ở mặt trước bo mạch thông qua giá đỡ LED góc 90 độ
    Tôi muốn gom 16 bo như vậy lại để làm thành một khối lập phương Connection Machine nhỏ
    Chỉ là tôi không rõ sẽ dùng một cụm 512 máy chủ siêu yếu như thế vào việc gì. Chắc là để học cách quản lý một số lượng node nhiều một cách vô lý

    • Tôi luôn muốn tự làm một cỗ máy n-cube. Cá nhân tôi thích RP2350 hơn, và khá hứng thú với việc suy nghĩ xem có thể làm gì với PIO↔PIO giữa các chip
      Mục tiêu cốt lõi là tìm ra cách lập trình nó sao cho cân bằng được giữa tính dễ dùng và hiệu năng
      Những ý tưởng như mối nối PSRAM cũng hay. Mỗi lõi có một thanh PSRAM riêng, nhưng các nút lân cận có thể trao đổi quyền sở hữu cho nhau
      Tôi cũng từng thắc mắc nếu làm bằng ESP32 thì chuyện gì sẽ xảy ra với dải tần vô tuyến, vì khi đó trong một không gian nhỏ sẽ có 512 thiết bị cùng la hét vào nhau
  • Tôi rất mừng khi thấy RISC-V được áp dụng ngày càng nhiều trên toàn bộ dòng ESP32. Các linh kiện Xtensa đời trước cũng ổn, nhưng với RISC-V thì toolchain, hỗ trợ trình biên dịch và hệ sinh thái dài hạn sẽ gọn gàng hơn

  • Tôi có chơi nhạc chút ít nên quan tâm đến đầu ra âm thanh
    Tôi tò mò không biết hiện trạng đầu ra âm thanh Bluetooth trên vi điều khiển ra sao. Có đạt được độ trễ thấp và chất lượng đầu ra cao không?

    • Độ trễ thấp của âm thanh Bluetooth phụ thuộc vào codec, và những codec tốt nhất lại là độc quyền
      Nếu thực sự muốn giảm độ trễ tối đa trên loại phần cứng này mà vẫn dùng không dây, một cách là dùng thêm một con ESP32 nữa để truyền bitstream trực tiếp giữa hai bên
    • Sản phẩm của Espressif không lý tưởng cho âm thanh Bluetooth. Hỗ trợ Classic Bluetooth — thứ vẫn chủ yếu được dùng cho âm thanh Bluetooth — khá chập chờn, và trên nhiều mẫu mới thì thậm chí còn bị bỏ hẳn
    • Tôi tò mò không biết vì sao bạn lại muốn dùng không dây. Theo tôi biết thì âm thanh Bluetooth rất tệ, tôi sẽ không muốn dùng nó cho âm nhạc. Cứ đi dây còn hơn, chưa kể không gian vô tuyến giờ đã quá chật chội rồi
    • Với các nhu cầu âm nhạc nghiêm túc, từ phát âm thanh tới nhập MIDI, tôi muốn đồng ý rằng Bluetooth trên Windows là một thảm họa
      Vài năm trước tôi từng cố dựng một môi trường sáng tác DAW kiểu di động bằng một chiếc laptop Windows cao cấp. Chỉ riêng độ trễ âm thanh BT thực tế từ laptop tới tai nghe hoặc earbuds đã không dùng được, và độ trễ đầu vào từ bộ điều khiển BT MIDI riêng cũng không dùng được. Gộp cả hai lại thì tổng độ trễ đúng là nực cười
      Khi đó vấn đề này đã được biết đến rộng rãi và bị than phiền rất nhiều. Một số blog kỹ thuật, gồm cả blog của MSFT, nói rằng có vấn đề ở mọi tầng của stack — driver, firmware, silicon, v.v. — và đang có nỗ lực xử lý mớ hỗn độn đầu-cuối này
      Giải pháp Windows khả dụng duy nhất mà tôi thấy được nhắc đến trên mạng là dùng một thiết bị không dây không phải Bluetooth nào đó. Việc phải cắm một USB dongle chuyên dụng vào laptop, rồi hoặc chọn đúng một thiết bị cụ thể hoặc chọn một receiver dongle hỗ trợ mọi thiết bị, đơn giản là kém hấp dẫn hơn so với dùng dây
      Từ đó đến nay, khoảng mỗi năm tôi lại tìm lại một lần nhưng vẫn chưa thấy báo cáo tiến triển đáng kể nào, và các cuộc thảo luận về công việc đang triển khai cũng ngày càng ít đi. Rất đáng thất vọng. Chất lượng âm thanh BT dường như cũng không cải thiện nhiều
      Muốn tránh suy giảm chất lượng âm thanh thì phải chọn thiết bị cụ thể hỗ trợ codec BT độc quyền, hoặc chuyển sang phần cứng dongle không dây không phải BT. Dù vẫn có bàn tới chuyện cải thiện chất lượng âm thanh, nhưng chưa thấy tín hiệu rõ ràng nào cho việc tiêu chuẩn âm thanh BT sẽ bắt buộc một mức chất lượng tối thiểu mặc định tốt hơn
      Nếu có thông tin nào về việc cải thiện độ trễ mặc định hay chất lượng mặc định của thiết bị BT tiêu chuẩn trên Windows, dù là đầu vào hay đầu ra, tôi thực sự rất muốn nghe