Zaslal: st duben 02 2025, 19:47 Předmět: výber mikrokontroléra - začiatočník
Zdravím, chcel by som sa opýtať na názory pre výber vhodného mikrokontroléra pre môj účel a schopnosti. Programoval som v jazyku C (učebnica Herout), obvodovú techniku zvládam, v programovaní mikrokontrolérov som začiatočník.
Aktuálne by som potreboval vyriešiť problém posielania I2C príkazov do TSA5511 napr. na základe voľby z DIP prepínačov. Neskôr možno z "klávesnice". Rovnako pomocou I2C ovládať napr. DVB-T tuner. Samozrejme, rád by som sa venoval neskôr aj iným projektom.
Otázka je výber vhodného mikrokontroléra. Na začiatok som pozeral PIC16F84 a Arduino Uno.
K PIC som našiel *.pdf knihu s asemblerom od začiatkov. K tomuto mikrokontroléru je treba aj programátor? Aké zhruba sú jeho výhody a nevýhody?
K Arduino Uno som našiel veľa projektov a dokonca aj priamo projekt na komunikáciu pomocou I2C - zrejme veľmi populárny MC. V doske je ATmega328P v DIP, ktorý je možné programovať priamo v doske UNO cez USB? Nie je potrebný žiadny programátor? Je potom možné vybrať MC z dosky UNO a aplikovať ho do finálnej dosky? Aké sú výhody a nevýhody?
Založen: Mar 21, 2006 Příspěvky: 35679 Bydliště: Bratislava
Zaslal: st duben 02 2025, 19:55 Předmět:
Zacni s Arduinom. Nepotrebujes nic, len pripojit USB kablom.
Procesor vybrat a pouzit mimo mozes, len mu musis zabezpecit rovnake podmienky ako ma na doske Arduina (krystal). Ak teda nechces menit fuse bity (na to potrebujes programator).
Založen: Jun 26, 2009 Příspěvky: 1364 Bydliště: Hlohovec (Sk)
Zaslal: st duben 02 2025, 20:25 Předmět:
tiež suhlasim s Arduinom, vieš si to spraviť uplne amatersky, dosť knižnic, alebo možeš isť svojou cestou - podporuje priamo C. Možeš však dosť "zlenivieť" tým že si len budeš hľadať knižnice a neposunieš sa ďalej. Okrem toho, ak tomu nerozumieš, kombinacia knižnic nemusí fungovať. Ale na začiatok ..., ja by som s MCU inač vobec nezačal, ale ani sa už ďalej neposuniem - aktualne riešim Arduino, OBDII cez WiFi - knižnice už nefungujú
Založen: Feb 14, 2005 Příspěvky: 9254 Bydliště: Brno (JN89GF)
Zaslal: st duben 02 2025, 20:30 Předmět:
Ač mrdujíno nemám rád, tak pro začátečníka klidně doporučím. Případně PICAxe, ESP32, nebo Raspberry Pi Pico. Prostě něco, co je jednoduchý na naučení a má to nějaký schopnosti adekvátní k dnešní době. Má to nějaký IDE a komunitu uživatelů. Určitě nezačínat vykopávkama jako PIC16F84.
Založen: Oct 30, 2010 Příspěvky: 6837 Bydliště: Praha
Zaslal: st duben 02 2025, 22:09 Předmět:
Nebo můj oblíbený PSOC od Cypress, dnes už Infineon. Velice, ale velice doporučuji si vybrat něco, co umožňuje debug na skutečném HW. PSOC5 je sice mocný kombajn kombinující ARM M3 s hradlovým polem, ale práce s tím je opravdu jednoduchá a mají k tomu kupy tutoriálů a příkladů. Já na tom v podstatě začínal po nějakém lehkém hraní s 89C2051 a AVR. https://cz.mouser.com/ProductDetail/Infineon-Technologies/CY8CKIT-059 _________________ Krátce před tím, než se to rozbilo, tak to ještě fungovalo...
V doske je ATmega328P v DIP, ktorý je možné programovať priamo v doske UNO cez USB? Nie je potrebný žiadny programátor? Je potom možné vybrať MC z dosky UNO a aplikovať ho do finálnej dosky?
Ano, je tomu tak.
Je tam jedna výnimka: ak by si zobral zbrusu čistý ATmega328P a osadil ho do sokla, s najväčšou pravdepodobnosťou nebude mať "Arduino" bootloader (závisí, odkiaľ ho kúpiš), takže Uno doska nebude správne fungovať.
Nahrať tento bootloader, ak nemáš po ruke programovacie zariadenie, sa môže i druhým Arduinom ako ISP, a pár drátovými prepojkami. Návod je tu.
Samozrejme, keď pokročíš, nemusíš funkcie Arduina volať vôbec a môžeš to programovať ako normálne AVRko v C. Ak tam ponecháš Arduino bootloader (resp. nemáš dôvod navrhovať svoj), ten čip bude v Uno doske fungovať i naďalej.
Ja sa tiež nešpecializujem na mikrokontrolery či embedded, ale sem tam sa Arduinu povenujem, najmä pretože sa dá ľahko napojiť na starý hardware, čo je jeden z mojich koníčkov.
Doska s funkčnou Mega2560 stojí nejakých osem eur od šikmáka, máš k dispozícii 54 vstupnovýstupných pinov, ADC a kadejaké serepetičky. Lenže už to je predsa len zastaralé... a je to osembiťák.
Viď ten dotykový (a starý) farebný displej - keby ten kód nebol dobre odladený, videl by si ako sa grafika "prelieva".
RPi a Pico sú výpočtovo už na inej úrovni, zato o úplne inej platforme. Pôvodné Arduino je ešte TTL kompatibilné, u RP už treba výlučne CMOS logiku (+3.3V). AVR v Arduine je jednoduchý osembitový mikrokontroler s pár kB pamäte a rýchlosťou lepšej kalkulačky.
RPčko už je hotový systém v jednom čipe, s 32bitovým dvojjadrovým mikroprocesorom.
Každopádne, zmenou platformy (systému) sa budeš vždy nanovo učiť špeciality a lakocinky toho konkrétneho systému, ktorý si si zvolil. PIC, STM, ARM, AVR, RP, všetko vzájomne odlišné. Nie je to ako navrhovať web...
Skúsil som ESP aj Raspberry pico, lebo som chel ísť s dobou a perspektívou vývoja cien, ale veľmi rýchlo som sa vrátil k Arduinu. Totiž jednoduchosť práce s Arduinom nevynahradí nižšia cena výkonnejších procesorov. A zatiaľ som v oblasti merania, regulácie a automatizácie nenarazil na technický problém, ktorý by vyžadoval výkonnejší procesor.
Založen: Dec 12, 2005 Příspěvky: 2538 Bydliště: SR, Poprad
Zaslal: čt duben 03 2025, 11:44 Předmět:
ved esp vies tiez programovat ako arduino.
rampage: vidis, a mne ucitel na strednej hovoril presny opak. Princip programovania je stale rovnaky, len sa to inak zapisuje. Ale podmienky, cykly, algoritmus je vsade rovnaky.
A ked spominas web, tak tam tiez mas milion moznosti a roznych frameworkov na vytvorenie. _________________ No vidis, a tak si sa bal
Ale podmienky, cykly, algoritmus je vsade rovnaky.
Ano, a potom som svedkom kódu, ktorý je "moderne" kompilovaný s C++20 toolsetom, aby akože držal krok s dobou.
Vovnútri absencia exception handling či cykly z ktorých breaky nestačia - dáme goto na oboje, aby to bolo prehladné. Miesto lámbd pointery na funkcie, veď načo. Polymorfné inštancie pretypujeme krásne cez okrúhle zátvorky, warning level kompilátora dovolí, veď on už ten pointer niekam nasmeruje. A načo templaty, keď stačí jedno veľké #define. Ideálne na celý header.
Pekne ďakujem za také "C++". Veď princíp programovania ostal stále rovnaký... Iba že by nie.
Prípadne z Arduina presedlá na RPi a skúsi adresovať GPIO odniekaľ z Pythonu. Zistí, že miesto stoviek ns to zrazu zaberie desiatky, stovky mikrosekúnd. Čím to je? Veď princíp je ten istý.
Hej, ale skús naprogramovať niečo čsovo kritické na low level úrovni bez použitia chrobačných knižníc. Nevravím, že sa to nedá, ale zožerie ti to 10x viac času. Lebo už len programovanie ESP hoc pod Arduino IDE, nie je tak intuitívne a samozrejmé, ako programovanie Arduino Uno. Svedčia o tom stovky tutorialov na internetoch. A potom prelistovať podstatne hrubší datašit, ak sa k nemu vôbec dostaneš. A nakoniec nastaviť množstvo registrov, aby si mal istotu, že ti do časovo kritického tasku nebabre nejaké prerušenie trebárs od WiFi...
Nie, ďakujem, radšej ostanem pri Arduino Uno. To, čo na Arduino Uno jednoducho múdro nakodim, bude rýchlejšie, než čo jednoducho hlúpo nakopirujem do rýchlejšieho ESP.
Naposledy upravil samec dne čt duben 03 2025, 12:25, celkově upraveno 1 krát.
Nič nemiešam. Tu neriešim syntax jazyka či nastavenia prostredia, ale postupy. Očividne reagoval na moje
citace:
Každopádne, zmenou platformy (systému) sa budeš vždy nanovo učiť špeciality a lakocinky toho konkrétneho systému, ktorý si si zvolil. PIC, STM, ARM, AVR, RP, všetko vzájomne odlišné
kde jasne uvádzam, že sa menia špecifiká systému, pod ktorým bude vyvíjať. Nech si programuje v čom chce.
Neriešim tu, že je niekde syntax bitového súčinu slovné "and" a niekde "&", prípadne že niektoré jazyky medzi bitovým a logickým ani nerozlišujú. Ani že narátať od jedna po desať for cyklom býva v jazykoch obdobné. S výnimkou Brainfuck.
Už konkrétne algoritmy bude musieť vedieť patrične prispôsobovať a optimalizovať; s ohladom na architektúru mikrokontrolera, organizáciou a prístupe k RAM, k I/O portom, vôbec časovaním, a podobne.
Keď nebude vedieť adresovať jeden port (čo sa práve systém od systému vie líšiť), alebo nebude správne časovanie, tak na pripojený displej nevykreslí ani mäkké f.
A na takom osembiťáku ako Uno asi nebudem vykonávať tridsaťdvabitové operácie, kde netreba, že?
Tiež nie je pravda, že sa princípy programovania nemenia; napríklad medzi procedurálnym, objektovým a generickým programovaním sú rozdiely obrovské, už v pseudokóde - nezávisle od jazyka.
Nebudem niekde na desktope v Jave naháňať každý jeden bajt deklarovaním kdejakých statických polí, keď viem, že mi kód beží vo virtualke, kde beží garbage collector, a všetko je tam inštancia objektu - vrátane toho "pola", o ktoré sa snažím. Takže nemám ako sa starať o správu pamäte, sme zase u systému. A že rozšafnosti si môžem dovoliť iba tam, kde to mám dovolené - nie v embedded prostredí, kde jedna chyba má potenciál zostreliť celý beh systému.
Rovnako ako sa nedá nazvať horeuvedený ilustrovaný pokus o "C++" modernými princípmi.
Finta je v tom, že on tie Arduino knižnice používať nemusí vtedy keď nechce, k registrom AVR vieš pristupovať napriamo. Zároveň nemusíš vymýšlať koleso tam, kde už vymyslené bolo, ak časovo stačí.
Jedno osembitové čítanie či zápis do portu je jedna in/out inštrukcia o dvoch taktoch, teda asi 126ns pri 16MHz. To vieš v pohode písať v inline asm, ak treba - už som tak preskakoval pármikrosekundové zdržanie kompilátora pri obsluhe IRQ (push všetkého na stack) tak, že som sa o registre staral sám. Na Arduine sa to dá zbrusu. Veľa šťastia s takýmto niečím napríklad na Raspberry Pi...
A to ak by som mal kvôli pár riadkom časovo náročného kódu mal všetko ostatné zahodiť, lúskať datasheety a písať si všetko sám - tak by som sa na to celé akurát tak vysrаl. Zvlášť ako začiatočník.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.