Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Adatlap szerint:
7.5 Low-frequency Crystal Oscillator ... 32.768kHz ... 7.6 Calibrated Internal RC Oscillator ... By default, the internal RC oscillator provides an approximate 8MHz clock. ... Tehát több féle belső órát is választhatsz és ezekből külöböző osztó konfigurációkkal sokféle órajel ki tud jönni. A hátránya ennek annyi, hogy elvben nem lehet vele stabil UART kapcsolatot csinálni automatikus óra kalibráció nélkül, de a gyakorlatban ez is működni szokott, egyszer kell az adott példányt kalibrálni és ha nem lesz extrém hőmérséklet, akkor működni fog. (Hobbi szinten elég, ha nagyon megbízható dolgot kell csinálni akkor nem.) Nem olvastam tovább, de hasonlóval már dolgoztam és általában PLL is van, plusz az internal RC hangolható is, és van amin fel lehet menni 20MHz-ig is. Erre a feladatra lehet, hogy elegendő a low freq oszcillátor és akkor nagyon keveset fog fogyasztani. A 10 LED-hez nem feltétlenül kell 10 láb, például Charlieplexinggel sokkal kevesebb is elegendő, de vannak egyszerűbb kapcsolások is, amikkel legalább le lehet felezni a lábak számát. Arra érdemes vigyázni, hogy a programozáshoz a MISO/MOSI/CLK és reset lábakat szabadon kell hagyni, de legalábbis olyan dolgot kell rákötni, ami nem zavarja a programozást. Például a LED kimenet szerintem jó, az nem zavarja, tehát így végülis használható az összes láb (RESET-et kivéve). A RESET is használhatóvá tehető, de akkor utána csak 12V-os programozóval hozható programozó módba úgy tudom. Ilyet még sosem csináltam, nyilván nem ördöngősség, de nekem eddig nem érte meg ennyire spórolni. Idő alapon eltérő funkció helyett én meggondolnám hogy több gomb legyen. Ha ritkán használod az eszközt, akkor el fogod felejteni, hogy mire mit programoztál, a legjobb ha az eszköz lehetővé teszi, hogy felfedezd hogyan kell használni. Emiatt én akár OLED képernyőt is tennék rá, persze akkor már sokkal komplexebb lesz minden, de annak elég 2-4 láb attól függően hogy SPI vagy I2C és hogy akarod-e tudni áramtalanítani mikor nincs kijelzés. A hozzászólás módosítva: Okt 13, 2022
Az I2C-t többnyire hardwerrel valósítjuk meg (AVR világvan TWI-nek hívják, ami _nagyjából_ megvalósítja a protokollt), ezért ott a visszajelzés adott, hogy megtörténik. A probléma megoldása az, hogy az I2C hardvernek az adatokat interruptból adjuk, így a főprogram futhat közben tovább, nem kell várakoznia (nyilván az interruptok kicsit lassítják, de nem nagyon és a kritikus részek alatt ki lehet kapcsolni az interruptokat). A main loop-ból pedig le lehet kérdezni hogy éppen hol tart a képernyő frissítés, befejeződött-e már, lehet-e az újat készíteni.
OLED kijelzőhöz csináltam ilyen megoldást, és ha jól emlékszem kb 20FPS-sel pörgő számlálót tudtam csinálni vele úgy, hogy alig használ erőforrást, közben real-time program is futhat. Van ilyenből SPI és I2C is, mindkettőhöz van megoldásom ezekhez: https://www.hestore.hu/search.php?q=D13-12864 Itt van egy példa projekt, ami ilyet tud SPI-vel: https://github.com/rizsi/playing_with_MCUs/blob/master/D13-12864-SP...PI.ino (Ugye papíron Arduino projekt, de csak AVR-rel működik. Van egy saját rajzolós libem, azt használja, hogy a memóriába rajzoljon, amit utána az OLED-nek kiküld.)
Itt nem is szükséges olyan pontos órajel, ha szükséges akkor meg lehet multiplexelve is.
A lényeg, hogy minél kisebb helyen, a legkevesebb alkatrészből megoldható legyen. Ha jól rémlik, a RESET MOSI MISO láb az lehet ki vagy bemenet is, az SPI programozás az úgyis megy nem?
Hát akkor neked lehet , hogy 1 REDPITAYA vagy hasonló SDR adóvevőpanelka kell.
(nem olcsó ) Azzal tudsz rögzíteni teljes RF spectrumot és azt elvileg ki is tudja sugározni. Azt a kis szegmensét amit a távirányító adó sávszélességében. +/- pár 10 kHz. A hozzászólás módosítva: Okt 13, 2022
> A lényeg, hogy minél kisebb helyen, a legkevesebb alkatrészből megoldható legyen.
Itt például le van rajzolva egy kapcsolás, amiben 3 lábról meg lehet hajtani 6 LED-et: https://www.eeweb.com/more-leds-with-less-pins/ 3 lábat és 3 ellenállást is megspórolsz ezzel a módszerrel. A program egy kicsit komplexebb lesz, és nem tudod egyszerre égetni a LED-eket csak felváltva. Ez utóbbi direkt jó, hogy lekorlátozza a csipen átmenő áramot, ami sok LED-del könnyen túl sok lehet. A 10 LED még pont nem, mert lábanként 20mA és a csipre összesen 200mA szokott lenni a limit (emlékezetből mondom, lásd adatlap), de 11 LED-del már át lehet lépni a csipre adott limitet is. Charlieplexing az általános neve, ezen a néven rengeteg kapcsolást lehet találni: https://en.wikipedia.org/wiki/Charlieplexing Van itt egy táblázat, ez mutatja, hogy elvben hány LED-et lehet meghajtani hány lábbal: n lábbal n2 − n LED-et. > Ha jól rémlik, a RESET MOSI MISO láb az lehet ki vagy bemenet is, az SPI programozás az úgyis megy nem Az SPI programozás úgy működik, hogy a programozó ad egy RESET-et és az után nagyon gyorsan a megfelelő jeleket az SPI-n, így hozza programozó módba a processzort (emlékezetből írom, tévedhetek). A lényeg, hogy a RESET-nek reszet módban kell lennie, hogy működhessen ez, tehát nem használhatod sem inputnak sem outputnak. Kivéve ha 12V-os programozód van, de akkor meg a RESET-re kötött áramkört kell 12V toleránsra megcsinálni. A MISO MOSI CLK lábak esetén annyi az elvárás, hogy az áramkör ne rontsa el a kommunikációt (és a programozás se rontsa el az áramkört!), tehát ha bemenetnek használod ami meghajtaná rendes üzemmódban az ne hajtsa meg programozáskor. A LED-ek csak egy keveset ráterhelnek, nem zavarják a programozást. Egy nyomógomb szintén nem zavar, ha nem nyomásra zárná rövidre a lábat és nem nyomod meg miközben programozol. Néhány tipikus hiba, ami el tudja rontani az áramkörben programozást (In Circuit Programming): Csak 5V-os programozód van, de az áramkörödet 3.3V-ra tervezted ami nem 5V toleráns valami komponens miatt. A nem használt lábakat tápra vagy 0-ra kötötted, és véletlenül a programozó lábakat is. Esetleg nagy értékű kondenzátor van az egyik SPI lábon. Az SPI-re kötött slave hardver a programozás alatt felébred és ő is belebeszél. Én egyébként nyomkövetés/debuggolás céljára szeretem az UART RX/TX lábakat is szabadon hagyni. Mindig megbánom ha későn kapok észbe és már le van foglalva más célra.
Idézet: „ Ha már itt tartunk, a különböző hosszúságú gombnyomásra különböző funkciót megvalósító projektet tudtok nekem mutatni? Teszem fel rövid gombnyommás vált a vonal és pont kijelzés közt, hosszabb gombnyomás pedig ki/be kapcsolja a kijelzőt?” Ha lenyomsz és nyomva tartod a gombot, akkor x időnként ( pl 100ms) növelsz egy számlálót. A gomb felengedésekor megnézed a válltozó értékét és aszerint eldöntöd mit csinálsz. Vagy millis() függvénnyel megnézed mikor nyomtad le és mikor dengedted fel a gombot, a kettő különbsége alapján döntesz.
Példaprogram 3 gombra, rövid és hosszú megnyomás megkülönböztetve, egymástól teljesen független működés.
Rövid/hosszú gombnyomás példa
Másik opció esetleg, hogy bármilyen ,ócsó sdr vevővel 10-20$ vagy kölcsönkérve , rögzíteni a kiadott modulációt, audioban I/Q 2 csatornán, wavban avagy ez amolyan "RAW szerű nyers I/Q" audio jel lesz fájlba rakva.
Majd építeni adó oldalra egy ilyen I/Q modulátort pár mW azon a frekin ahol a vevők fülelnek.(SI5351 vagy hasonló PLL ).2 I/Q audio bemenete és 2 I/Q RF bemenete lesz kimeneten meg ott a előzőleg vett nagyfrekis spectrum amit kiadott a meglévő távirányító. Ez töredéke a redpitaya és hasonló panelek árának. A RAW audiót pl egy wav filet lejátszó is kitudja küldeni.
Vagy csak egy olyan saw rezonator kell ami az adott fix frekin dolgozik és a vett, demodulált , rögzített audio mintával meg modulálni jobb esetben csak OOK szerű , impulzusos AM moduláció történik
Igen már kerestem pár csárliplexinget, kettőt ellenőriztem is, és meg is eszi az Atiny44,
úgyhogy ezzel a módszerrel lesz elkészítve. Úgy marad pár láb akármire még...
Az jó példa, sok sok sorral... Azt hiszem, ezt a megoldást csak végszükség esetén használom fel.
Ennél még egy sima analóg billentyűzet megvalósítása is sokkal könnyebb...
Köszönöm a segítséget!
Viszont, ha nem minden karakternél lenne egy ilyen adok-kapok, akkor már nyerhetnék időt. Megpróbálok valahogy utánanézni ennek. Lehet a librarit kéne átírnom. Szétnézek a kódban... A hozzászólás módosítva: Okt 14, 2022
Itt van a TWI (I2C) megoldás formailag Arduino libként, ami annyiból nem teljesen Arduino, hogy csak ATMega328-on működik meg hasonló ATMega-ákon. https://github.com/rizsi/playing_with_MCUs/tree/master/libraries Már nem emlékszem minden részletre hogy hogyan működött, de van egy TWI lib, ami a TWI felett ad egy absztrakciót, és erre épül ez, ami az OLED-et meghajtja: https://github.com/rizsi/playing_with_MCUs/blob/master/libraries/ri...ED.cpp De sajnos ez egy rendkívül kaotikus lib, mert benne vannak a blokkoló függvények is, meg a nem blokkoló változat is egyetlen forrás fájlban. Az oledData függvény tölti fel a képet az OLED-re, és a TWI libet a twiBulkData(fillCommand); paranccsal használja, ami úgy működik, hogy a fillCommand-ot hívogatja, hogy adja a következő küldendő adatot, a fillCommand pedig végigmegy egy állapotgépen. Még a commentek sincsenek szinkronban a kóddal. Szóval nem a legjobban követhető példa, de legalább garantáltan működőképes kód, mert egy kütyümben ez ketyeg évek óta.
A fillCommand állapotgépes megvalósítást ki lehet koppintani ebből a példából, ha nem pont ilyen kijelződ van. A hozzászólás módosítva: Okt 14, 2022
Hát, hogy ezt így meg tudom-e csinálni, az majd kiderül. Mindenesetre ezen a nyomvonalon indulok el, köszönöm a segítséget!
Pedig tök egyszerű és könnyen áttekinthető, csupa egyszerű megoldás, hogy a kezdők is megértsék, kimenetek kezelésével egybekötve, hogy lehessen látni is, hogy mi történik. Gondoltam 1 gombhoz tartozó kódot csak sikerül kiemelni belőle. Megcsináljam neked?
Sziasztok ,régebben volt ez a kód, de ez 2 szegmenses kijelzőre van:
Működik is ,csak most u.ezzel TM1637 kijelzőre kéne átalakítani(amin csak 4 kivezetés van Tudna valaki segíteni az átírásban? Köszi A hozzászólás módosítva: Okt 17, 2022
Moderátor által szerkesztve
Egész nap keresestem egy Arduino stoppert de csak 1602- kijelzőre találtam,ha tud valaki
1637-re kérem ossza meg
Hát most ott járok egyenlőre, hogy oszcilloscop-on megmértem a kezdő (szinkronizáló) és logikai 1, és nullák alakját, majd egy kimenetet kapcsolgatok az ennek megfelelő időkkel. Nem a leg elegánsabb, de működik. Később megpróbálok valamivel szofisztikáltabb megoldást keresni.
Amivel vetted és amiről szkópra varázsoltad a demodulált négyszögeket , ugyanúgy akár wav fájlba is rögzítheted, persze ha belefér a hangkari mintavételi sebességébe az impulzusok "alakhűbb" rögzítése. Azt lejátszhatod vissza,feltéve ha kényelmesen tudsz szkópról pulzusok hosszát saccolni akkor jó. De lehet egy audio dsp program többet tudna segíteni ebben is.(pl.:audacity)
Sziasztok!
Arra lenne szükségem, hogy egy mikrovezérlő érzékelje a 230V-os hálózati feszültség meglétét egy kapcsolt kábelen. Az egész kapcsolás hálózati feszültség alatt lesz, a tápot egy trafó nélküli tápból fogja kapni, így a 230V figyelését sem kell leválasztva megoldani. Az alább skiccelt kapcsolás megfelelő?
Ez a kapcsolás másodpercenként 50 szer húzza le a GPIO -t.
Én leginkább leválasztanám a hálózatról a bemenetet, mert ha valami baleset folytán elszáll a tranzisztor, viszi magával a vezérlőt is. Ezenkívül én MOSFET-e használnék, és lezáráshoz egy nagyobb ellenállásal lehúznám a gate-t (vagy bázist). De a leg egyszerűbb ha beteszel egy pici relét. Az garantáltan leválasztja a bemenetet a hálózatról és nem kell szoftveresen kikerülnöd a másodpercenkénti 50 GPIO lehúzást. A hozzászólás módosítva: Okt 17, 2022
Van erre egy külön topik, s ott láttam egy optocsatolós megoldást, ami megoldja a galvanikus leválasztást is: Bővebben: Link
Én hasonló feladatot egy glimm lámpával és egy fotoellenállással oldottam meg. A fotoellenállás egy 22k-s ellenállással sorosan feszültség osztót alkot. Fényben a fotoellenállás 100 ohm nagyságrendű, sötétben megaohm nagyságrendű. Egy kondival meg van szűrve az osztó közös pontja, hogy az 50 hertzes jel ne jöjjön át. Digitális láb figyeli a fesz osztó állapotát.
Le is van választva és egyszerű is.
Szerintem teljesen jó az a kapcsolás. Mutatok egy képet egy ipari elektronikáról, melyből a mai napig több mint 10.000 darab működik, élettartamuk pedig legalább 15 év és akkor is kizárólag a tápjuk megy tönkre. Ezen a panelen 230V-ot fogadó bemenetek vannak, és mint látható, kizárólag ellenállásokkal van illesztve a processzorhoz. Soha nem volt még meghibásodása ezeknek az áramköröknek, soha nem ment még tönkre a proci, pedig jópárat már javítottam és még több megfordult már a kezeim között. Nagyon egyszerű és stabil elektronika.
Szerintem a kolléga sem a kapcsolást joságát vonta kétségbe, hanem a megoldást, hogy az egész alacsonyfeszültségü elektronikát felkötik a hálozatra, annak minden veszélyével és hátrányával.
|
Bejelentkezés
Hirdetés |