Fórum témák

» Több friss téma
Fórum » ARM - Miértek hogyanok
 
Témaindító: gtk, idő: Jún 26, 2007
Lapozás: OK   166 / 177
(#) benjami válasza rolandgw hozzászólására (») Jún 26, 2022 /
 
A VSCode - CMake kombinációba nekem beletört a bicskám (bár ha jól emlékszem a debugger funkciókat nem sikerült csak működésre bírnom, a fordító az ment). Viszont a PlatformIO remekül működik a VSCode alatt. Ha nem ragaszkodsz minden áron a Pico SDK - CMake kombinációhoz próbáld ki ezt. A Debug funkcióhoz egy másik Pico-t használok, arra a picoprobe.uf2-t kell feltölteni, és összekötni a cél pico board-al.
(#) rolandgw válasza benjami hozzászólására (») Jún 26, 2022 /
 
Nem kaptam ST-t, azért vásároltam, de egész jó és olcsó. Később jöttem rá, hogy kettőt kellett volna. Megpróbálom a PlatformIO-t is, bár lehet, hogy MicroPython lesz a vége.
Köszönöm!
(#) rolandgw válasza benjami hozzászólására (») Jún 28, 2022 /
 
Egy kérdés még, ha erre jársz. A PIO periféria programozása megoldható a platformio arduino-ban?
(#) vorosj hozzászólása Jún 28, 2022 /
 
Az Arduino alapja C++, néhány a kezdést könnyítő kiegészítéssel. A ténylegest fordítást ugyanaz a compiler végzi, ami közvetlenül c++-ban írt program esetében is működne. Emiatt minden olyan kódot be lehet illeszteni, ami az eredeti C környezetben működőképes.
Ha egy adott feladatra van kész Arduino library, az persze a legegyszerűbb. Ha nincs, akkor vagy ugyanott, mintha natívan c-ben vagy c++-ban programoznál. Meg kell nézni a megfelelő gyártó által adott periféria library-t, ha abban nincs, akkor azt, hogy valaki esetleg közzétett-e hasonlót c-ben vagy c++-ban, ha az sincs, akkor végső esetben a hardware leírás alapján kell összehozni.
(#) rolandgw válasza vorosj hozzászólására (») Jún 28, 2022 /
 
Az egyedisége okán kérdeztem a PIO-t, ha nekem szól a válaszod.
Az SDK-ban létrehoznak egy .pio fájlt és a Cmake-ben pico_generate_pio_header-el generálnak header fájlt.
Erre lettem volna kíváncsi, hogy SDK nélkül hogy megy, illetve megoldott-e?
(#) vorosj hozzászólása Jún 28, 2022 /
 
Ezt próbáltam leírni. Több eset van:
1. valaki megírt olyan Arduino library-t, amely tartalmaz PIO kódot is, ez esetben nem kell a használatához semmi különös, minden pio specifikus kód az objektum belügye
Pl. egy minta arra, hogy hogyan néz ki a pio specifikus kód Arduino programon belül:
https://github.com/pierremolinaro/rp2040-charlieplexing
2. valaki megírt egy kódot az SDK-val, amit leközölt, de nem Arduino library formájában - ezt különösebb nehézség nélkül be lehet illeszteni az Arduino programba (mert ugyanaz a compiler ugyanúgy fordít a végén), ebben segíthet pl. a fenti példa
3. kifejezetten egyedi pio programozásra tudomásom szerint az Arduino nem ad saját eszközt, ha erre van szükség, ugyanazt ugyanúgy kell csinálni, mintha nem Arduino-ban lennél.
(#) benjami válasza rolandgw hozzászólására (») Jún 28, 2022 /
 
Igen, használható. A project-hez tartozó platformio.ini-be kell beírni ilyen módon. Mondjuk én eddig csak baremetal framework módon használtam, de szerintem arduino módban is kellene működnie.
Amúgy ez alapján telepítettem a környezetet.
(#) rolandgw válasza benjami hozzászólására (») Jún 28, 2022 /
 
Köszönöm!
(#) Jonni hozzászólása Jún 29, 2022 /
 
Sziasztok

Egy kódot akartam feltölteni NUCLEO-F302R8 ra arduino ide-vel de már fordítás közben elakadt ennél a sornál
  1. LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

  1. //YWROBOT
  2. //Compatible with the Arduino IDE 1.0
  3. //Library version:1.1
  4. #include <Wire.h>
  5. #include <LiquidCrystal_I2C.h>
  6.  
  7. #if defined(ARDUINO) && ARDUINO >= 100
  8. #define printByte(args)  write(args);
  9. #else
  10. #define printByte(args)  print(args,BYTE);
  11. #endif
  12.  
  13. uint8_t bell[8]  = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4};
  14. uint8_t note[8]  = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0};
  15. uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0};
  16. uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};
  17. uint8_t duck[8]  = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0};
  18. uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0};
  19. uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0};
  20. uint8_t retarrow[8] = { 0x1,0x1,0x5,0x9,0x1f,0x8,0x4};
  21.  
  22. LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
  23.  
  24. void setup()
  25. {
  26.   lcd.init();                      // initialize the lcd
  27.   lcd.backlight();
  28.  
  29.   lcd.createChar(0, bell);
  30.   lcd.createChar(1, note);
  31.   lcd.createChar(2, clock);
  32.   lcd.createChar(3, heart);
  33.   lcd.createChar(4, duck);
  34.   lcd.createChar(5, check);
  35.   lcd.createChar(6, cross);
  36.   lcd.createChar(7, retarrow);
  37.   lcd.home();
  38.  
  39.   lcd.print("Hello world...");
  40.   lcd.setCursor(0, 1);
  41.   lcd.print(" i ");
  42.   lcd.printByte(3);
  43.   lcd.print(" arduinos!");
  44.   delay(5000);
  45.   displayKeyCodes();
  46.  
  47. }
  48.  
  49. // display all keycodes
  50. void displayKeyCodes(void) {
  51.   uint8_t i = 0;
  52.   while (1) {
  53.     lcd.clear();
  54.     lcd.print("Codes 0x"); lcd.print(i, HEX);
  55.     lcd.print("-0x"); lcd.print(i+16, HEX);
  56.     lcd.setCursor(0, 1);
  57.     for (int j=0; j<16; j++) {
  58.       lcd.printByte(i+j);
  59.     }
  60.     i+=16;
  61.    
  62.     delay(4000);
  63.   }
  64. }
  65.  
  66. void loop()
  67. {
  68.  
  69. }

viszont ha átrakom arduino nano-ra simán hiba nélkül lefordítja.
Ilyenkor mi lehet a baja?
Alul pirossal ezt a hibaüzenetet írja

Arduino: 1.8.18 (Windows 10), Alaplap:"Nucleo-64, Nucleo F302R8, Mass Storage, Enabled (generic 'Serial'), CDC (generic 'Serial' supersede U(S)ART), Low/Full Speed, Smallest (-Os default), Newlib Nano (default)"

CustomChars:22:31: error: invalid conversion from 'int' to 't_backlighPol' [-fpermissive]

In file included from C:\Users\User\Documents\Arduino\kész programok\libraries\LiquidCrystal_I2C\examples\CustomChars\CustomChars.pde:5:

C:\Users\User\Documents\Arduino\libraries\New-LiquidCrystal-master/LiquidCrystal_I2C.h:53:76: note: initializing argument 3 of 'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, t_backlighPol)'

53 | LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol);

| ~~~~~~~~~~~~~~^~~

C:\Users\User\Documents\Arduino\kész programok\libraries\LiquidCrystal_I2C\examples\CustomChars\CustomChars.pde: In function 'void setup()':

CustomChars:26:12: error: 'int LiquidCrystal_I2C::init()' is private within this context

In file included from C:\Users\User\Documents\Arduino\kész programok\libraries\LiquidCrystal_I2C\examples\CustomChars\CustomChars.pde:5:

C:\Users\User\Documents\Arduino\libraries\New-LiquidCrystal-master/LiquidCrystal_I2C.h:154:9: note: declared private here

154 | int init();

| ^~~~

Többszörös könyvtárak találhatók ehhez: "LiquidCrystal_I2C.h"

Használt: C:\Users\User\Documents\Arduino\libraries\New-LiquidCrystal-master

Nem használt: C:\Users\User\Documents\Arduino\libraries\LiquidCrystal_I2C

exit status 1

invalid conversion from 'int' to 't_backlighPol' [-fpermissive]

Ennek a jelentésnek több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció engedélyezésével a Fájl -> Beállítások-ban.
(#) icserny válasza Jonni hozzászólására (») Jún 29, 2022 /
 
Idézet:
„LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display”

A hibajelzések szerint a te esetedben ezeknek a paramétereknek teljesen más a szerepe (és az adattípusa):
  1. LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol);


Ennek oka pedig az lehet, hogy a LiquidCrystal_I2C helyett a New-LiquidCrystal programkönyvtárat akarja befordítani a programodhoz.

Szerencsétlen módon mindkettőnek LiquidCrystal_I2C.h nevű a fejléc állománya. Ezt a kettősséget valahogy fel kellene oldani.
A hozzászólás módosítva: Jún 29, 2022
(#) Jonni válasza icserny hozzászólására (») Jún 29, 2022 /
 
Ha törölni tudnám New-LiquidCrystal -t az megoldás lenne?
(#) Jonni válasza icserny hozzászólására (») Jún 29, 2022 /
 
Kitöröltem átmenetileg New-LiquidCrystal könyvtárat. Alulra kiirta pirossal hogy
"FIGYELEM: A(z) LiquidCrystal_I2C könyvtár avr architektúrán való futást igényel és inkompatibilis lehet a jelenlegi alaplapoddal, ami stm32 architektúrát futtat."
de ennek ellenére jól müködik minden.

Már csak az a kérdés hogy fog-e nekem hiányozni az a könyvtár
(#) Mate12345 hozzászólása Júl 7, 2022 /
 
Sziasztok,

Bocs, ha amatőr a kérdésem, de teljesen új vagyok az ARM-ben, eddig inkább PIC-es voltam.
Megörököltem egy NYÁK-ot, amin csücsül egy FSC-BT-630 modul. Van neki egy TC2050-CTX-NL csatlakozója a NYÁK-on, amin keresztül tudom programozni.
El kellene végeznem néhány mérést, amihez újra kellene programoznom, viszont nem tudom, mivel. A doksik alapján egy J-Link Lite CortexM-9-re van szükségem és egy TC2050-CTX-NL kábelre. Előbbire a Farnell-nél rákeresve 200.000Ft alatt nem sok minden volt, amit kicsit sokallok egy programozóért, nem ehhez szoktam.

Van esetleg tapasztalatotok az FSC-BT-630 modullal? Mit javasoltok programozásra?
(#) vargham válasza Mate12345 hozzászólására (») Júl 7, 2022 / 1
 
J-Link ára ennyi.
(#) vargham válasza Mate12345 hozzászólására (») Júl 7, 2022 / 1
 
Vegyél egy ilyet:
NRF52-DK
Csak 14 ezer forint. Ugyanaz a mikrokontroller van rajta, ráépített J-Link debuggerrel. Ha jól emlékszem, ezt a debuggert másik panelen lévő mikrokontrollerrel is használhatod. A kikötés csak annyi, hogy az is Nordic gyártmány legyen.
(#) Mate12345 válasza vargham hozzászólására (») Júl 7, 2022 /
 
Köszönöm. Ezt mintha pont nekem találták volna ki.
(#) vorosj válasza Mate12345 hozzászólására (») Júl 7, 2022 / 1
 
A J-Linknek van Edu változata, amely egyetlen lényeges korlátozást tartalmaz: nem használható üzleti célra.
Én hobby célra használom a J-Link Edu Mini-t (ez kisebb, olcsóbb és valamivel lassúbb), meg a J-Link Edu-t is, amely egy az egyben a J-Link, kivéve a korlátozást.
Az Edu Mini 10e Ft alatt van normálisan, de legtöbb helyen kifogyott. Az ebay-en van 20-ért.
Ezek minden, a Segger által támogatott uC-hez jók.
A hozzászólás módosítva: Júl 7, 2022
(#) vorosj válasza vorosj hozzászólására (») Júl 8, 2022 / 2
 
Keresgéltem, itt a link szerint raktáron van. A Google találta, semmit se tudok a boltról.
https://www.epromirok.hu/index.php?route=product/product&produc...d=1087
(#) Jonni hozzászólása Júl 10, 2022 /
 
Sziasztok

NUCLEO-F302R8-al kéne egy li-po akku feszültségét megmérjem de az analog bemenetem csak 3,3V-t fogadhat, viszont az aksi akár 4,2 V-ra is feltöltődik. Meg lehet oldani a mérést valahogy?
(#) Peppe válasza Jonni hozzászólására (») Júl 10, 2022 / 2
 
feszültségosztó? Ha le felezed a 4.2V-ot, 2,1V a max ami az STM lábára jut. A többi matek.
A hozzászólás módosítva: Júl 10, 2022
(#) AxaGame hozzászólása Szept 10, 2022 /
 
Sziasztok!

Ismerkedem az STM32 arm rendszerrel már egy ideje. Ezzel kapcsolatban lenne 2 kérdésem.

1.) Korábban használtam kínai klón stlink2 programozót. Zöldfülű révén frissítettem az stm cube fejlesztőt, majd ezt követően nem tudom a programozót használni, nem tudom a firmware frissítést megtenni. Lehet ezen valamit segíteni, milyen stm programozó verziót kellene visszatöltenem, vagy kukázzam a programozót?

2.) Vettem gyári stlink v3mod programozót. Ezzel eljutottam addig, hogy 5 vezetékes bekötés után (Vcc, Gnd, Rst, SWD, SWC) legalább a cube programozó hajlandó letölteni a kódot az ic-be. Viszont a cube fejlesztő nem látja a céleszközt (blue pill, stm32f103c6), így nem is tudom a debug funkciót sem használni. Van valakinek tippje, hogy mit kellene még bekötnöm, hogy ez a programozó teljes mértékben működjön?

Üdv!
Zoli
(#) Jonni válasza AxaGame hozzászólására (») Szept 10, 2022 / 1
 
Szia

Bluepill-el nekem is gyült már meg a bajom. Az enyémen sanszos , hogy nem eredeti a csipp. Azt tanácsolták , hogy inkább használjak NUCLEO-t . Amióta ilyet használok azóta nincs gond . Az egyetlen hátránya hogy ez a panel nagyobb a bluepillnél. És elönye meg hogy, több a használható kivezetés (64) , jó minőség és biztos ,hogy eredeti STM csipp van rajta, és ezzel is lehet debugolni (rá van épitve a panelra a debugger).


Mondjuk az nagyon furcsa letöltöd a kódot az ic-be de a céleszközt nem látja
(#) toto válasza AxaGame hozzászólására (») Szept 10, 2022 /
 
Szia!
Sajnos a kínaiak mindenféle hamisítványt ráraknak a Bluepill-re, különben hogy is lehetne egy ilyen modul 2 dollár, amikor csak az eredeti mikrokontroller legalább a duplája. Ugyanezt megcsinálják az ST-linkkel is. Aztán vagy működik, vagy nem. (nekem többnyire igen, de néha belefutok hasonlóba, mint te)
1.
a, Kipróbálhatod a legrégebbi ST-link szoftvert, amit a neten találsz, talán megoldódik a probléma.(feltételezve, hogy a szoftver felismerte, hogy nem eredeti az STM32, és megtagadta a működést)
b, Kipróbálhatod az Embitz IDE-t, az saját maga programozza az STM32-t az ST app-ja nélkül (>=2.10). Azt nem tudom, hogy az ST driver kell-e hozzá. Nekem a klónok is működnek vele.
c, Esetleg kipróbálhatod ezt: Open-source STlink Sajnos Windows alatt nincs GUI, csak parancssoros megoldás.(én nem próbáltam még, de linux alatt többen is használják)
A hozzászólás módosítva: Szept 10, 2022
(#) toto válasza toto hozzászólására (») Szept 10, 2022 /
 
Még annyit, hogy nekem ez a legrégebbi verzió, ami megvan: STM32 ST-LINK Utility_v3.3.0
Ha kell, el tudom küldeni.
(#) vargham válasza toto hozzászólására (») Szept 11, 2022 /
 
4-5 éve, az alkatrészhiány előtt még jók voltak ezek a kínai cuccok. Sajnos mostanra szinte minden rendelés használhatatlan. Az utóbbi két évben kifejezetten tesztelésre vettem bluepilleket, egyiken sem volt eredeti STM32. Legtöbbször vissza is adták a pénzt, de ez nem segít azon, hogy nem működik az eszköz. Van, hogy bevallottan klón az IC, de sokszor átírják STM32-re az IC jelölését...
(#) toto válasza AxaGame hozzászólására (») Szept 11, 2022 /
 
Igen, itt két dolog lehet: az egyik - amire elsőre gondoltam - hogy a programozó nem hajlandó programozni, mert felismerte, hogy nem eredeti a mikrokontroller, de a másik az az, amit vargham kolléga ír. Vagyis elszaporodtak a gyenge utánzatok, amiket másképp kell programozni:
Régen általában csak a Gigadevice IC-it használták, ami szinte teljesen kompatibilis volt, de mostanra megszaporodott a választék a hamisítványokból.
fake STM3F103C8T6 1.
fake STM32F103C8T6 2.
(#) AxaGame hozzászólása Szept 11, 2022 /
 
Sziasztok!

Köszönöm mindenkinek a segítséget, építő jellegű hozzászólást!

Egyenlőre elengedném a klón STM32 ic és a klón stlinkv2 programozót.

Mint említettem, 5 vezetéken bekötöttem a gyári stlink-v3mod panelt a bluepill-hez. Kellene még valamit bekötni ezen kívül? Láttam olyan áramköri rajzot is, hogy az egyik gnd csatlakozási pontot egy ellenálláson keresztül húzzák le a (pld. GNDDetect)

Jonni írta, furcsa, hogy a programozó app látja a panel, a fejlesztő nem.
Igen, nekem is furcsa. Kiírt üzenet: dev_target_cmd_err.
Az is furcsa, hogy a programozó egy régebbi frameware-t telepít magának, s a fejlesztő azt frissíti.

Z.
(#) vorosj válasza AxaGame hozzászólására (») Szept 19, 2022 / 2
 
Ha a Bluepill-en klón STM32 van, akkor az STLink V3 nem jó hozzá, mert felismeri hogy hamis, és nem hajlandó programozni. Az olcsó klón STLink V2-k viszont programozzák az STLink Utility-vel.

Nincs szükség 5 vezetékre, az a 4 kell csak, amely a Bluepill usb-vel átellenes végére van kivezetve: Gnd, SWClk, SWIO, 3.3V.

Előfordul, hogy a chipben sikerül bebillenteni valamilyen flaget, ami miatt nem sikerül se törölni, se programozni. Ilyenkor az segít, hogy az STLink Utility-ben hw resetet kell állítani, indítani a törlést, és jó ütemben kézzel resetet nyomni. El kell találni a megfelelő időpontot, néhány próba után sikerül.

Legkevesebb 5 féle különböző hamis Bluepill-em van, köztük olyan is, amelyen STM32 a felirat, másokon becsületesen valami más, GD, CHS stb. Valamennyit tudom programozni és debuggolni az Stlinkv2-vel és Jlink-kel is. Némelyik klónon nem úgy működik a DMA, mint az eredetin, más különbségbe eddig nem futottam bele.

Az STMCubeIde fejlesztői környezet szintén hajlamos felismerni a klónokat, és megtagadni az együttműködést. Ezért - meg mert nem is túl jól sikerült IDE - nem javaslom a használatát. Nekem a Keil tetszik legjobban, ha sima C projectről van szó, a CubeMX ezzel is együttműködik.
Jó az Embitz is, vagy ha Jlinked van, a Segger Embedded Studio.

Ha Arduino rendszer, akkor pedig a PlatformIO & VSCode a legjobb. A PIO default beállításként OpenOCD-t használ az STLInk-hez, ez pedig lekérdezi a chip ID-t. Ha klón, át kell állítani a .ini-ben.
upload_flags = -c set CPUTAPID 0x2ba01477
(#) vorosj válasza vorosj hozzászólására (») Szept 19, 2022 / 1
 
Még egy különbség jutott eszembe, valamelyik klónban nincs meg minden timer. Nem emlékszem a típusra, egy olyan boardon volt, aminek a lábkiosztása se azonos a Bluepill-lel.

Megjegyzem, hogy az utóbbi 6-8 évben beszerzett Bluepill-ek szinte biztosan klónok. Van néhány biztosan eredeti példányom, ezeket gondosan megjelöltem. Ha fejlesztek valami újat, egy ilyennel dolgozom. Mikor kész, keresek egy klónt, amin rendesen fut, és megtartom az igazit fejlesztői példánynak.
Ha valaki most szeretne eredetit, Nucleo board-ot kell venni, vagy megbízható cégtől horror áron chipet.

Hirdetnek Bluepill-eket olcsón STM32F103C6T6-tal. Ezeken kevesebb a flash és a RAM, de a legtöbb feladatra ez is bőven elég. Nincs ilyenem, nem tudom, ezek is hamisak-e.

A Gigabyte GD-vel kezdődő klónok kb. a legjobbak, nem tudok kompatibilitás hibáról. Érdekesség, hogy a kód RAM-ból fut, emiatt gyorsabb a fetch, ugyanaz a kód ugyanolyan órajel mellett valamivel gyorsabban fut.
(#) cua válasza vorosj hozzászólására (») Szept 19, 2022 /
 
En csak ilyen sideliner vagyok, (egyelore) nem hasznalok semmi STM mcu-t. Erdeklodessel kovetem azt a klon/nem klon mizeriat bluepill ugyben.
Tulajdonkepp mi a kulonbseg a bluepill es a nucleo kozott? Nucleo kaphato megbizhato forrasbol, raadasul nagy rakat mcu is elerheto neves beszallitoknal (STM partnerek), feltetelezem 'valodi' nem hamisitvany.
Van valami kulonleges a Bluepill-ben, vagy a hasznalt mcu-ban ami nekem elsore nem jon le?
Következő: »»   166 / 177
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem