Fórum témák
» Több friss téma |
A legalapabb stm32F103C8T6 (bluepill)
Az mcu ezen kívül 2 adc-t használ, egyiken az aktuális feszültséget, a másikon az áramot méri, és soros porton 9600bps-en kommunikálna. Másodpercenként kb 10-50 alkalommal kell csak kiszámolni az új táblát, ha ez a megoldás jó, ettől gyorsabb reagálás nem kell. A hozzászólás módosítva: Jan 2, 2021
Igaz. Osztani kellene.
De lehet ilyet menet közben?
Igen, szabályzást akarok vele csinálni. Az stm-el egy h-hidat vezérlek pwm-el, és az ebből kijövő váltakozó feszültséget akarom ezzel a módszerrel szabályozni.
Lehet gyorsabban, tudunk segíteni, ha leírod egybe az egészet ámblokk, hogy lássuk a teljes célt
Mekkora táblákakat használsz és hány amplitúdó érték kell? Mert lehet felesleges számolgatni, ha van helyed const tömb-be ki pakolod az értékeket és amikor amelyik kell azt állítod be a DMA-hoz.
PMSM / BLDC motorokat is hajtanak hasonló módszerrel (FOC), 20-80 kHz PWM frekvenciával. Ott ugye 3 fázist számolnak egyszerre, ott is változtatják az amplitudót szorzással, de nem láttam még, hogy DMA-t is használnának.
Szerintem az STM32 DMA nélkül is elviszi sebességben, persze nem tudom, hogy mit akarsz még mellette számolni az inverterben.
Az én hálózatra tápláló inverterem, ami nem kis követelmény, 5 kHz-en megy (100 minta hullámonként), és így az IGBT-k is jól bírják (azok nem szeretik a nagy frekit). A procinak pedig ez a sebesség nudli 3 fázison is.
Ha nem gond egy hozzászólásban válaszolnék.
A teljes cél, egy olyan konverter lenne, ami napelemekről kapja a betápot, így az erőteljesen ingadozik. Ez 230-310V között van, és egy IGBT h-hídat kell vezérelni. Ezt az egyenfeszültséget kellene váltakozófeszültséggé alakítani. Kb 50Hz-re és olyan 5-15 kHz pwm-re gondoltam, ez igazából mindegy, ohmikus terhelés lesz rajta. Kimeneti feszültség igazából ingadozni fog, de az a felhasználást tekintve mindegy is. (Ezt rosszul írtam az előzőekben, mert a bemenetet kell igazából stabilan tartani) Az MPPT kiszámolásán a pwm generálásán, és a soros port kezelésén kívül semmi egyéb dolga nem lenne. Nekem igazából annyi lenne a lényeg, hogy a h-híd vezérlése stabil legyen, mert nem akarok füstöt. Ezért is tetszett meg ez a timer-es DMA-s megoldás. Köszönöm, hogy próbáltok segíteni.
Közben próbálkozom.
Írtam egy olyan verziót, ahol két timerrel oldom meg a dolgot. A timer4 megszakítása intézi a szinusz táblában a léptetést és a timer 1 intézi a pwm-et. DMA nélkül. A kérdésem az lenne, hogy ha a soros portot is megszakítással akarom kezelni, akkor elég állítanom a prioritásán?
Én egy F0-ssal csináltam hasonló DMA+PWM kombót, ott lehet ISR-t kapni (HC == Half Complete ISR) a félig kitolt DMA buffernél is. Úgy oldottam meg, hogy a buffer hátsó felét a DMA transfer complete ISR után frissítem, az első felé meg a félig kitolt buffer ISR után. Azt, hogy az F103-ban van-e HC ISR azt nem tudom.
Igen, van az f103-ban is fél buffer DMA interrupt lehetőség.
Igen, be tudod állítani úgy a timer4 prioritását, hogy a soros port megszakításkiszolgálását is félbeszakítsa. Amúgy nem olyan bonyolult innen már átalakítani körkörös DMA-ra. Úgy kisebb lesz a jitter bár a szabályozási késleltetés meg nagyobb lesz a puffer miatt (minél nagyobb a puffer, annál nagyobb a késleltetés).
Ez jó infó nekem, utánanézek, bár lehet ez még nagy falat lenne a jelenlegi tudásommal. Köszönöm.
Sziasztok.
Tudja esetleg valaki hogy az STM32F procik miért ilyen nehezen beszerezhetők manapság? A 030 as és a 103-as sorozatokat használom de kb a többi tpus is teljesen ki van fogyva minden helyen és horror árfutási időket írnak. TME Farnel, mouser, digikey ezeket néztem mind üres. A hozzászólás módosítva: Jan 13, 2021
Szia.
Az ST hivatalos oldalán nézted hogy ott találsz-e olyan MCU-t amit keresel? Bővebben: Link
Állítólag az az oka, hogy a járvány miatt először mindent bezártak. Az autóipart is. De a sok home officehoz sok számítógép kellett, a chip gyártók PC alkatrészekre álltak rá. Aztán valamiért az autóipar nagyon hamar újra indult, és a PC gyártókkal versengve kötik le a gyárak kapacitását hónapokra előre.
https://www.extremetech.com/computing/318554-a-massive-chip-shortag...dustry https://www.npr.org/2021/01/12/956097426/lack-of-computer-chips-tri...makers Mit lehet tenni? - Ha cég vagy, és terméket gyártasz, akkor terveket kell készíteni, szerződni a beszállítókkal fix darabszámokra. - Ha prototípus fázisban vagy, esetleg hobbi, akkor keress más MCU-t. Az STM32 sorozat tagjai között szerencsére elég egyszerűen hordozható a kód. - Ha nagyon hobbi, akkor tedd félre.
https://telex.hu/gazdasag/2021/01/15/autoipar-alkatreszhiany-audi-m...ronika
A hozzászólás módosítva: Jan 15, 2021
Alin akartam venni, de visszamondta az eladó, és rám rt hogy érdekel e teljes helyettrstő megoldás. És belinkelte az IC-t Szerintetek ez tényleg jó lehet?
Idézet: „Hello, I'm very sorry STM32F030K6T6, this is out of stock at present, but there are other models that can completely replace STM32F030K6T6 XM1008K6T6 this can perfectly replace STM32F030K6T6 Can you accept it? Alibaba Translation Features of XM1008K6T6 chip 1. Full compatibility 1:1 replacement, software need not modify, binary compatibility. 2. The M0 kernel runs at the same speed as ST 2. ESD up to 8KV, SRAM with parity check, reliability index leading in China 3. ADC accuracy can also be replaced” Bővebben: Link
Én is akartam venni más fajta STM-et, nekem is visszaírt más ürüggyel, de nem küldi.
Nekem nincsenek jó tapasztalataim a klónokkal, csak akkor érheti meg, ha van időd a különbségeket kideríteni. Szerintem 100% kompatibilitás nincs. Viszont ha sikerült ezt a nyomozósdit végigcsinálnod, akár jobb is lehet mint az eredeti, olcsóbban. Egy ilyen példa az atmega328 "klón" - nem STM, de én ezt próbáltam. Piszkosul nem az, sok a különbség, viszont akár 32MHz-en is megy, 12 bites az ADC-je, stb.
Én nem fogadnám el. Bogarászni kell majd a különbségeket. Kínai adatlapból.
Értekeztem több olyan kínai partnerrel akinek bővebb infói vannak a jelenlegi félvezető hiányról, és a lehetséges megoldásokról.
Tekintettel arra, hogy nem csak 200mm-es wafer probléma, hanem a konténer hiány is van, így nehezebb megoldásokat találni. Nem csak a mikrovezérlők oldaláról tapasztalható ez a probléma, sima mosfetek, optók, tranzisztorok is hiánycikkek lettek szinte egy pillanat alatt. Mostanra már wafer hiány is lett, megbillent a kereslet kínálat wafer terén ami magával rántott mostanra mindent. Tavaly még 2200 USD-ért tudott hajón eljönni egy 40-lábas konténer. Most jelenleg 9700 USD felett van az ára, és azt is vadászni kell. Ennek az oka egyszerű, konténer hiány van. Sok gyártás leállt, és teli áruval még elmentek a konténerek a cél országba (például USA), de ott leállt gyártások miatt üres konténereket nem akarják visszahozni, ezért kínában nagyon durva konténer hiány van, már hetek-hónapok óta. Nagyjából eddig tartott a nyugati világ alkatrész készlete, a legnagyobb disztribútorok is kifogynak lassan mindenből. Ami meg még van, annak az ára az egekbe szökött. Nem az első shortage van az elektronika iparban valami miatt. Vagy árvíz/tájfun miatt elöntött SRAM/NAND gyár, vagy MLCC hiány, vagy ATMEL krízis, stb. Ha valaki hosszú ideje tevékeny ebben az iparban, már párszor rákényszerült arra, hogy áttervezzen áramkört. Én óva intek mindenkit a kompatibilis mikrovezérlő használatától éles már futó projektben. Az rendben van, hogy ha alapból GD32-re fejlesztesz valamit, de létező termékben egy sorozatgyártásra cserélni nagyon rizikós. Jóval nagyobb rizikó, mint például az MLCC kríziskor tömegével terveztünk át gyártmányokat low-esr aluelkóra vagy SMD tantálra. Kínai gyártásban dolgozó partnerünk szerint vélhetően normalizálódni fog a helyzet márciustól. Mind a konténer ár, mind pedig a félvezető hiány elkezd majd csökkenni, de még ők is úgy jósolják, hogy 2022Q1-ig még tartani fog mindenképpen, mert wafer gyártásban fél éves előrendelési listák voltak régen is mindig. Szóval ha csak nem SOS sorozatgyártanod valamiből, akkor érdemes kivárni a kínai újév utáni rendeződést (március első hetei). A konténer árak is jelen pillanatban úgy elszaladtak, hogy vannak áruk amiket inkább nem hozunk el, mert nem éri meg, repülővel meg szintén.
Sziasztok!
Timer3 és Timer4-et használnám pontos időzítés előállítására. Timer4 szépen működik, használom mind a 4 csatornát, a várt lábakon megjelenik a várt jel.Lásd Timer4 Settings kódrészlet. Használnám a Timer3-t, de az nem akar működni, illetve csak részben. A PA6-on levő PWM jel megjelenik, de többi nem. Miért ? A regiszterek tudtommal ugyanazok, értéket adok nekik, mi a hiba? Arduino-t alatt dolgozom, ha ez számít. A doksi szerint jó pineket figyelek.(Lásd mellékelt kép)
A hozzászólás módosítva: Feb 10, 2021
Na, de melyik mikrokontrollerről van szó?
A kérdés jogos: STM32F103C8T6 (bluepill).
Nem tudom, hogy Arduino alatt hogy megy, de Keil környezetben így inicializáltam Timer3 3. csatornáját (PB0):
Köszi, de sajnos sokkal nem lettem előrébb.
CCER-ben engedélyezed, CCMR2-ben Comparálást engedélyezed. GPIOB rész meg a remap-ért felel. Hasonló,mint nálam. Megy is a Timer 3,mert a PA6-on teszi a dolgát,tehát a timer résznek jónak kellene lennie, de ha az jó, akkor mi a hiba?
Arra varrj gombot, hogy most meg jó lett. Megjavult,de fogalmam sincs, hogy miért és mitől.
Srácok, gondolom van köztetek jó pár olyan felhasználó, aki esetleg foglalkozott USB CDC használatával. Csak említés ként, én is sokszor, de kíváncsi lennék arra hogy ti hogyan vagy miképpen oldálanátok meg a következőt. Adott egy 8-16-32Kbyte vagy akár 1MB adathalom, amelyet PC-ről küldünk. USB CDC-vél fogadná a hardver, de mivel 64byte egy csomag nyilván a folyamatot szinkronizálni kell. Egyrészt kell szólni a hardvernek hogy most adatokat akarok küldeni készüljön fel, másrészt át kell küldeni az aktuális adat hoszt ami nem biztos hogy tökéletesen osztható 64-el, és utána fogaddni kell az adatokat. Érdekelne, hogyan lehetne ezt jól és stabilra megoldani. Gondolok itt olyanra, hogy figyelni kell, hogy érkezett e adat és hogy mennyi, a szinkronizáció miatt kell küldeni egy tovább parancsot a PC-nek... Stb. Köszi előre is.
Ut: STM32F103RF kontroller USB CDC-t használok. A hozzászólás módosítva: Feb 20, 2021
Lásd el a kisebb méretű csomagokat header-rel, és abban jelezd hogy mekkora lesz a csomag, mi lesz a teljes CRC a végén, jelöld a headerben azt is hogy kezdő csomag, vagy chunk, stb.
Meghatározod mekkora adatot szeretnél egyszerre átküldeni, az elé beteszed a headert. Nem probléma ha nem 64 és többszöröse. Szerk: header lehet egy sima struct is, amit egyszerűen csak memcpy-val kezelsz (küldő és fogadó oldalon is). A hozzászólás módosítva: Feb 20, 2021
|
Bejelentkezés
Hirdetés |