Nieuws
Nieuws
Hoe kun je vaststellen of een STM32/GD32 een gereviseerd namaakproduct is?
2022-03-16 261




Onlangs deelde embedded ARM een artikel "Ook GD32 wordt steeds vaker overspoeld met vervalsingen.In het artikel zegt Stronger Huang, een oude bekende van embedded ARM, ook dat zijn technische uitwisselingsgroep aan het discussiëren is.De prijzen van chips stijgen.enVerkoop friet op gezouten visIk heb een artikel geschreven over dit onderwerp, waarin ik de achtergrond en methoden voor het herkennen van gereviseerde namaakproducten heb toegelicht. Dit artikel is hierbij ter referentie opgenomen.


                           

1

Achtergrond van de prijsstijging van chips    
De Chinees-Amerikaanse oorlog van de afgelopen twee jaar heeft enkele grote binnenlandse technologiebedrijven, zoals Huawei, getroffen. De meeste elektronicabedrijven hebben er echter slechts minimale gevolgen van ondervonden.  
In 2020 bracht een epidemie een zware klap toe aan sommige halfgeleiderbedrijven, bijvoorbeeld door stakingen van werknemers.  
Vervolgens begonnen de prijzen van sommige grondstoffen in verschillende mate te stijgen. Vooral sinds het begin van dit jaar zijn de prijzen van de meeste grondstoffen, zoals metalen en kunststoffen, gestegen. De prijzen van alles, van weerstanden en condensatoren tot consumentenelektronica zoals televisies en koelkasten, zijn in uiteenlopende mate toegenomen.  
  (Afbeelding afkomstig van internet, inbreuk op auteursrecht en verwijdering)
Hetzelfde geldt voor chips. De prijzen van de microcontrollers die we kennen, zijn in verschillende mate gestegen. Ik denk dat iedereen dat wel weet. Met name de prijzen van sommige STM32-modellen zijn zelfs meerdere malen gestegen.  
Gezien deze prijsstijging moeten er wel wat gewetenloze handelaren actief zijn, waardoor de kans op namaakproducten toeneemt.    
                           

2

Gereviseerde of namaak STM32/GD32    
Ervaren engineers zijn wellicht al eens het probleem tegengekomen van gereviseerde of nagemaakte STM32/GD32-chips, waaronder ikzelf, die het GD32-logo verwijderden en er vervolgens een STM32 van maakten, of een gereviseerde STM32-chip van een oud bord haalden.  
Laten we het hebben over een aantal situaties met betrekking tot chipreparatie of namaakproducten:
  1. Wis de vlag  
De chipwismarkering komt veel voor, ook bij de producten die wij soms ontwikkelen. Om te voorkomen dat anderen de chip kopiëren, kan de markering op het oppervlak van de chip ook worden gewist.
 
Sommige bedrijven gebruiken deze "civetkat voor prins"-methode om winst te maken. Van sommige compatibele chips, zoals de STM32 in de beginjaren, wist ik dat veel ervan nep-GD32's waren.  
  2. Nepmodel  
De werkelijke grootte van het flashgeheugen in de STM32 komt mogelijk niet overeen met het model. Bijvoorbeeld: de standaardcapaciteit van de STM32F103RF is 768 KB, maar de werkelijke grootte van het flashgeheugen is groter dan 768 KB.  
   
  Dit sluit aan bij het onderwerp: Is de FLASH-capaciteit van uw STM32-chip werkelijk zo goed als in de officiële selectiehandleiding van ST wordt aangegeven?  
 

1 Laten we het eerst over iets anders hebben.


 
Over het algemeen is het interne FLASH-geheugen voor beginners ruim voldoende. Het draaien van een eenvoudige bare-metal demo, of een RTOS plus een demo met twee taken, legt geen enkele druk op de huidige microcontrollers.  
Maar zodra je daadwerkelijk met projecten aan de slag gaat, zul je merken datOp veel plaatsen zal FLASH worden uitgegeven.En sommige projecten verbruiken veel FLASH-geheugen. Bijvoorbeeld: een specifiek algoritme, het laden van een lettertypebibliotheek of zelfs het samenvoegen van twee afbeeldingen in FLASH.  
Neem nog een voorbeeld van IAP-applicatieprogrammering: over het algemeen hebben de ontwikkelaars die deze functie beter beheren een FLASH-geheugen (back-upgebied) dat ongeveer even groot is als de applicatie zelf. Met andere woorden: om de veiligheid te garanderen, sla je de gedownloade programmagegevens op in een back-upgebied en werk je de applicatie pas bij nadat de download is voltooid. Het doel hiervan is:Dit is om te voorkomen dat de download halverwege wordt onderbroken, wat tot een mislukking zou leiden..  
Ik vond een afbeelding, die er ongeveer zo uitziet, waarop het FLASH-geheugen in drie gebieden is verdeeld (opstartprogramma-FLASH-gebied, applicatie-FLASH-gebied en back-upprogramma-FLASH-gebied). Denk daar eens over na.  
 
   
 
 
 

2 STM32-chipselectie


 
Over het algemeen kiezen we, nadat ons project de eisen heeft geformuleerd, een geschikte microcontroller (MCU). Het eerste wat we dan doen, is de [Selectiehandleiding] raadplegen. Naast de selectie van randapparatuur is er ook de selectie van een geschikte FLASH-capaciteit. De regels voor de STM32-productopdrachten zijn als volgt:
   
De selectiehandleiding is te vinden op: https://www.stmcu.com.cn/upload/selection_Guide.pdf (Het officiële WeChat-account ondersteunt geen externe links, kopieer de URL om het bestand te openen)
 
 
 

3. Controleer hoe groot het interne FLASH-geheugen van de STM32 is.


 
Na een aantal onderwerpen over FLASH te hebben besproken, keren we terug naar de kernpunten van dit artikel:De interne FLASH van onze STM32-chip kan groter zijn dan aangegeven in de bovenstaande selectiehandleiding..  
Bijvoorbeeld: Het specifieke model van mijn MCU-chip is STM32F103RF. Volgens de handleiding heeft deze een capaciteit van 768K, maar in werkelijkheid heeft hij een FLASH-capaciteit van 1M.  
   
Hier bespreek ik twee eenvoudige verificatiemethoden:
1. Verifiëren door middel van programmeren  
Simpel gezegd gebeurt dit door het wissen, schrijven en lezen van het opgegeven adres (dat wil zeggen, het adres dat de grootte van het FLASH-geheugen overschrijdt).  
  FLASH_EraseSector FLASH_ProgramWord  
  2. Lees FLASH-gegevens uit met behulp van tools  
Deze methode is de meest directe en eenvoudigste. Neem bijvoorbeeld de STM32 ST-LINK Utility downloadtool:
 
   
De belangrijkste punten worden in feite in de afbeelding weergegeven:Als het adres groter is dan 768K, kunnen de gegevens daadwerkelijk worden uitgelezen.(De afbeelding hierboven toont wat ik heb uitgelezen met de echte STM32F103RF-microcontroller. Het startadres van de applicatie is 0x080C0000, en de applicatie draait daadwerkelijk.)
Na dit alles gezegd te hebben, wil ik eigenlijk het volgende zeggen: er zijn veel vergelijkbare STM32-chips, niet alleen de STM32F103RF die ik hierboven als voorbeeld gaf. De 103RC heeft een nominale geheugencapaciteit van 256 KB, maar beschikt in werkelijkheid over meer dan 256 KB. Als je merkt dat je FLASH-geheugen onvoldoende ruimte heeft, kun je de bovenstaande methode gebruiken om te controleren of er meer ruimte beschikbaar is.  
  3. Opgeknapt tot originele en authentieke productenDit type komt het meest voor in bepaalde producten. Het type dat er goedkoop uitziet. Als je er een paar in de winkel koopt, worden ze verzonden. Dit zijn waarschijnlijk gereviseerde chips.
 
Als je een gereviseerde chip koopt, kun je er een led-looplicht mee programmeren om hem te testen, en dat zal geen probleem zijn. Maar zodra je aan een project begint, vooral een project dat meer randapparatuur vereist en complexere functies heeft, kan je ware aard al snel aan het licht komen.  
Als je pech hebt, kunnen de volgende situaties zich voordoen:
  • De software draaide meerdere dagen overuren zonder resultaat, en de schuld werd bij de hardware gelegd;
  • Diverse tests met losse draden in de hardware, het vervangen van een chip om het probleem op te lossen;
  • Software- en hardware-ingenieurs hebben ruzie;
  • ······

Het is dan ook niet verwonderlijk dat er momenteel veel namaak- of defecte chips op de markt zijn, waaronder embedded ARM, die zegt dat "ook de GD32 overspoeld wordt met namaakproducten". Ik denk dat die er wel degelijk zijn.  
   
                           

3

Herken gereviseerde of namaakproducten.Om gereviseerde of namaak STM32/GD32's te identificeren, is de gebruikelijke procedure om ze eerst op de printplaat (of op de mal) te solderen en vervolgens aan te zetten om te controleren of ze normaal functioneren. Als ze heet worden, een te hoge stroomsterkte leveren of zelfs roken, wees dan voorzichtig.  
Lees vervolgens de chipinformatie uit, zoals de flashcapaciteit, UID-informatie, optiebytes, enzovoort.  
Eerdere artikelen kunt u hier delen:Weet je iets over deze registers van de STM32?  
De specifieke leesmethode is als volgt:
 

1 Flash-capaciteitsregister


  1. Door het register te lezen  
In de "Referentiehandleiding" van de STM32 is er een register zoals het Flash-groottegegevensregister (meestal aan het einde van de handleiding), en het basisadres van het register staat duidelijk vermeld.  
  zinspelenVerschillende chipmodellen kunnen verschillende registeradressen hebben. Het basisadres van de F103 is bijvoorbeeld: 0x1FFFF7E0.  
   
Het is een 16-bits waarde, die in de fabriek is geschreven en alleen door het programma kan worden gelezen. De leesmethode is heel eenvoudig en kan als volgt zijn:
  uint16_t Flash_grootte;   Flash_size = *(uint16_t *)0x1FFFF7E0;  
  2. Lees rechtstreeks via het STM32 ST-LINK Utility
 
Sluit de chip aan via ST-Link en lees hem direct uit; dan kunt u de capaciteitsinformatie zien.
   
 

2 UID-registratie


Iemand vroeg me eerder of ik via de UID van de STM32 kon versleutelen. Dat is absoluut mogelijk.  
Maar hij stelde me nog een vraag: ik wil niet alles (96 bits) lezen.Kan slechts een deel van het register als identificator worden gelezen? Worden de gelezen delen herhaald?  
STM32 UID unieke identificatiecodeToepasbaar op:
  • Gebruikt als serienummer.
  • Het wordt gebruikt als wachtwoord. Bij het schrijven naar flashgeheugen wordt deze unieke identificatiecode in combinatie met het softwarematige versleutelings- en ontsleutelingsalgoritme gebruikt om de beveiliging van de code in het flashgeheugen te verbeteren.
  • Wordt gebruikt om het opstartproces met veiligheidsmechanisme te activeren.

De UID van de STM32 heeft in totaal 96 bits (32 x 3). Kan ik, als er meerdere bits zijn, slechts een bepaald deel ervan als unieke identificatiecode gebruiken?  
Strikt genomen is dit een onmogelijke vraag. Maar als het niet al te strikt is, is het nog steeds acceptabel. Deze UID is namelijk genummerd per wafer, batch, enzovoort. Als je dezelfde batch koopt, zul je merken dat de nummers opeenvolgend kunnen zijn.  
   
 
Ik heb al eerder verschillende geproduceerde printplaten gelezen (de gekochte microcontrollers komen uit dezelfde batch). De UID's van de chips zijn opeenvolgend. Als je geïnteresseerd bent, kun je het proberen.  
zo,Door een deel van de UID als identificatiecode te lezen, kan alleen worden geconcludeerd dat deze niet strikt is..
 
 
 

3 Register offsetadres


Er zijn nog steeds veel beginners die zich de basisprincipes eigen maken. Zo zijn er bijvoorbeeld vrienden die zelf met registers willen programmeren, maar niet weten wat een basisadres van een register is en wat een offsetadres van een register is.  
  1. Basisadres  
Elke chip en elk apparaat op de chip heeft een bijbehorend basisadres, dat door de fabrikant wordt bepaald en niet kan worden gewijzigd. Zoals hieronder weergegeven:
   
In het programma vindt u de code die overeenkomt met het bovenstaande:
   
  2. Offsetadres  
Het offsetadres is de offset ten opzichte van het basisadres (meestal verhoogd met 4 bytes), zoals het offsetadres van de TIM-timer:
   
Op dezelfde manier implementeert de corresponderende code in het programma de offset via de structuur:
   
Wat betreft het basisadres en het offsetadres, of het nu de standaard perifere bibliotheek of de HAL-bibliotheek betreft, deze worden geïmplementeerd met behulp van de hierboven getoonde methode van basisadres + offset.  
Zoals al vaker in dit artikel is vermeld, is het raadzaam om de routines van de "Standard Peripheral Library" te raadplegen als u het principe van registers wilt begrijpen of ze via registers wilt implementeren. De HAL-bibliotheek is relatief complex om te implementeren en is niet geschikt voor het bestuderen van registers op het laagste niveau.  
Verdere verificatie, test van het schrijven van gegevens (RAM, Flash), basisfunctietest van diverse randapparatuur, enz.  
   
                           

4

Aanbevolen formele kanalenDe prijs die je betaalt voor namaakproducten is erg hoog. Het is niet erg als problemen in een vroeg ontwikkelingsstadium worden ontdekt, maar je bent bang dat de problemen pas na massaproductie aan het licht komen.  
Wat nog angstaanjagender is, is de situatie waarin producten in grote hoeveelheden worden verzonden en vervolgens problemen veroorzaken bij de klant vanwege namaakchips.  
Vandaag besprak iemand in de communicatiegroep de situatie rond de verkoop van friet met gezouten vis. Ik denk dat...Je kunt voor de lol gewoon chips kopen, maar je moet wel voorzichtig zijn bij het maken van producten.  
Neem bijvoorbeeld de STM32 die je op Taobao voor meer dan tien yuan vindt; die is nog steeds geïmporteerd en origineel. Geloof je dat?  
   
  Ook bij chips die via reguliere kanalen zijn aangeschaft, bestaat er nog steeds een zekere kans dat het probleem wordt veroorzaakt door de chip zelf, laat staan ​​door een platform zoals Xianyu.Ik heb eerder problemen ondervonden met de STM32 die ik bij een grote, bekende distributeur had gekocht. De FAE (Field Application Engineer) is meerdere malen bij het bedrijf langs geweest, maar kon het probleem niet vinden. Uiteindelijk heb ik de originele chip teruggebracht en gedemonteerd, en ontdekte ik dat het probleem daadwerkelijk in de chip zelf zat.  
 

Koop daarom geen chips via Taobao of Xianyu alleen omdat ze goedkoop zijn. Het is aan te raden om via officiële kanalen te bestellen. Anders kan het je duur komen te staan.


Disclaimer: Dit artikel is overgenomen van "strongerHuang", een organisatie die de bescherming van intellectuele eigendomsrechten ondersteunt. Vermeld bij herpublicatie de oorspronkelijke bron en auteur. Neem bij inbreuk op het auteursrecht contact met ons op zodat we het artikel kunnen verwijderen.


Telefoonnummer van het bedrijf: +86-0755-83044319
Fax: +86-0755-83975897
E-mail: 1615456225@qq.com
Vraag: 3518641314 Manager Li

Vraag: 332496225 Manager Qiu

Adres: Kamer 809, Gebouw C, Zhantao Technologiegebouw, Minzhilaan 1079, Longhua Nieuw District, Shenzhen

whatsapp

Service Hotline

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950