Tin tức
Tin tức
Làm thế nào để nhận biết STM32/GD32 có phải là hàng tân trang giả mạo hay không?
2022-03-16 261




Mới đây, trang embedded ARM đã chia sẻ một bài viết "GD32 has also begun to be flooded with fakes.Bài viết, Stronger Huang, một người bạn lâu năm của tôi trong lĩnh vực ARM nhúng, cũng cho biết nhóm trao đổi kỹ thuật của anh ấy đang thảo luận về vấn đề này.Chip prices riseBán khoai tây chiên kèm cá muốiTôi đã viết một bài báo về chủ đề này, tiết lộ bối cảnh và phương pháp nhận biết hàng giả tân trang. Bài báo đó được sao chép lại để bạn tham khảo.


                           

1

Background of chip price increase    
The Sino-US war in the past two years has affected some large domestic technology companies, such as Huawei. However, most electronics-related companies have been minimally affected.  
Năm 2020, dịch bệnh đã gây ra một cú sốc lớn cho một số công ty sản xuất chất bán dẫn, chẳng hạn như các cuộc đình công của công nhân.  
Sau đó, giá một số nguyên liệu thô bắt đầu tăng ở các mức độ khác nhau. Đặc biệt là từ đầu năm nay, giá của hầu hết các nguyên liệu thô như kim loại và nhựa đều tăng. Giá của mọi thứ từ điện trở và tụ điện đến các thiết bị điện tử tiêu dùng như tivi và tủ lạnh đều tăng ở các mức độ khác nhau.  
  (Nguồn ảnh: Internet, vi phạm bản quyền và đã bị xóa)
The same is true for chips. The prices of the MCUs we are familiar with have increased to varying degrees. I believe everyone knows it. In particular, the prices of some STM32 models have even increased several times.  
Trong bối cảnh giá cả tăng cao như hiện nay, chắc chắn sẽ có một số thương nhân thiếu lương tâm, và do đó khả năng xuất hiện hàng giả cũng tăng lên.    
                           

2

STM32/GD32 đã qua sử dụng hoặc hàng giả.    
Experienced engineers may have encountered the problem of refurbished or fake STM32/GD32, including me before, who erased the GD32 logo and then made it STM32, or refurbished STM32 removed from the old board.  
Hãy cùng bàn về một số trường hợp tân trang chip hoặc hàng giả:
  1. Xóa cờ  
Dấu xóa trên chip rất phổ biến, kể cả trong các sản phẩm mà chúng tôi đôi khi phát triển. Để ngăn chặn người khác sao chép chip, dấu hiệu trên bề mặt chip cũng có thể bị xóa để tránh làm giả.
 
Một số doanh nghiệp sẽ sử dụng phương pháp "mèo cầy đổi hoàng tử" này để kiếm lời. Một số chip tương thích, chẳng hạn như STM32 thời kỳ đầu, tôi biết rằng nhiều trong số đó là GD32 giả.  
  2. Mô hình giả  
The actual size of the Flash inside the STM32 may not match the model. For example: the standard capacity of STM32F103RF is 768K, but the actual Flash size is more than 768K.  
   
  Câu hỏi này mở rộng thêm vấn đề: Dung lượng FLASH của chip STM32 của bạn có thực sự tốt như thông số trong tài liệu hướng dẫn lựa chọn chính thức của ST không?  
 

1. Trước tiên, chúng ta hãy nói về một chuyện khác.


 
Nhìn chung, đối với người mới bắt đầu, bộ nhớ FLASH tích hợp là hoàn toàn đủ dùng. Việc chạy một chương trình Demo đơn giản trên phần cứng trần, hoặc một chương trình Demo hệ điều hành thời gian thực (RTOS) cộng với hai tác vụ, hầu như không gây áp lực lên các vi điều khiển hiện nay.  
Tuy nhiên, một khi bạn tiếp xúc với các dự án thực tế, bạn sẽ thấy rằngNhiều nơi sẽ dành thời gian cho FLASHVà một số dự án sử dụng rất nhiều bộ nhớ FLASH. Ví dụ: một thuật toán cụ thể, tải thư viện phông chữ, hoặc thậm chí là chèn hai hình ảnh vào FLASH.  
Lấy một ví dụ khác về lập trình ứng dụng IAP: Thông thường, những người làm tốt hơn việc nâng cấp chức năng này sẽ có một vùng FLASH (vùng sao lưu) có kích thước gần bằng ứng dụng. Điều đó có nghĩa là: Để đảm bảo an toàn, hãy lưu bản tải xuống chương trình của bạn vào vùng sao lưu, sau đó cập nhật ứng dụng sau khi quá trình tải xuống thành công. Mục đích của việc làm này là:Điều này nhằm ngăn chặn việc quá trình tải xuống bị gián đoạn giữa chừng, gây ra lỗi..  
Tôi tìm thấy một hình ảnh, đại khái như sau, chia bộ nhớ FLASH thành ba khu vực (khu vực FLASH chương trình khởi động, khu vực FLASH ứng dụng và khu vực FLASH chương trình sao lưu). Hãy suy nghĩ về điều đó.  
 
   
 
 
 

2. Lựa chọn chip STM32


 
Thông thường, sau khi dự án đưa ra các yêu cầu, chúng ta sẽ chọn một MCU phù hợp. Điều đầu tiên cần nghĩ đến là kiểm tra [Hướng dẫn lựa chọn]. Ngoài việc lựa chọn các tài nguyên ngoại vi, còn có việc lựa chọn dung lượng FLASH phù hợp. Quy tắc chọn sản phẩm STM32 như sau:
   
Địa chỉ tải hướng dẫn tuyển chọn: https://www.stmcu.com.cn/upload/selection_Guide.pdf (Tài khoản chính thức trên WeChat không hỗ trợ liên kết ngoài, vui lòng sao chép URL để mở)
 
 
 

3. Kiểm tra dung lượng bộ nhớ FLASH bên trong của STM32.


 
Sau khi đã thảo luận một số chủ đề về FLASH, chúng ta hãy quay lại với những điểm chính của bài viết này:Bộ nhớ FLASH bên trong của STM32 có thể lớn hơn so với thông số được nêu trong hướng dẫn lựa chọn ở trên..  
Ví dụ: Model cụ thể của chip MCU của tôi là STM32F103RF. Nhìn vào tài liệu hướng dẫn, tôi thấy dung lượng của nó là 768K, nhưng thực tế dung lượng FLASH của nó là 1M.  
   
Ở đây tôi sẽ trình bày về hai phương pháp xác minh đơn giản:
1. Xác minh thông qua lập trình  
Simply put, it is through erasing, writing, and reading the specified address (that is, the address exceeding the FLASH size).  
  FLASH_XóaKhu vực FLASH_ProgramWord  
  2. Đọc dữ liệu FLASH thông qua các công cụ  
Phương pháp này là phương pháp trực tiếp và đơn giản nhất. Lấy công cụ tải xuống STM32 ST-LINK Utility làm ví dụ:
 
   
Các điểm chính thực chất đã được mô tả trong hình ảnh:Nếu địa chỉ vượt quá 768K, dữ liệu thực sự có thể được đọc ra.(Hình ảnh phía trên là những gì tôi đọc được từ vi điều khiển STM32F103RF thực tế. Địa chỉ bắt đầu của ứng dụng là 0x080C0000, và ứng dụng thực sự đang chạy.)
Nói tóm lại, điều tôi thực sự muốn nói là: có rất nhiều chip STM32 tương tự nhau, không chỉ riêng STM32F103RF mà tôi đã nêu ví dụ ở trên. Chip 103RC có dung lượng danh nghĩa là 256K, nhưng thực tế lại có nhiều hơn 256K. Nếu bạn thấy dung lượng FLASH của mình không đủ, bạn có thể sử dụng phương pháp trên để kiểm tra xem có dung lượng trống nào hơn thế không.  
  3. Sản phẩm được tân trang lại thành sản phẩm nguyên bản và chính hãng.Loại này phổ biến nhất trên một số sản phẩm. Loại trông rẻ tiền. Nếu bạn mua vài con ở cửa hàng bán lẻ, chúng sẽ được vận chuyển. Đây có thể là những con chip đã được tân trang lại.
 
Nếu bạn mua một con chip đã được tân trang, bạn có thể viết một chương trình chạy đèn LED để kiểm tra và sẽ không có vấn đề gì. Tuy nhiên, sau khi tham gia một dự án, đặc biệt là một dự án yêu cầu nhiều thiết bị ngoại vi hơn và có các chức năng phức tạp hơn, hình dạng ban đầu của con chip có thể sớm bị lộ.  
Nếu không may mắn, bạn có thể gặp phải những tình huống sau:
  • The software worked overtime for several days without any results, and the hardware was blamed;
  • Nhiều thử nghiệm khác nhau trên các dây dẫn phần cứng, thay thế một con chip để giải quyết vấn đề;
  • Các kỹ sư phần mềm và phần cứng thường xuyên tranh cãi;
  • ······

Do đó, không có gì đáng ngạc nhiên khi hiện nay trên thị trường có rất nhiều chip giả hoặc chip lỗi, kể cả chip ARM nhúng, người ta nói rằng "GD32 cũng bắt đầu tràn lan hàng giả." Tôi nghĩ điều đó chắc chắn là có.  
   
                           

3

Nhận biết sản phẩm đã qua sử dụng hoặc hàng giả.Để nhận biết STM32/GD32 đã được tân trang hoặc hàng giả, phương pháp thông thường là trước tiên hàn nó lên bo mạch PCB (hoặc lên giá đỡ), sau đó cấp nguồn để kiểm tra xem nó có hoạt động bình thường hay không. Nếu nó nóng, có dòng điện quá mức hoặc thậm chí bốc khói, hãy cẩn thận.  
Sau đó đọc thông tin chip, chẳng hạn như dung lượng Flash, thông tin UID, byte tùy chọn, v.v.  
Chia sẻ lại các bài viết trước tại đây:Bạn có biết về các thanh ghi này của STM32 không?  
Phương pháp đọc cụ thể như sau:
 

1 Thanh ghi dung lượng Flash


  1. Bằng cách đọc sổ đăng ký  
Trong "Sổ tay tham khảo" của STM32, có một thanh ghi như thanh ghi dữ liệu kích thước Flash (thường ở cuối sổ tay), và địa chỉ cơ sở của thanh ghi được ghi rõ ràng.  
  dấuCác kiểu chip khác nhau có thể có địa chỉ thanh ghi khác nhau. Ví dụ, địa chỉ cơ sở của F103 là: 0x1FFFF7E0.  
   
Đây là giá trị 16 bit, được ghi sẵn tại nhà máy và chỉ có thể được đọc bằng chương trình. Phương pháp đọc rất đơn giản và có thể thực hiện như sau:
  uint16_t Flash_size;   Flash_size = *(uint16_t *)0x1FFFF7E0;  
  2. Đọc trực tiếp thông qua tiện ích STM32 ST-LINK.
 
Kết nối chip thông qua ST-Link và đọc trực tiếp, bạn có thể xem thông tin dung lượng:
   
 

2 UID register


Trước đây có người hỏi tôi, liệu tôi có thể mã hóa thông qua UID của STM32 không? Điều này hoàn toàn có thể.  
Nhưng anh ấy lại hỏi tôi một câu hỏi khác, tôi không muốn đọc hết (96 bit),Liệu chỉ một phần của thanh ghi có thể được đọc làm định danh? Các phần được đọc có bị lặp lại không?  
STM32 UID unique identifierCó thể áp dụng với:
  • Used as serial number.
  • Nó được sử dụng như một mật khẩu. Khi ghi dữ liệu vào bộ nhớ flash, mã định danh duy nhất này được sử dụng kết hợp với thuật toán mã hóa và giải mã phần mềm để tăng cường bảo mật cho mã dữ liệu trong bộ nhớ flash.
  • Được sử dụng để kích hoạt quá trình khởi động với cơ chế an toàn.

Mã định danh duy nhất (UID) của STM32 có tổng cộng 96 bit (32 x 3). Các bạn ơi, mình có thể đọc một phần nhất định của nó để làm mã định danh duy nhất được không?  
Về mặt lý thuyết, câu hỏi này không thể trả lời một cách chính xác. Nhưng nếu không quá khắt khe, thì vẫn được. Bởi vì mã UID này được đánh số theo từng tấm wafer, lô sản xuất, v.v. Nếu bạn mua cùng một lô sản xuất, bạn sẽ thấy rằng các số có thể liên tiếp nhau.  
   
 
Tôi đã đọc qua một vài bo mạch được sản xuất trước đây (các MCU mua được đều thuộc cùng một lô). Mã định danh duy nhất (UID) của các chip là liên tiếp nhau. Nếu bạn quan tâm, bạn có thể thử.  
vì vậy,Nếu chỉ đọc một phần của UID như một mã định danh, thì chỉ có thể nói rằng nó không hoàn toàn chính xác..
 
 
 

3. Địa chỉ bù trừ đăng ký


Vẫn còn rất nhiều người mới bắt đầu học những kiến ​​thức cơ bản. Ví dụ, có những người bạn muốn lập trình trực tiếp bằng các thanh ghi, nhưng họ không biết địa chỉ cơ sở của thanh ghi là gì và địa chỉ offset của thanh ghi là gì.  
  1. Địa chỉ cơ sở  
Mỗi thành phần trên chip và thiết bị trên chip đều có một địa chỉ cơ sở tương ứng, được nhà sản xuất xác định và không thể thay đổi. Như hình minh họa bên dưới:
   
Trong chương trình, bạn sẽ tìm thấy đoạn mã tương ứng với đoạn mã trên:
   
  2. Địa chỉ bù  
Địa chỉ offset là độ lệch dựa trên địa chỉ cơ sở (thường được tăng thêm 4 byte), ví dụ như địa chỉ offset của bộ định thời TIM:
   
Tương tự, đoạn mã tương ứng trong chương trình thực hiện việc bù trừ thông qua cấu trúc:
   
Về địa chỉ cơ sở và địa chỉ bù, dù là thư viện ngoại vi tiêu chuẩn hay thư viện HAL, chúng đều được triển khai bằng phương pháp địa chỉ cơ sở + địa chỉ bù như đã trình bày ở trên.  
As mentioned in the article many times before, if you want to understand the principle of registers, or implement them through registers, it is best to refer to the "Standard Peripheral Library" routines. The HAL library is relatively complex to encapsulate and is not suitable for studying the lowest-level registers.  
Kiểm tra bổ sung, ghi dữ liệu (RAM, Flash), kiểm tra chức năng cơ bản của các thiết bị ngoại vi khác nhau, v.v.  
   
                           

4

Recommended formal channelsBạn phải trả giá rất cao khi mua hàng giả hoặc hàng nhái. Nếu vấn đề được phát hiện ở giai đoạn phát triển ban đầu thì không sao, nhưng nếu vấn đề chỉ được phát hiện sau khi sản xuất hàng loạt thì sẽ rất đáng lo ngại.  
Điều đáng sợ hơn nữa là tình trạng các sản phẩm được vận chuyển với số lượng lớn nhưng lại gặp vấn đề khi đến tay khách hàng do chip giả.  
Hôm nay, trong nhóm giao tiếp có người đang bàn về việc bán khoai tây chiên kèm cá muối. Tôi nghĩ,You can just buy chips for fun, but you'd better be cautious when making products.  
Ví dụ, con chip STM32 được bán trên Taobao với giá hơn mười nhân dân tệ vẫn là hàng nhập khẩu và chính hãng. Bạn có tin không?  
   
  For chips purchased through regular channels, there is still a certain probability that the problem is caused by the chip itself, let alone a platform like Xianyu.Tôi từng gặp vấn đề với con chip STM32 mua từ một đại lý lớn và quen thuộc. Kỹ sư hỗ trợ kỹ thuật (FAE) đã đến công ty nhiều lần nhưng không tìm ra vấn đề. Cuối cùng, tôi đã lấy lại con chip nguyên bản từ nhà máy và tháo rời nó ra, phát hiện ra rằng vấn đề thực sự nằm ở chính con chip đó.  
 

Vì vậy, đừng mua chip từ Taobao hoặc Xianyu chỉ vì giá rẻ. Nên mua qua các kênh chính thức. Nếu không, bạn có thể phải trả giá cao hơn.


Tuyên bố miễn trừ trách nhiệm: Bài viết này được sao chép từ "strongerHuang", một trang web ủng hộ việc bảo vệ quyền sở hữu trí tuệ. Vui lòng ghi rõ nguồn gốc và tác giả khi sao chép. Nếu phát hiện vi phạm bản quyền, vui lòng liên hệ với chúng tôi để gỡ bỏ.


Số điện thoại công ty: +86-0755-83044319
Số fax: +86-0755-83975897
Email: 1615456225@qq.com
QQ: 3518641314 Quản lý Li

QQ: 332496225 Quản lý Qiu

Địa chỉ: Phòng 809, Tòa nhà C, Tòa nhà Công nghệ Zhantao, Số 1079 Đại lộ Minzhi, Khu Longhua Mới, Thâm Quyến

whatsapp

Đường dây nóng Dịch vụ

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950