- Vodafone mobilszolgáltatások
- Bivalyerős lett a Poco F6 és F6 Pro
- Xiaomi Mi 10T Pro - a házon belüli ellenfél
- Redmi Note 12 Pro - nem tolták túl
- Samsung Galaxy S23 Ultra - non plus ultra
- Android jelkod törlése , hardreset utan.
- Megvásárolható a legolcsóbb kagylótelefon
- Milyen okostelefont vegyek?
- Egyre közelebb a Poco F6 startja
- iPhone topik
Hirdetés
-
1000 Hz-es játékos monitor TCL CSOT recept szerint
ph A vállalat prototípusa kihagyott egy-két lépcsőfokot, ugyanis az elképesztő képfrissítési tempóhoz 4K-t párosít.
-
Fellebbezett az EU-ban az Apple, amelyet kongói botrány fenyeget
it Miközben az EU-ban 1,84 milliárd eurós, trösztellenes bírság ellen fellebbezett az Apple, addig a Kongói Demokratikus Köztársaság ügyvédei új bizonyítékokkal szolgáltak arra vonatkozóan, hogy az almás cég konfliktuszónákból szerzi az ellátási láncnak a nyersanyagokat.
-
Újra kiadták a Redmi Pad Prót
ma Néhol Poco Pad a neve, a jókora kijelző és a versenyképes árazás maradt.
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
#70211840
törölt tag
Sziasztok.
Teljesen kezdőként szeretnék foglalkozni mikrokontrollerrel.
A kiinduló ötletet a napokban tönkretett "DSO-138 szerű" mini szkópom hozta.
Az én példányom annyira hamisítvány, hogy a hivatalos STM32F103C8T6 helyett CH32F103C8T6 kontrollerrel van szerelve és a felület is más volt, mint a többi ilyen szkópon. Én nem tudtam erről és egy nem hozzá való, hivatalos FW-et raktam rá STLinkV2-vel. Persze nem indul, csak pár FW infót és "booting..." feliratot látok, de a felület már nem jön be.
Az eredeti FW pedig nincs meg, mert ReadProtect volt. Bootloader is másképp van ezen a kontrolleren, a sima UART módszerrel nem is látja például a FlashLoader Demonstrator.Ez alapján elindult egy gondolatmenet, hogy mi lenne, ha elkezdeném magam fejleszteni és programozni a kontrollert, felhasználva a szkóp digitális részét és valamit kiírni vele a kijelzőre. Például egy sima óra is lehetne. Aztán később kimenet-bemenet használata nyomógombokkal, mondjuk az óra beállításáshoz. Szóval ilyesmi...
Az induláshoz szeretnék segítséget kérni tőletek. Milyen eszközök (IDE, Flash, etc) és dokumentáció kellene ahhoz, hogy az Arm vonalon elindulhassak és konkrétan ezt az eszközt fel tudjam használni valami szöveg megjelenítésére?
(Win és Linux rendszereket használok)Köszönöm.
-
#70211840
törölt tag
Szia, köszönöm a válaszod.
Igen, ahogy fentebb is írtam az "ST FlashLoader Demonstrator" nevű program, ami USB-UART porton gyakorlatilag soros módon flash-elné, az nem kompatibilis vele. Erre a saját "WCHISPTool" nevű programja kell vagy ennél működik az USB is elméletileg. Viszont én STLink V2-vel flash-eltem SWD interfészen keresztül, amivel debug-olni is lehet. Azzal szépen működik megy az írás/olvasás. Viszont sajnos nem 100%-ig kompatibilis az ST-vel a chip, gondolom ez lehet a probléma okai is amiért nem indul a FW.
(Közben egy lengyel oldalon tökéletesen ugyanúgy járt valaki, mint én)Arduino IDE-t megnézem, köszönöm.
A neten még ezt találtam ehhez a chip-hez:
"A Keil IDE-hez elérhető dedikált CPU library, ezzel a legtöbb eltérés eltűntethető, a kód kifejezetten erre a mikrokontrollerre optimalizálható."Remélem akkor majd ekkold fórumtárs is olvassa és lesz pár meglátása a témában.
-
#70211840
törölt tag
Sajnos nem tudom milyen vezérlő van a kijelzőhöz. Annyi biztos, hogy az eredeti (Jyetech) FW-el is beindul a kijező, kiírja a firmware adatokat és a cég logóját, de a "booting..." felirat ott marad és nem indul be a scope. [kép] (netes kép, más is futott már bele ugyanebbe)
Itt egy pdf, ami az eredeti kapcsolást tartalmazza. Ezt az enyémmel már összenéztem, az STM32F103 kontrollert leszámítva ugyanilyen.
Sanszos amúgy, hogy kicserélve ST-re a kínai chip-et, simán működne az eszköz.
Viszont sajnos az smd forrasztási készségemen túlmutat ez a lábsűrűség.
Még forró levegővel le is tudnám venni róla a régit, de az ST-t már nem tudnám ráforrasztani.[ Szerkesztve ]
-
#70211840
törölt tag
válasz ekkold #18080 üzenetére
Köszönöm az infokat.
Telepítettem at Arduino 1.8.19-et. Az STM32 támogatáshoz nekem kellett egy linket adni egy json-höz, hogy letöltse a paramétereket.
Link: http://dan.drown.org/stm32duino/package_STM32duino_index.json
Ma este megyek 2db STM32F103C8T6 (Bluepill) eszközért. Remélem eredeti ST van rajtuk
Illetve vettem egy olcsó kijelzőt is, hátha a szkóp kijelzőjét problémás lesz beindítani.Az oscilloszkóp kit amúgy a Hestore-ból származik, ott adták ezzel a chippel a készletet.
Elméletileg 64kB a flash ebben is és 20kB a RAM. Próbáltam egy OpenSource FW-t feltenni, de az STLink programja ott azonnal jelezte, hogy nem fér bele a flash-be. Viszont a gyári FW simán belemegy, mert STM32F103C8T6 van az eredetiben, ami szintén ugyanilyen paraméterekkel bír. Működésbeli különbség van viszont a kettő között és szerintem ezért nem fut rajta az eredeti. Csere biztosan megoldja a problémát, olvastam a neten már erről. Sőt, van aki STM32F103CBT6 verzióra cserélte, amibe belefér a DLO-138 OpenSource firmware is. Átalakítható két csatornára is akár a készlet.
Mindegy, ez a jövő zenéje. -
#70211840
törölt tag
Bluepill panelt programozni melyik eszközt volna kényelmesebb használnom?
1. CH341A Pro (moddolva 3.3V IO-ra) [kép]
2. STLink V2 [kép]Úgy tudom a "2." megoldással van lehetőség program közbeni debug-ra is. Még nem tudom miként (a mai nappal együtt már 2 napja foglalkozom a témával ), de esetleg a későbbiekben jól jöhet.
Melyik megoldást javasoljátok? -
#70211840
törölt tag
válasz sirály12 #18094 üzenetére
Köszönöm a tippet. Ki is próbáltam. Kényelmes, hogy ezzel nem kell reset-elni, hanem csak feltöltöm és csinál resetet automatikusan.
Ha mondjuk szükségem van fejlesztés közben 5V-ra is, akkor megtáplálhatom a microUSB-n keresztül miközben az STLink is kapcsolódva van vagy ilyenkor le kell húznom az STLink-ről a 3.3V-os pint?
Gondolom microUSB esetén eleve kap a chip 3.3V-ot a saját stabilizátoráról, nem? -
#70211840
törölt tag
válasz sirály12 #18096 üzenetére
Igazából megfelelő lesz az USB csak a tápláláshoz és az STLink a programozáshoz.
Az USB tápfesz egy külön 5V adapterről megy, nem a PC-ről. Ezért volt fontos, hogy ne az STLink adja a 3.3VDC-t.Közben felmerült egy furcsaság. Az STLink Utility-ben ránézve a kártyára a program 128kB Flash-t jelez, miközben F103C8 a chip. Szóval valami nem klappol. Annak nem csak 64KB-nak kellene lenni? (A 20kB RAM az passzol)
-
#70211840
törölt tag
Azt hiszem elakadtam, szeretnék segítséget kérni.
Szerettem volna az STM32F103-hoz a Open-Smart kijelzőmet illeszteni a következő Library segítségével: [link]
Viszont valamiért az ArduinoIDE inkompatibilis-nek látja. [kép]
Fordítok vele binárist, de feltöltve nem jelenik meg semmi csak fehér képet látok. Próbáltam pár example-t, serial konzolon figyelve jönnek üzenetek, de nem látszik amit éppen csinál a konzol szerint.
A bekötést többször ellenőriztem, a "STM32_TFT_8bit.h" header-ben is a "GPIOA" az aktív.Mit szúrok el? Valamit helytelenül próbálok használni?
-
#70211840
törölt tag
válasz sirály12 #18099 üzenetére
Most olvastam bele és a leírás szerint tesztelték open-Smart ILI9225-el, amilyen az enyém is.
[link]Tested TFT
ILI9325 2.4inch 240x320 TFT-Shield
ILI9341 2.4inch 240x320 TFT-Shield
ILI9342 2.4inch 240x320 TFT-Shield
SPFD5408 2.4inch 240x320 TFT-Shield
R61505 2.4inch 240x320 TFT-Shield
ST7783 2.4inch 240x320 TFT-Shield
LGDP4532 2.4inch 240x320 TFT-Shield
R61509V 3.6inch 240x400 TFT-Shield
ST7793 3.6inch 240x400 TFT-Shield
ILI9481 3.5inch 320x480 TFT-Shield
ILI9486 3.5inch 320x480 TFT-Shield
RM68140 3.95inch 320x480 TFT-Shield
ST7796 3.95inch 320x480 TFT-Shield
OPEN-SMART ILI9225 TFT-Shield
OPEN-SMART ILI9327 TFT-Shield
OPEN-SMART ILI9340 TFT-ShieldMégis valamit elszúrok ...
#18101: A kódban feltünt valami itt: [link]
"RD -- 3.3V" - Ez mi lehet a display-en? Mert nálam ez most a B3-ra van kötve egy leírás szerint.[ Szerkesztve ]
-
#70211840
törölt tag
válasz #70211840 #18102 üzenetére
Nem sikerül fordítanom sem a programot, mert nincs definiálva és én sem értem, hogy honnét jönne az A1, A2, A3 az 50-51-52 sorokban. ( [link] )
// Remember to change the model parameter to suit your display module!
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_RS A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
//#define LCD_RST A0 //
-
#70211840
törölt tag
válasz Janos250 #18104 üzenetére
Nem értem, hogy ez mit takar. Ergo nem tudom definiálni sem a megfelelő értékre.
Mert ugye ilyet hogy pl. PB6 nem írthatok az A3 helyett, mivel ez sincs definiálva.
A megjegyzásben lévő "... Analog x" sem világos. Ez esetleg valami Arduino-s dolog? Ilyen van a "Bluepill"-en? Valamiért az ILI9225 8-bit parallel kifog rajtam.Pár szóban esetleg útba tudnál igazítani, hogy mit jelentenek ezek?
(Az ILI9341-et 8-bit parallel már sikerült működésre bírnom egy másik Lib-el.)
[ Szerkesztve ]
-
#70211840
törölt tag
válasz ekkold #18106 üzenetére
Köszönöm. Megnyitva az UTFT.cpp fájlt, látok include-olva egy <pins_arduino.h> shared header-t. Gondolom ennek lehet valami köze hozzá, hogy lehet ilyet csinálni.
Sajnos itt-ott hibába futottam még így is, ami miatt nem ment a build.
Aztán közben találtam ebből a library-ból egy újyabb verziót. [link]
Ebből viszont hiányzik az ILI92225 TFT. De a másikból hozzáadtam.Az újabb verziónak kicsit több a HW támogatottsága, de még így is:
UTFT\UTFT.cpp:85:4: error: #error "Unsupported ARM MCU!"
Ez akkor ennyi? STM32-n nem is használható?
-
#70211840
törölt tag
válasz Janos250 #18111 üzenetére
Először is köszönöm szépen a segítő szándékot. Nagy zöldfülű vagyok még a témában, de próbálok jobb lenni. "Túrom" a netet és beleakadok ebbe-abba.
Igen, a Boards Manager rendben van, látja az STM32 specifikus dolgokat, ezek is vannak kiválasztva, működnek is feltöltések serial és stlink módon is. Egy ILI9341 parallel TFT-t már sikerült is beüzemelnem a "Blue Pill"-el valami máshonnét összeszedett library-val, de majd megpróbálkozom a hivatalosan elérhető/letölthető verziókkal. Ez a kijelző eredetileg a DSO-138 oszcilloszkóp kijelzője volt és ezért parallel SPI helyett. Gondolom oda kellett a gyorssabb rajzolás.
A most probált kijelző, az ILI9225 (2.0") szintén parallel kivezetésű. Az általad is említett ILI9225 library viszont én úgy olvasom, hogy az SPI protokollal készült TFT-t képes kezelni. Ezért keresgélek erre-arra, hogy parallel módon használni tudjam.
Viszont tény, hogy kezdek kicsit már összezavarodni a dolgokban
Szóval jól látod a helyzetet. A különböző helyeken látott megoldások máshogy kötik össze a TFT-t a BluePill-el, ezért ide-oda kötözgetek. Sok library-ban amiket kipróbálok nem látom hol lehet minden pin kapcsolatot megadni. Az egyiken máshol van például a WR/RD páros, mint a másikon. Persze, ha meg lehet valahol adni ugyanazt a kivezetés, az jó. De amikor nem lehet (vagy épp nem találom) akkor marad a manuális átkötés.A "GFX Library for Arduino"-ban van például a "HelloWorld" example.
Ez alaphelyzetben egy default bus/kijelző kombinációt tölt be, de elméletileg testreszabható.
Látok egy ilyen bus fájlt: Arduino_STM32PAR8.h
Egy ilyen kijelző fájlt: Arduino_ILI9225.h
Nem lehetne ezeket összekombinálni és így lefordítani?(sorry az értetlenkedésem miatt...)
-
#70211840
törölt tag
válasz Janos250 #18115 üzenetére
Azt hiszem az ILI9225-Parallel-8bit projectet egy kicsit felfüggesztem. Amíg nem jövök bele jobban a dolgokba, talán az SPI protokolnál maradok.
A Nokia-5110 kijelzőt szépen sikerült már működésre bírnom SPI-n.A jelenlegi célpont egy 2.8" ILI9341 (240x320) SPI kijelző. Touch nélküli csak kijelző.
Ilyen: https://modulshop.hu/28-szines-tft-lcd-kijelzo-240x320-spi-arduino-788Az alábbi bekötéssel tesztelem:
TFT_DC PA3
TFT_CS PA4
TFT_RST PA0
TFT_CLK PA5
TFT_MISO PA6
TFT_MOSI PA7Először letöltöttem a Library Manager-ben az Adafruit GFX Library + Adafruit ILI9341 párost.
Az "examples/graphicstest/graphicstest.ino" ) fájt fordítottam, ami nálam az alábbi paraméterekkel példányosítja az "Adafruit_ILI9341" osztályt:// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
// If using the breakout, change pins as desired
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
Lefordítva a SW SPI-vel rendben működik (persze jó lassan), de amikor a HW SPI-re váltanék, akkor nincs kép.
Ha jól néztem az infókat, akkor STM32F103 esetében a CLK, MISO, MOSI a PA5, PA6, PA7 pineken élvez DMA támogatást.
A HW SPI osztály úgy nézem csak CS és DC paramétereket vár a példányosításhoz. De mi van az RST pinnel? Azt nem tudom hol kellene használnom.
Próbálkoztam ugyanezzel a bekötéssel a GFX Library for Arduino könyvtárral is.
Itt az "examples/HelloWorld/HelloWorld.ino" fájl volt a kiszemelt.
Ennél az alábbi módon próbáltam létrehozni az "Arduino_GFX" osztály példányát:/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
//Arduino_DataBus *bus = create_default_Arduino_DataBus();
//Arduino_DataBus *bus = new Arduino_HWSPI(PA3 /* DC */, PA4 /* CS */);
Arduino_DataBus *bus = new Arduino_SWSPI(PA3 /* DC */, PA4 /* CS */, PA5 /* SCK */, PA7 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 0 /* rotation */, false /* IPS */);
Látható, hogy próbáltam az "Arduino_DataBus"-t az "Arduino_HWSPI" és az "Arduino_SWSPI"-vel is létrehozni, de egyik megoldással sem kaptam képet.
(Természetesen minden library-t a manager-en keresztül töltöttem le, ahol szükséges volt a hozzájuk tartozó dependency-kel együtt. Linkeket csak a fájlok/könyvtárak beazonosítása végett írtam.)
Az "Adafruit_ILI9341" esetében miért nem tudok HW SPI-t használni?
Az "Arduino_GFX" (GFX Library for Arduino) esetében miért nem látok a kijelzőn sem SW SPI, sem HW SPI megoldással képet?
Mit szúrok el? -
#70211840
törölt tag
válasz Janos250 #18113 üzenetére
További STM32F103 + ILI9225 8-bit Parallel fejlemény:
Csak nem hagyott nyugodni a dolog és kipróbáltam az Arduino_GFX (GFX Library for Arduino) software-parallel megoldását. Na ezzel beindult a kis kijelző végre, de persze jó lassú, mivel nem valódi parallel.
Az alábbi kódrészlettel kezdtem:/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
//Arduino_DataBus *bus = create_default_Arduino_DataBus();
Arduino_DataBus *bus = new Arduino_SWPAR8(PB7 /* DC/RS */, PB8 /* CS */, PB6 /* WR */, PB0 /* RD */, PA0 /* D0 */, PA1 /* D1 */,PA2 /* D2 */, PA3 /* D3 */, PA4 /* D4 */,PA5 /* D5 */, PA6 /* D6 */, PA7 /* D7 */);
/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
//Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 0 /* rotation */, false /* IPS */);
Arduino_GFX *gfx = new Arduino_ILI9225(bus, PB9 /* RST */);Az itt található megoldások közül melyikkel érdemes próbálkoznom STM32F1 esetében?
Ugyan a listában nincs felsorolva, de a könyvtárban található egy ilyen file: STM32PAR8
Ez elméletben talán jó, viszont nem tudom a "port" érték helyére mit vár?Arduino_STM32PAR8(int8_t dc, int8_t cs, int8_t wr, int8_t rd, GPIO_TypeDef* port);
[ Szerkesztve ]
-
#70211840
törölt tag
válasz Janos250 #18124 üzenetére
Valami szoftveres bakit követhetek el, mert nem fordul a kód. (eredeti kód: [link] )
Nem jön létre a tipus. Keresgélem a hiba okát, de még nem sikerült kiderítenem.
Ez "enportom" helyére eredetileg próbáltam integer "1"-et megadni, ahogy egy példában láttam, de ugyanez volt a hiba.
[kép][ Szerkesztve ]
-
#70211840
törölt tag
válasz Janos250 #18127 üzenetére
A belekeveredés teljesen jogos. Nem értem mi a fordító baja.
Kipróbáltam egy másik "Board Manager URL"-t. Egészen pontosan az itt találhatót: [link]
Aztán leszedtem az ehhez tartozó board pakkot és kiválasztottam az STM32F1 Series (azon belül az STM32F1C8T6 128k) boardot.Na, ezzel iszonyat lassan és hatalmas kód készült el (csak 128k-ba fért bele, borzalmas a compiler), de nem volt problémája. Feltöltve egy fehér képernyő fogadott. Szóval valami még nem oké, de nem ütközi szintaktikai hibába. A SW Parallel megoldást fordítva és feltöltve, ez is rendben működik.
Szóval nagyon passz, hogy mi a baja
-
#70211840
törölt tag
-
#70211840
törölt tag
Csak azért írtam, hogy "bocs", mert magam is kezdő vagyok és esetleg ennél jobb megoldás is kézenfekvő. Viszont pont tegnap olvastam valahol valami összehasonlítást és méréseket az ADR-ek pontosságról. Ezért bátorkodtam ajánlani lehetőségként.
(Amúgy pont egy STM32-ből épített oscilloscope kapcsán kezdtem el én is a mikrokontrollerekkel foglalkozni)
-
#70211840
törölt tag
Használ valaki közületek STM32 MCU-t és fejlesztéshez STM32CubeIDE-t?
Szeretnék összehozni egy Nokia5110 kijelzőre kiírást, de sehogy nem akar sikerülni.ArduinoIDE-ben megcsináltam már Adafruit Library segítségével, az STM32cube-ban ezzel szeretném megcsinálni, de nem jelenik meg semmi. PIN kiosztás ugyanaz.
Van esetleg valami bejáratott example?
-
#70211840
törölt tag
válasz Janos250 #18156 üzenetére
A fő problémám egyrészt, hogy az ArduinoIDE-t IDE-nek nevezni vicc. Gyakorlatilag alig van megvalósítva benne, amit egy IDE-nek tudnia kellene. Kényelmetlen benne kicsit is komplexebb kódot írni.
Hiányzik például egy obj példány alapján megnyitni az implementációt. És sok hasonló funkció és hiányzik.
A grafikus rész pont nem érdekel, az viszont igen, hogy könnyen tudjak a kódon refaktorálni, ha szükséges. Szóval mindenképp maradok az Eclipse vonalon.
Amúgy nem tudom miben más vagy maga a fordító vagy a hardver specifikus built-in függvény rész, de kissebb kódot is készít, mint az ArduinoIDE-ben lévő STM32 board cuccos.
Ez például nagyon nem mindegy egy 64kB/20kB BluePill esetében.Szóval emiatt váltottam ArduinoIDE-ről végül az STM32CubeIDE-re.
-
#70211840
törölt tag
-
#70211840
törölt tag
Amúgy biztos butaságot kérdezek, de nem létezik az ArduinoIDE helyett valami Eclipse-alapú IDE, amivel ugyanazokat a Library-kat használhatom, mint az ArduinoIDE-ben?
A leges-legnagyobb gondom a megszokott IDE funkciók hiánya.
(Régóta Eclipse-t használok már és nagyon megszoktam) -
#70211840
törölt tag
válasz Janos250 #18163 üzenetére
"Régóta Eclipse-t használok már és nagyon megszoktam"
"Még erősen kezdő vagyok"
A kettő együtt elég ritka társulás! :-)Így kiemelve valóban.
Viszont arról van szó, hogy a C/C++ nyevek idegenek nekem. Ezért az "erősen kezdő" jelző, amivel illettem magam. Komolyabban sohasem foglalkoztam ezekkel a nyelvekkel. Nagyon régen egyszerű, DOS-on futtatható, "nyúlfarknyi" programot írtam bennük, de ezzel kimerült a tudásom, amit azóta el is felejtettem.
Alapvetően magasabb szintű nyelveket, jelölőket használok.
(Php, Java és ezekhez köthető nyelvek, jelölők, kiegészítők)
Ezeket Eclipse-ben szoktam elkészíteni, ezért a "megszokás" kifejezés.De, hogy ON is legyek.
Találtam egy alternatívát, ami ötvözi első ránézésre az ArduinoIDE működését és az Eclipse szerkesztési lehetőségeit.
Megadva a linket az STM32 platform json fájlhoz, már le is töltötte a komponenseket és "Project" indításkor kiválasztható például a "BluePill" is.Az IDE neve: Sloeber ( [link] )
Teszek vele egy próbát.
[ Szerkesztve ]
-
#70211840
törölt tag
válasz Tankblock #18165 üzenetére
Az már a múlt. Sloeber van már helyette.
A Sloeber amúgy teljesen rendben működik.
Ugyanazokat a modulokat használja, mint az ArduinoIDE. Tehát ami abban megy az ebben is.
[kép]
Egyedül a library kezelésen van még mit csiszolni. Nekem hiányzik, hogy részletezze pár szóban, hogy mit csinál.[ Szerkesztve ]
-
#70211840
törölt tag
Technikai kérdés:
Ha mondjuk nyomógombokat szeretnék beépíteni, akkor annak mi a menete?
Jól értem, hogy STM32 esetében a PIN-nek lehet belső ellenállása, ami mondjuk a +3.3V felé húzza? Aztán nekem a z adott PIN-t csak egyellenálláson keresztül a nyomógombbal a GND felé kell zárnom?Vagy nem így működik a dolog?
Illetve megoldható, hogy ne kelljen 2-3-x nyomógomb esetén ugyanannyi PIN-t elhasználni?
-
#70211840
törölt tag
válasz ekkold #18168 üzenetére
ekkold, Aryes: Köszönöm a választ.
ekkold:
Ha jól értem akkor mondjuk beállítva egy belső felhúzó ellenállást HIGH értékre állítja az adott PIN-t. Én a nyomógombbal egy külső ellenálláson GND-re zárom és ezt az állapotot tudom lehérdezni és eredményként LOW állapotot kapok?Ezek az ellenállások milyen értéküek legyenek egy gomb esetében? Az STM32 úgy tudom a pin-eken 3.3V feszültséget ad.
A mátrix több gomb esetén jó lehet. Illetve csak ötletelek (persze biztos butaság), de az analóg bemenetet használva nem lehet olyat csinálni, hogy a különböző gombok más-más ellenállás értékkel zárnak és a kapott feszültség értéket kiolvasva meg tudom mondani melyik volt az? Esetleg több gomb lenyomását is?
Aryes:
A kis kondira gondolsz? Igen, sejtettem, hogy ilyesmire szükség lesz. Milyen értékűek legyenek ezek? -
#70211840
törölt tag
"Nincs szükség ellenállásra, a belső felhúzó ellenállás önmagában is elég magas."
Ez csak STM32 esetében igaz vagy jellemző már az összes hasonló eszközre?
Azért kérdem, mert példákat nézve látni ilyen-olyan megoldásokat.
Ezen az oldalon például használnak ellenállást a nyomógombhoz.
Tehát elég csak bekötnöm egy gombot egy pin-gnd közé? Ennyire egyszerű volna?"... lehet készen is kapni ellenállás létrát"
Ez nagyon jó tipp és helytakarékos is. Ki fogom próbálni mindenképpen."... én szoftveres debouncingra gondoltam, ..."
Ezen a lehetőségen átsiklottam. Természetesen ha kényelmesen megoldható, akkor az lesz a megfelelő nekem. Ennek a lehetőségnek még akkor utánna kell olvasnom.
Köszönöm a tippeket, a segítséget.
-- off begin --
Más:
Jelenleg igen komoly szoftveres problémával küzdök a fejlesztőkörnyezettel.
Az első és talán legfontosabb dolog, hogy STM32 használathoz az eddig ArduinoIDE-hez használt STM32 Board Core nem megfelelő. A Roger Clark helyett az STM32duino Core-t kell használnom. Egyszerűen azért, mert több Library-ba is belefutok, amelyek nem fordulnak a másik core-al.
Úgy tűnik az kevésbé van optimalizálva STM32-höz, mint a másik.Példa:
TFT_eSPI Library : [link]1. http://dan.drown.org/stm32duino/package_STM32duino_index.json
Ezzel nem fordul a könyvtár.2. https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Ezzel minden probléma nélkül.Csak kiragadva egy lényeges momentumot:
STM32-n szépen beállítható az SPI1 és SPI2 sebessége. Ez a könyvtár használja is STM32 esetében ezt. Azonban az első Core SPI moduljából hiányzik a setSpeed lehetőség, míg a másodikban megvan. Az első fix 8MHz-ez használ (gondolom Arduino örökség lehet)
Egy SPI kijelző esetében látványos a különbség.Van viszont egy komoly probléma ezzel a maggal.
1. Windows - ArduinoIDE
Iszonyatosan lassan fordít!!! Ez azt jelenti, hogy egy üres setup()+loop() percekig tart neki.
Egy képernyőre kiírt "hello world" 3-8perc. Minden módosításnál az egészet újrafordítja.
Neten kutakodva más is ezzel küzd.2. Windows - SloeberIDE
Hibába fut, nem fordul semmi. Nem egyedi gondom van ezzel, másnál is ez van. A probléma egyelőre feloldhatatlan.3. Linux - ArduinoIDE
Itt nincs gond. Gyorsan fordít és apróbb kódot is csinál, mint a másik core.4. Linux - SloeberIDE
Nem tudom elindítani. Érthetetlen, hogy miért nem indul, miközben JDK11 mellett más Eclipse alapú cucc simán fut.A probléma viszont az, hogy nekem a Sloeber kellne, mert az ArduinoIDE nagyon hiányos a fejlesztési funkciókkal.
-- off end --
-
#70211840
törölt tag
A vicc a dologban, hogy ez a lassulas csak windows-on van. Es nem csak nekem, forumokon mas is panaszkodott emiatt. Elkezdtek boncolgatni az okat, de nem olvastam vegig.
Nalam laptopon es desktopon is bosszanto volt a lassulas.
Viszont linux-on nagyon gyors. Kezdoken sokat kell ujraforditanom es jol jon a tempo.
A masik core mindenhol gyors. -
#70211840
törölt tag
Használ valaki közületek Linux/Windows rendszereken Sloeber IDE-t vagy Eclipse + valamilyen Arduino package-et?
-
#70211840
törölt tag
Az ArduinoIDE-t használva szeretném megoldani, hogy a programban használt Library-kat ne a megszokott letöltési könyvtárból, hanem a projecten belül, egy "Libs" nevű könyvtárból linkelje be a fordító.
Ezt azért szeretném így használni, mert a legtöbb Library-t testre kell szabnom 1-1 project kedvéért és nem volna célszerű egy "közös" helyen megtennem. Egy másik, régebbi project akkor újrafordításnál már átírva látná.Van erre valami kényelmes megoldás, hogy 1-1 project saját könyvtárából tudjam használni?
-
#70211840
törölt tag
Persze, lib-et hozzáigazítom majd, ha szükséges.
Ezen a képen nézve a TFT 5V pin mintha közvetlenül a 3.3V fesz.stabhoz menne.
Ha ez tényleg így van és máshol nem jelenik meg a shield-en, akkor szerintem nem lehet gond akkor sem, ha esetleg megjelenik az ESPduino-32 pinen az 5V.
Vagy nem jól gondolom? -
#70211840
törölt tag
válasz Janos250 #18218 üzenetére
Köszönöm, kipróbálom majd.
Most egy drasztikusabb megoldással csinálom egyelőreMás:
Akadt egy olyan problémám, hogy egy "Blue Pill"-re 2db I2C eszköz van kötve, de mindegyik külön porton.
Van egy oled kijelző, ez az első i2c porton van. (sda1, scl1)
Van egy hőmérséklet szenzor, ez a második i2c porton van. (sda2, scl2)A kijelző simán működik, nincs vele teendőm. A library csinálja a Wire.begin(); hívást.
A szenzor csak akkor működik, ha átállítom a Wire sda-t és scl-t még a begin előtt.Wire.setSDA(PB11);
Wire.setSCL(PB10);
Wire.begin();
Ez viszont azt eredményezi, hogy a második port és a szenzor működik tovább, az első port és az oled kijelző nem.
Hogyan lehetne párhuzamosan használni a kettőt?
Nem lehetne valahogyan a "Wire"-ból egy másik példányt csinálni, mondjuk wire2 néven és annak állítanám be a fenti értékeket? -
#70211840
törölt tag
válasz Janos250 #18220 üzenetére
Közben megoldódott:
TwoWire myWire1(PB7, PB6);
TwoWire myWire2(PB11, PB10);
Kicsit ugyan bele kell majd nyúlnom a library-ba, hogy átadjam melyik portot kell használnia és ne simán a Wire-t használja.
Viszont az i2c scan most szépen fut és mindkét porton folyamatosan írogatja a megtalált 1-1 eszköz címét.(Ehh, de kényelmetlen, hogy a Sloeber-el nem megy a közvetlen feltöltés. Folyton kézzel kell az elkészült bin-t a "Release" könyvtárból feltöltenem.)
[ Szerkesztve ]
-
#70211840
törölt tag
válasz Janos250 #18222 üzenetére
Köszönöm, hogy ránéztél.
Jelenleg egy BlackPill (STM32F401CCU) van egy ILI9225 PAR8-ra kötve, azzal próbáltam ki ismét a dolgot.
Jelenleg így néz ki a program eleje nálam:#define ARDUINO_ARCH_STM32
#include <SrcWrapper.h>
#include <Arduino_GFX_Library.h>
#include <databus/Arduino_STM32PAR8.h>
#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
Arduino_DataBus* bus = new Arduino_STM32PAR8(PB8, PB9, PB2, PB1, GPIOA);
Arduino_GFX *gfx = new Arduino_ILI9225(bus, PB0 /* RST */);
A "GPIOA" az aktuálisan kiválasztott chip A-port kezdőcímét jelenti, ahogy a PBx is.
A "typedef struct"-ot hol kellene megadnom? Csak azért, mert ha megadom, akkor hibába futok.
Jelen állapotában fordul a program viszont ugyancsak fehér képernyő fogad.
[ Szerkesztve ]
-
#70211840
törölt tag
válasz Janos250 #18224 üzenetére
Tetszik ez a logikai analizátor. Lehet beruházok egyre, jól jöhet.
Sajnos csak 1 csatornás "játék" szkópom van, amivel ~50kHz lehet érdemben vizsgálódni.Arra gondoltam, hogy valamit elnézhettem a bekötésnél, de ugyanez swpar8-al működik.
Illetve más library-val megy a hardveres par8 is. Szóval kizárólag ennél a library-nál jön elő a hiba.
A készítő nem is tesztelte stm32-n, mert nincs neki, szóval "elméletileg" kellene működnie.A TFT display természetesen par8, nem spi. Valami ilyesmi: [link]
-
#70211840
törölt tag
Nem tudom mennyire illik a topicba (bár szerepel a címben), kezdőként programozási kérdésem volna.
Szóljatok, ha off és menjek át a C++ programozás topicba.Elakadtam egy referencia átadásnál, nem értem miért nem csinálja meg.
Egy egyszerű I2C Scan a példa, aminél a main-ben hoznék létre és indítanék a TwoWire-t és egy másik osztályban szeretném ezt használni.
Viszont egyetlen eszközt sem talál, míg visszapakolva a loop()-ba a WireScanner::scanI2C tartalmát, rendben fut és listázza az eszközök címeit.Mit rontok el?
Test.ino
#include <Wire.h>
#include "WireScanner.h"
TwoWire wirePort(PB11, PB10); // STM32F103 I2C_2
WireScanner ws(wirePort);
void setup() {
Serial.begin(9600);
wirePort.begin();
}
void loop() {
ws.scanI2C();
delay(5000); // wait 5 seconds for next scan
}
WireScanner.h
#ifndef WireScanner_h
#define WireScanner_h
#include <Wire.h>
class WireScanner {
public:
WireScanner(TwoWire& i2cPort);
void scanI2C(void);
};
#endif
WireScanner.cpp
#include "WireScanner.h"
TwoWire _i2cPort;
WireScanner::WireScanner(TwoWire& i2cPort) {
_i2cPort = i2cPort;
}
void WireScanner::scanI2C(void) {
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++) {
_i2cPort.beginTransmission(address);
error = _i2cPort.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
nDevices++;
} else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found");
else
Serial.println("done");
}
-
#70211840
törölt tag
-
#70211840
törölt tag
válasz #70211840 #18244 üzenetére
Storno, közben sikerült megoldanom (csak úgy tessék-lássék módon)
Test.ino
WireScanner.h
WireScanner.cpp[ Szerkesztve ]
-
#70211840
törölt tag
Az egyik STM32F401CCU kontrolleremen nincs meg a gyári bootloader. Próbáltam valami netről összebogarászott bin-t feltenni, de nem az igazi.
Elméletileg megjelenik a bootloader, de amikor az ArduinoIDE másolna rá, akkor hibába fut.
Viszont STLink-el rámegy a cucc. Csak a próba kedvéért forrasztottam be a tüskéket.Van valami ötletetek hol lehetne megfelelő bootloadert találni?
Van pár darab jól működő, esetleg azokról valahogy menteni? -
#70211840
törölt tag
Urak.
Van egy 38pin-es ESP32 MCU-m. Pontosan nem tudom melyik típus, mert feliratot nem látok rajta, a webshopban ahol vettem, pedig nem pontosan olyan kép van, mint amit kaptam. [link]
Hogyan tudnám kideríteni, hogy milyen verzió és az ArduinoIDE-ben mit kell beállítanom?
Illetve ehhez is szükséges USB-UART átalakító a feltöltéshez vagy a microUSB tud adaportként is működni?(Mondjuk elég bosszantó, hogy a pin-ek is úgy voltak beforrasztva, hogy befele álltak a lábak kicsit. mindet ki kellett szednem és újraforrasztanom)
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Formula-1
- A fociról könnyedén, egy baráti társaságban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- WoW avagy World of Warcraft -=MMORPG=-
- Vodafone mobilszolgáltatások
- Energiaital topic
- HiFi műszaki szemmel - sztereó hangrendszerek
- Politika
- Ukrajnai háború
- Milyen billentyűzetet vegyek?
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest