Fórum témák
» Több friss téma |
Sziasztok!
Atom-PlatfrmIO alól programozza valaki a bluepillt? Nekem működött hibátlanul, de kb fél éve nem használtam, most ezt kapom a sikeres fordítás után. Ötletek esetleg? Arduino IDE gond nélkül feltölti
Hello!
Ez lett a megoldás, ha kellene valakinek. afio_remap(AFIO_REMAP_TIM2_PARTIAL_1); Köszi a tippet.
Arduino-val programozom a BluePill-t és belefutottam abba a problémába, hogy le kellene menteni néhány változót, hogy következő bekapcsoláskor meglegyen az értékük. Mivel EEPROM tudtommal nincs benne, marad a FLASH...
Tehát, hogyan tudnám egy változó értékét kiírni a flash-ba, illetve induláskor kiolvasni belőle?
Én régebben foglalkoztam vele, akkor nem volt támogatott a C8 és a CB változatoknál.
Köszi! Akkor ha jól értem, alaphelyzetben (plusz hardver nélkül) nem fogja tudja elmenteni a szoftver a beállításait. Mi a legegyszerűbb megoldás erre? Valamilyen i2c memória amit támogat, vagy más?
A program memória is flash memória, lehet bele írni programból. A macera az miatt van, hogy csak egy teljes lapot lehet törölni (ami jelen esetben 1kB). Létezik programkönyvtár amivel úgy lehet használni, mint ha sima adat eeprom lenne. Itt van a leírása.
Azt nem tudom, hogy ennek van-e arduino kompatibilis változata, ha nincs akkor át kell szabni rá.
Arra gondltam, hogy megpróbálok egy ilyen kis 3 lábú EEPROM-ot életre kelteni, ezt könnyű lenne ráhekkelni egy I/O lábra... Bővebben: Link Használt már innen valaki ilyesmit?
Kb. 16 bájt adatot kellene csak tárolnom. A hozzászólás módosítva: Júl 23, 2020
A munkahelyemen is szóba került. Elvetettük. A 8 lábú sem sokkal nagyobb, mégis I2C buszon kommunikál, amit nem neked kell megírnod. Ráadásul az egyik kollégámnak rossz tapasztalatai voltak a kommunikáció megbízhatóségával. Én nem tudok nyilatkozni róla, mivel végül nem használtunk ilyet.
Én használtam, kb. pont úgy, ahogy mondod, kellett egy különálló kis memória pár bájt tárolásához, és rátettem egy, egyébként más feladatú IO lábra. Nekem működik, nyilván az időzítéseket be kell tartani, de ennyi, többet nem igazán tudok mondani róla.
A hozzászólás módosítva: Júl 24, 2020
Igen a másik lehetőség ez, i2c vezérlős is van SOT23 tokban (5-6 lábbal). Midegyik filléres alkatrész. Találtam arduino/STM32-re 1wire könyvtárat, majd megpróbálkozom ezzel, ha esetleg nem megy, akkor i2c-vel próbálkozom majd.
Köszönöm, remek ötlet, de nem szeretnék sem elemet, akkut, vagy Farad-os kondit hozzáépíteni. Mindegyik ilyen megoldás drágább, és nagyobb, mint egy filléres EEPROM.
Egyébként egy JBC-hez (245-ös pákahegyhez) készített forrasztóállomásról van szó, aminek egy olcsó bluepill az "agya". Egy nulladik verziós nyák már kész van, két pákát tud kezelni. A szoftver arduinoval készült. Ahhoz képest, hogy először csinálok ilyesmit, a PID szabályzást is sikerült elfogadhatóra megcsinálni: a beállítotthoz képest, képes néhány fokon belül tartani a pákahegyet, forrasztás közben is, de egyenletes terhelés esetén tizedfok pontosan beáll. A legnagyobb hiányossága, hogy "nem emlékszik" a beállított hőmérsékletekre. Illetve ha lesz memória benne, akkor esetleg a hőmérséklet kalibrálását is meg lehet oldani. Bár a termoelem mérése során kapott adatokat beépítve a programba, gyakorlatilag első bekapcsolás után is 10 fokon belül volt a mért/kijelzett érték, a valóságoshoz képest. A 3 lábú SOT23-as tokú EEPROM nagy előnye az lenne, hogy akár a meglevő panelre is simán fel lehet hekkelni, sőt akár magára a bluepill-re is. A nyákra már amúgy is kellett pár plusz alkatrészt hekkelni utólag.
Köszi, akkor van rá esély, hogy használható lesz.
Sziasztok!
Stm32 f103c8 bluepill panelem van. Ajánlották a CubeIDE-t hogy próbáljam ki, megtettem. Csináltam egy projektet, az CMU-m kiválasztása után megadtam neki, hogy a PC13as láb legyen GPIO output és legeneráltam a kódot. Semmi mást nem változtattam a projekten, feltöltöttem a controllerre, a PC13-azóta folyamatosan aktív és se erease-elni nem tudom, se hozzákapcsolódni (SWD/UART) illetve újra programozni se. Ezt a hibát kapom:
Valakinek valami bevált ötlet erre? A hozzászólás módosítva: Okt 6, 2020
Milyen debugger hardvert használsz?
CubeMX-ben engedélyezted a debugot?
Próbáld meg a bluepill-en levő reset gomb nyomkodását és a csatlakozást időzíteni egymáshoz. Hogy ezt a macerát elkerüld a későbbiek során, a Cube részben engedélyezd "serial wire"-t (PA13, PA14 lábra ekkor rá is kerül a az SWCLK és SWDIO funkció).
Vagy ha olyan a debuggere, akkor kösse be a reset vonalat, és válassza ki a "Connect under reset" opciót.
Igen, mire rátöltöttem én is rájöttem, hogy ezt hagytam ki és baj lesz belőle, dehát addigra felment rá cucc.
Próbáltam a reset láb bekötést, meg a reset gomb gyonkodását reconnect közben, de nem ment vele sajna. GOndolom teljesen off az SWD interface. Ilyen HW-em van hozzá Rendeltem most egy JTAG kompatibilis STLINK-et FDH-ról. Majd azzal visszakapcsolom. Köszi mindenkinek a segítséget!
Idézet: „GOndolom teljesen off az SWD interface.” Nem, reset alatt továbbra is lehet csatlakozni hozzád. Idézet: „Próbáltam a reset láb bekötést” A probléma az, hogy az általad használt kínai klón ST-Linken nincs kivezetve az SWD reset jel, csak a SWIM (STM8) reset. Mivel STM8-t nem használok, simán átkötöttem magamnak. A hozzászólás módosítva: Okt 6, 2020
Áhhá. Akkor mindjárt szétkapom és átkötöm én is aztán újra próbálom.
Köszönöm!
Lefotóztam az enyémet.
Ahha, sikerült visszahozni, köszönöm! Szép napot nektek!
Sziasztok! Eddig csak arduinoval programoztam a BluePill-t, de nemrég elkezdtem az STM32CubeIDE fejlesztőkörnyezettel ismerkedni, és mindjárt fel is merült egy kérdésem.
Hogyan szoktátok megoldani a soros port kezelését? Arduinoban le lehetett kérdezni várakozás nélkül, hogy hány karakter van a pufferben, kiolvasni, eltárolni a teljes üzenet beérkezéséig, stb... A CubeIDE HAL függvényei viszont olyan paramétert várnak, hogy meg kell adni hány karaktert szeretnék venni... Ok. megadhatom hogy csak 1-et, és a megszakításban eltárolom ami jött, de sokkal ügyesebb lenne ha mondjuk \r és vagy \n karakterig venne a pufferébe, és pl. akkor generálna megszakítást amikor egy teljes feldolgozható sor beérkezett. A netes példaprogramokban 4 bájtot "akarnak venni", de én nem tudom előre, hogy hány bájt fog érkezni. Gondolom érthető a probléma. Mi a korrekt megoldás erre, ill. hogyan szoktátok kezelni a soros porot? TX esetén nincs gond, ott nyilván adott, hogy mennyi adatot kell elküldeni. A hozzászólás módosítva: Nov 2, 2020
Anno csináltam az uarthoz bufferelt drivert. Ebben lehet callback függvényt használni a vett karakter jelzéséhez. A mellékletbe beraktam, és gyorsan csináltam példát sor vége karakter érzékeléshez (Src/App/app_uart_test.c). A driver meg az Src/Uart mappában van.
Nem tudom hogy lehet beimportálni a cubeide-be, mert én a régebbi hagyományos truestudio-t használom, a project generáláshoz meg a régi különálló cubemx-t használom. Közben megnéztem simán behívható a cubeide-be (File / Open project from file system... ). A hozzászólás módosítva: Nov 2, 2020
Idézet: „Arduinoban le lehetett kérdezni várakozás nélkül, hogy hány karakter van a pufferben” Mert ott ezt már megírták előtted. Ráadásul a háttérben (minden loop végén) erőforrást is fogyaszt. Én a munkám során DMA-val használom. Ringbuffer, fix mérettel, folyamatos vétellel. Három megszakítás érdekel: Half complete, Complete, és Rx idle. Innen indítom a másolást a saját bufferbe, és ott történik a csomag keresés is.
Sziasztok!
Van egy gyári Farnell-es STM32 ST-Link V2-m, nem izolált. Az a gondom vele, hogy macos-en és windowson is egyaránt totál instabil, CubeIDE alatt. Nem tudok vele debugolni. Rákötöttem egy sima Bluepillt, de sem SWD-n, sem JTAG-en nem érem el rendesen. CubePRG-vel hozzá tudok kapcsolódni, fel is programozza, de olyan hibaüzeneteket ad sokszor, hogy nem találja a targetet, vagy eldobja az egész programozót. A ebay-es clone, simán programozza a bluepill-t, bár debugolni ugye nem tud, lévén csak SWD, de az sose dobál hibákat. 2bluepillem is van, mindkettővel ezt csinálja. Járt valaki így, esetleg van valami trükkje? A hozzászólás módosítva: Nov 10, 2020
Annyira nem vagyok benne de én simán debugolok a kínai klónnal bluepillt swd n keresztül. VScode+Platformio, CMSIS libaryt használok. Mi az amit nem lehet csak jtag alól? Tudok breakpointot lerakni, látom az összes regiszter tartalmát.
Van hozzá valami leírás, vagy bármi? Nem zárkózom el tőle, hogy nálam van a gond, de én eddig nem jöttem rá, hogy mi
|
Bejelentkezés
Hirdetés |