STM32 - minimalisticky vyvoj, chyby, objednavky

mhi_

STM32 - minimalisticky vyvoj, chyby, objednavky
« kdy: 09. 12. 2018, 14:09:28 »
Mam 3 otazky, byly tu serialy k STM32,  tak tu asi budou i nejaci uzivatele, kteri treba maji zkusenost leta a maji STM32 i v komercnich aplikacich, ne jen hobby projektech (antitroll: vim, ze jsou lepsi servery na tuto otazku, mam duvod proc se ptat i zde).

- nesnasim ty ST knihovny ktere resi praci s periferiemy (uz od STckovych ARM7), moje cesta je programovat si vsechno primo. Na STM32F0xx jsem nasel vhodne header files, ktere maji spravne struktury a #defines aby sly kompletne MCU programovat bez pouziti knihovny. Na (napr.) STM32F103 jsem takove header files nenasel - ano, umim si je napsat, ale moc se mi do toho nechce. Pouzivam arm-gcc pod Linuxem. Treba bych rad naprogramoval co nejmensi minimalisticky USB CDC v tomto stylu (aby sel pouzit v bootloaderu a dalo se to napojit pres "exporty" i na aplikaci), z ceho vyjit? Moje cesta zatim byla vzdy ta, ze jsem psal od 0 z datasheetu nebo preprogramoval STM knihovnu do maker a ty potom pouzivam.

- s jakymi chybami jste se setkali pri praxi s STM32? Zatim jsem delal jen jednoduche "aplikace" nevyuzivajici prilis interrupty ani jednotlive periferie (mysleno nejake sofistikovane PWMky apod., UART/GPIO/atd samozrejme pouzviam :) ). Treba u Microchipu jsem uz zvykly na hromadu bugu (reportoval jsem jim JTAG+CAN a zjistil nejake chyby v USB) a pri vyvoji je potreba si nechavat obcas zadni vratka, je-li na plosnaku alespon trochu mista.

- posledni vec je cena STM32, odkud je objednavate v mnozstvi 5-10 k ? Jde mi o Cortex-M3ku. Cinan ma male cele moduly "blue pill" za cenu nizsi nez je moje cena na tisicova mnozstvi, predpokladam, ze je nejaky special pricing pro CN, na ktery nedosahneme/dosahneme taky ?


Peter

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #1 kdy: 09. 12. 2018, 14:48:31 »
Pozri na http://libopencm3.org/ môžno sa Ti to bude hodiť. Celé je to postavení na priamych zápisoch do registrov, takže sa musíš trocha vyznať aj v tom, čo kde a ako (Reference manual a pod.), ale dá sa to zvládnúť, kompiluje sa s gcc. Moc sa toho s týmto pokaziť nedá, ale ale vhodné si vyrobiť nejakú malú zbierku príkladov pre obsluhu používaných preriférií /postupov, vyskúšať a potom použivať ako lego

Chyby na samotnom čipe sa samozrejme nájdu (nie je to ale tragické), z mojich skúseností hlavne pri nejakých exotickejších konfiguráciách (napr. blbnutie SPI2 pri použití ADC kanálu > 8 a pod. ), treba priebežne sledovať dokumentáciu a erraty - hlavne pri novších čipoch.

V malom počte kusov sa dajú STM nakúpit aj u Mouseru alebo Farnellu, niektoré má aj TME, napr. STM32F103T6U6A pri 10ks za 2.7e.


aabb

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #2 kdy: 09. 12. 2018, 15:55:20 »
K cinskym cenam, neprekvapilo by ma, ak by to neboli original STM, ale cinske kopie, pripadne vyrobene v tej istej fabrike, ale na "nocnej" sichte.
Konkretne ATMEGA128 ma aj cisku kopiu, akurat pod inym oznacenim. Nachadza sa v RC vysielackach. Problem bol, ze to nebola 100% kopia a alternativny firmware na cinskom procesore obcas zamrzol. Presne oznacenie uz nepamamtam.
Kludne to takto moze byt aj pri niektorych procesoroch od STM

Peter

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #3 kdy: 09. 12. 2018, 19:05:25 »
K cinskym cenam, neprekvapilo by ma, ak by to neboli original STM, ale cinske kopie, pripadne vyrobene v tej istej fabrike, ale na "nocnej" sichte.

Dost často sú výmety a mimotolerantné kusy z fabriky po testovaní, pretože sa to v číne púzdrí a testuje (čo sú asi najdrahšie operácie), tak tam toho majú asi na mraky - lacno to kúpia, lebo asi by to aj tak skončilo v šrote, plácnu to na nejaký malý plošák a hajda na alibabu ... Na hranie fajn, ale spolahnúť sa na to pri nejakej serióznejšej robote je sebevražda - stalo sa mi, že pri behu odhorela časť periférií (nič nebolo k MCU pripojené - len napájanie a komunikácia), core normálne šlo a čip sa začal ohrievať. Občas sa to dá výmet spoznať podľa spotreby pri rovnakých podmienkach porovnaním s normálnym čipom.


mhi_

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #4 kdy: 09. 12. 2018, 19:33:01 »
Nasel jsem asi ten header file https://github.com/espruino/Espruino/blob/master/targetlibs/stm32f1/lib/stm32f10x.h

Ze by delali "plagiat" ve smyslu noveho navrhu STM32 cipu nebo to obkreslili, to mi prijde jako nesmysl. Pokud jde o vyrazene die, je to dost dobre mozne.  Driv jsme nakoupil pres CZ firmu hromadu CAN transcieveru a vracely se nam nesktutecnym tempem, tak pulka byla spatna. Nemuze to ale cele byt tak, ze v CN ma STM jednoduse vyznamne lepsi ceny nez pro zbytek sveta?

S cim jsem se aktualne (pokud jde o cinske levne veci) pral jsou Arduino modulky s 3,5" LCD a nejakym klonem ILItek radice - chvili jsem sbiral z eBaye ruzne displaye a mam na stole 3 nebo 4 verze, kazda ma trosku jiny controller, jinak nastaveny display, atd. :-). Dostalo me, ze jeden z tech controlleru blbe nastavuje column/page range, pri urcitych hodnotach to vypada, ze je nutne otocit min-max :). No ale zase za tu cenu si clovek nemuze moc stezovat.


host

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #5 kdy: 09. 12. 2018, 20:29:29 »
1. Knihovny. Zacinal jsem s STM pred mnoha mnoha lety (predtim ARM od LM a Atmel). Tehdy jsem nejakou dobu pouzival Std.Periph., a brzy potom pouze opravene .h soubory s registry a CMSIS (system + Cckem nepodporovane instrukce). Dnes jsem na tom stejne + pouzivam vlastni startup .s, init (clocks) a linker script (dost casto pouzivam dalsi specialni sekce, fixne ulozene promenne apod.). HAL me zpocatku nepresvedcil (bugovost, topornost, neuplnost) a dnes se k nemu uz vracet nechci (mam sve knihovny) nebo ani nemuzu (SIL, Misra, pozadavek zakaznika,...).
2. Chyb je mraky - bugove knihovny (mozna se to zlepsilo, nevim), nejasny/chybejici popis vlastnosti periferie (napr. kdy je mozne do registru zapsat, za jak dlouho se dana vec zpropaguje v hw periferie, co ma prednost pri urcite konfiguraci, vazby v ramci periferie/mezi periferiemi apod.), ale uz je to lepsi a STM docela updatuje errata a ma reagujici tech. support. Vzdy maximalizuju vyuziti periferii, takze co lze, jede na DMA/INTR, co uz nelze, jede alespon na INTR, pouzivam hw zavislosti mezi periferiemi (triggers apod.). Potom jde clovek opravdu az na dren periferii a ty vyse uvedene info vam chybi. Ale zase dik za to, co je. STM patri k tem lepsim, co se dokumentace tyce.
3. Cena STM. No to mate tak, pokud delate opravdu seriozni vyvoj v seriozni firme, nezbyva nez nakupovat u dodavatelu, kteri jsou schopni zarucit puvod nebo dokonce dodat "rodny list" soucastky (zvlaste americky trh si to zada). Riskovat kvuli max. par dolarum/mcu megaprusvih nakupci rozhodne nebudou, ani by to neproslo pres procesy. K ciste soukromym ucelum mi uz pod rukama proslo par desitek ruznych sarzi ruznych procesoru od STM. Pokazde mely standardni potisk a pri pouziti nevykazovaly nijake abnormality nebo odchylky proti kat. listu. Jeden jsem i trapil na teploty - pozadovane funkce OK. Ale ani ja nejsem hazarder, takze treba jako OSVC bych to zakaznikovi neprodal. Rozdil mezi cenou v EU a Cine musite pricist na vrub: clo, naklady EU distributoru a jejich marze, moznost prijit k cipu v Cine ponekud jinou cestou (pocinaje "odsypanim si do pytle" (Aliexpress,...) az po vice ci mene shora posvecene odkloneni mcu na cinsky trh (Alibaba,...)).

user

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #6 kdy: 09. 12. 2018, 21:46:50 »
Dlhorocny vyvoj mimo ine aj STM32, napisem len poznamky, ale pozeram ze uz iba opakujem predchodcov.

- Pouzivam na niektore FW cele kniznice, na niektore iba stm32f10x.h, ten header file najdete v tych knizniciach (resp. odtial ho mam ja). Podla toho aky ma byt kod komplexny, obe moznosti su podla mna vpohode :) (tiez som najprv standard peripheral libraries neznasal, ale casom som pochopil ze je to predsa len rychlejsie). Zacinal som na Windowse, kvoli IAR, ale presiel som na arm-gcc a je to to iste, aspon nepotrebujem virtualku na Linuxe.

- Kazdy MCU ma svoje chyby a STM32 ich maju naozaj vela. Citanie datasheetu bez errata naozaj neznamena citanie datasheetu ;)

- Jednotkove kusy Farnell, stovky kusov Rutronik. Maju uplne ine ceny oproti tym, na ake ste mozno zvyknuty. Tie lacne v Cine su fake a originaly s pripadnym clom (?, tusim aktualne je 0%) vychadzaju drahsie.
« Poslední změna: 09. 12. 2018, 21:49:53 od user »

host

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #7 kdy: 09. 12. 2018, 22:32:17 »
Citace
Ze by delali 'plagiat' ve smyslu noveho navrhu STM32 cipu nebo to obkreslili, to mi prijde jako nesmysl. Pokud jde o vyrazene die, je to dost dobre mozne.
Tezko rict, ale je tu pripad s GD32F103 - https://olimex.wordpress.com/2015/11/09/chinese-clones-attack-stm32-microcontrollers/
od GigaDevice, kteri tvrdi, ze jde o jejich navrh.
https://www.cnx-software.com/2015/12/21/gigadevice-gd32-is-a-faster-software-and-pin-to-pin-stm32-compatible-cortex-m3-mcu/
https://datasheetspdf.com/pdf-file/918744/GigaDevice/GD32F103RBT6/1
Mozna ano, mozna ne. Jedno je ale jiste - jakmile dostanou v Cine k dispozici vyrobni podklady, stavaji se soucasti jejich "narodniho pokladu".

mhi_

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #8 kdy: 09. 12. 2018, 23:15:13 »
Dneska je to tak, ze nektere vybrane soucastky jsou natolik nedostupne, ze prodal-li by mi je bezdomovec nekde pod mostem, hned je koupim. Podotykam, ze nekupujeme stovky, ale v  tomto pripade se jedna(lo) o 10-15 000 ks. Ono celkove motivace zacit pouzivat STM32 je mit zalozni reseni, abychom nebyli ve vendor-lock-in-u. Dalsi pouzitene cipy jsou LPC od NXP, par jich mam, ale vlastne jsem je nikdy poradne nepouzil.

O GigaDevice jsem slysel, jestli maji podklady na vyrobu z nejake fabriky, tak bych i docela veril, ze to bude chodit. Nemyslim si, ze by jinak byli schopni udelat plagiat, navic vsech moznych variant STM32 (redesignem ani zkopirovanim die - to je AFAIK v dnesni dobe zcela nerealne).

Docela bych uvital nejake priklady tech bugu, protoze DMA/INT/periferie jsou presne veci, ktere hodne vyuzivam. Na druhou stranu STM32 ma vetsi vykon nez stavajici MCU, takze to mozna pujde naprogramovat i jednoduseji.

Co nejaka tiny USB-CDC (seriak) knihovna ? Napad by nebyl kde ji vzit?

ad cena: https://www.digikey.com/products/en?keywords=stm32f103c8t6
prvni je $3.03905 @ 2,400 pcs
eBayacky bluepill: US $1.94 za 1 kus ... (vc. postovneho).
nebo jednotlive cipy: https://www.ebay.com/itm/10PCS-MCU-ARM-IC-ST-LQFP-48-STM32F103C8T6-STM32F103C8T6TR/162777693797

(porad jsme na eBayi za relativne kusove polozky, kdyz to bude kupovat mistni cinan, tak se dostane urcite niz)

mrazík

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #9 kdy: 10. 12. 2018, 09:19:03 »

Co nejaka tiny USB-CDC (seriak) knihovna ? Napad by nebyl kde ji vzit?


Třeba na https://github.com/dmitrystu/libusb_stm32 . S LPC od NXP by bylo méně práce, mají většinou USB stack zadrátovaný přímo na čipu. Co se mi celkem osvědčilo je použití C++ místo prostého C. Pokud dodržujete určité zásady, kód je přehlednější, nijak nebobtná a snadněji se to skládá dohromady. Pokud chcete začít od podlahy - tedy od vlastní definice periferií, před časem jsem na to udělal nástroj https://github.com/Kizarm/svdview , svd soubory najdete na stránkách výrobce. Výhodou je, že můžete pro definici bitů v registrech používat makra nebo bitová pole a v C++ pro modifikaci třeba i lambda výrazy. Ale chce to přece jen trochu kontrolovat podle RM, mohou v tom být chyby. Ty hlavičky od STM jsou patrně generovány podobným způsobem, jen tu kontrolu patrně již někdo provedl.

Joskoo

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #10 kdy: 10. 12. 2018, 11:21:35 »
Pri 10k-20k kusoch mozes priamo kontaktovat vyrobcu cipov alebo local sales, dostanes lepsie ceny ako ma mouser, farnell pripadne arrow, ale zalezi od korporatu, niekde su ochotni, niekde sa o teba nebudu zaujimat, zalezi od local sales...

Ist do cinskeho distribucneho kanalu ktory nieje znamy je takmer samovrazda. a dtto pouzivat klony, je s tym viac trapenia a koncovy zisk je nizsi ako by si cakal. Ako bolo spomenute, od orig vyrobcu mas garantovane parametre, od klonov nie...

Ked zoberies 10-15k kusov, spravis 10-15k produktov a nahodou je polka smejd, tak zelam vela radosti pri reklamaciach a debugovani :)). Jednoho casu som "nakupoval" nordic chip z ciny, cena 1/3 oproti orig distributorovi.. okrem toho ze bola pajcnuta maska, tak nefungovalo kopa veci a z casu-na-cas sa chip resetol, zamrzol, whatever neocakavane, co cinan, to urco ina revizia klonu. Ale vsetky mali vyrazene takmer nerozoznatelne od origo package.

Jedna drobna rada... ked ides do mass marketu, tak pouzivat !hocico! kde nevies dohladat 100% povod, tak si rovno daj +100% marzu na produkt, aby si mohol 50% odpisat na reklamacie, dlhe testovanie a pod...

Ak ides do hobby segment-u, diy, startup-u alebo podobnej pracky, tak kludne nakup z ciny, usetris kopu nakladov, povod ti konci od toho koho nakupujes, a mozno procak bude pajc, odpory/kondiky/whatever a pod bude recyklat :)

Odkaz na precitanie, troska starsi, ale isto cina nepolavila ani dnes :) :) https://www.smta.org/chapters/files/Uppermidwest_VendorExpo_SMTAI-Upper-Midwest-Presentation-06-09-11.pdf

 


mhi_

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #11 kdy: 10. 12. 2018, 12:13:01 »
Ehh.. moje otazka ani nebyla tak jestli kupovat v nejakem malem kramku v HK ci na eBayi/Ali/..., ale u nejake vetsi cinske firmy, resp. pobocky zapadni firmy. Ono i v cine obcas vyrabi seriozni veci, takze tam musi jit nakoupit veci "s rodokmenem". Porad verim tomu, ze v CN jsou "jine" ceny, jinak by si tam vyrobci typu ST neskrtli a cinan by porad pouzival tu svoji nejlevnejsi 8051ku.

Samozrejme usetreny $1 na kusu kdyz je riziko ze se vrati navic i treba jen 5% vyrobku je nesmysl. Nicmene usetrit ten dolar 10 000x kdyz by slo o stejnou (funkcni) soucastku, to je uz na par hezkych veceri.

Pokud jde o kontakt primo na vyrobce/distribucni kanal, takto samozrejme kupujeme, ale i u techto mnozstvi pro nas nic moc nedelaji... sleva samozrejme je, ale z meho pohledu nijak zajimava. A  to ani kdyz mam na stole nabidku od konkurencni firmy na nizsi penize a je jasne, ze koupim ekvivalent jinde ... dostalo se mi jednoduche odpovedi, kde okopirovali puvodni cenu a pak brblaji, ze jsme u nich neobjednali.

Dalsi zajimavost je, ze napisete do Farnellu, ze od nich chcete vzit tolik a tolik kusu a cena musi byt treba nizsi nez overitelny DigiKey, ktery to posle hned ... a oni poslou zpatky nabidku na cenu dvakrat vyssi.

PetrM

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #12 kdy: 10. 12. 2018, 15:03:23 »
K STM32:

- STM HAL je kýbl fekálií. Nekompletní, zabugovaný, nedokumentovaný. A nepodporuje ani můj oblíbený FreeRTOS.
- U CMSIS se ukázalo, že ty cyklický závislosti headerů byly na kompilátor moc a než se s tím překopávat, raděj jsem to ignoroval.
- STM dokumentace je kýbl zvratků. Nejenom že tam nic nenajdeš, ale místy se ti ještě zvedne kufr.
Z periferek, asi zatím největší nechápačka byla na I2C u STM32F4xx, jinak to po kratším i delším rozcházení nějak chodilo.

------------------------

Jinak k nákupu - když jsem to před lety řešil, tak EBV. Není to sice z PRC, ale procák za 250CZK od Farnella jsem na 2k ukecal na 60CZK, ale za cenu, že dodávali i ostatní polovodiče.

Výpadky jsme řešili rámcovou smlouvou s dodavateli, kde bylo, že bude pro nás předsnotně k dispozici x brouků přednostně a za dohodnutou cenu. Všechno jde řešit, pokud z ebe dodavatel cítí kšett.

A i kdybys to v PRC koupil zapolovic, cena není všechno. Jeden čas jsem dělal FAE u jednoho (už neexistujícího) distributora a stávalo se i, že došla vadná šarže brouků od Atmela a jak byl zákazník spokojený, že dostal hned ze skladu jiný a řešili jsme to za něho... V PRC na tyhle výhody zapomeň.

mhi_

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #13 kdy: 10. 12. 2018, 17:41:52 »
Moje zkusenosti s Atmelem jsou dost hrozne, nami reportovane chyby u preliminary SoC (meli jsme jejich vyvojove vzorky) byly oznaceny za "feature". Ve finalnim produktu odstranili ochranu pameti proti vycteni s oduvodnenim, ze se lidem procesory zamykaly (rozumejte: zamkli si je a mohli vyhodit desku), tak to uplne odstranili. Na to jsem jim napsal, ze pro nas to nema cenu, to rovnou muzeme pracovat za hrst ryze a cele zdrojaky poslat do ciny ... nechteli slyset o vraceni penez, alespon dodali jiny procesor (ktery nam dodnes lezi v polici).

Na chyby jsem zvykly, u ST jsem zatim ale moc problemu nenasel (jen spis blbe zdokumentovane veci) a pak hromada bugu v tom HALu (nechapu jak to vubec muze nekdo pouzivat, posledni vec - define na zakazani JTAGu/SWO byly treba cele spatne, nekdo otocil bity od MSB k LSB...).

Co mne zajima za periferie: potrebujeme zpravat velmi presne nejaky vstupni datovy signal (PWM), takze cap/compare + timery; pak generovani signalu (pres nejaky PWM controller); a hlavne aby chodil CAN-BUS a USBcko (CDC-seriovy port). Zbytek umim resit pomoci GPIO a mam jiz overene, ze +- funguje. Vlastne jeste UART jsem nepouzil, ale tam snad nemuzou mit chybu. Rad bych pouzil interni oscilator (nevim zda to ma toleranci na CAN ci USB). Samozrejme velmi dulezite mit nejake unique ID (lepsi nez tech 96 bitu, ktere cinan asi stejne umi preprogramovat) a zakladni ochranu proti vycteni (pres JTAG/SWD).

Varianta je samozrejme stale jeste i NXP.

Kiwi

Re:STM32 - minimalisticky vyvoj, chyby, objednavky
« Odpověď #14 kdy: 10. 12. 2018, 20:08:43 »
To si nevyberete. Atmel: snad jedině ty nejmenší osmibitové broučky na hobbybastlení, kdybych to viděl v profi zařízení, asi bych to rovnou bez dalšího označil jako odpad. To už raději Microchip. ST: HAL - souhlas s tím, co tu bylo řečeno, dokumentace - souhlas s tím, co tu bylo řečeno, spolehlivost - insider z této společnosti mě u piva varoval před jejich vlastními výrobky. Tak nevím.. Toshiba? NXP?