Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Hülye kérdés, de a soros monitort, hogy tudom úgy megnyitni, hogy már eleve nyitva legyen amikor újra indítom az eszközt. Lemaradok a void setum eseményéről.
Megvan.
parancs kell EEprom, write után Attól függetlenül a sosos monitoros kérdésem aktuális még.
Elindítod a soros monitort majd az arduino-n vagy egyéb fejlesztő eszközön nyomszegy resetet. Akkor látod mi történik az ujraindulás után egyből.
A hardweres reszetet azt vágom, de az arduino felületén hol van?
Jobb felső sarokban kicsi ablak ott tudod megnyitni és beállítani a sebességet és egyéb paramétereket.
Nem a soros monitor (az megvan) hanem a reset., az hol van?
Srácok, agyon lehet vágni az arduino egyik bemenetét, ha 5 helyett 5,5V ot kap?
Egy PC táp bekapcsolt állapotát akartam vizsgálni, az egyszerűség kedvéért a PC táp testelését és az arduino testelését közösítettem, majd a pc táp 5 voltát az egyik bemenetre. Valamiért nem tetszhetett neki, azóta 55ohm-ot mérek a G és az adott GPio lábon. Nem értem miért történt ez.
Emiatt tönkre tud menni:
SCR Latch-up "A common cause of latch-up is a positive or negative voltage spike on an input or output pin of a digital chip that exceeds the rail voltage by more than a diode drop." Ha a bemeneten nagyobb a feszültség a tápfeszültségnél 1 dióda feszültségesésénél, akkor szilícium lapkán lévő parazita PNPN átmenet (mint egy tirisztor), kinyit és rövidzárlatot okoz. A zárlaton átfolyó áram pedig tartós károsodást okoz az adott helyen.
Köszi, megoldottam egy pici relével leválasztottam, így a 3.3Vot kapcsolja, sajna nem úszta meg a panel, érdekes módon lehetett rá programot tölteni, de hiába írtam át egy másik GPio portra, meghóót. még jó, hogy van másik
Sziasztok
Valaki tapasztalt már olyat , hogy 2 analog mérést csinálok A0, és A3-as lábon szokásos analogRead-el A3-ra van kötve egy LDR, A0-n nincs semmi. Mindkét mérést kiíratom lcd re és A0-n is mér az arduino ahol nincs is semmi bekötve (bár nem ugyanazt az értéket de a fény hatására változik az is)
Sziasztok!
Építettem egy ébresztőórát Atmega328 mikrovezérlővel, ami az időmérést a Timer2-ről végzi aszinkron módban egy 32.768Hz-es kvarccal. Az érdekesség az, hogy az egyik mikrovezérlővel pontosan jár, egy másik mikrovezérlővel óránként egy másodpercet siet. Mitől lehet ez?
Cseréld fel a 2 kvarcot és úgy nézd meg.
Egy kvarc van és két mikrovezérlő. Az egyik mikrovezérlő a kvarccal pontosan jár, a másik siet.
Nem tudom pontosan eldönteni mi a felállás, de gondolom 1 kvarc hajtja meg minden esetben a két mikrovezérlőt is. Ha minden beállítás egyforma a két mikrovezérlőn, akkor ennek nem szabadna előfordulna.
Amikre gondolok: -A két kód nem azonos a két mcu-n. -A két mcu beállításai nem egyformák. (timer előosztó(nem valószínű, mert akkor többet tévedne szerintem), bootloader-eltérés, megszakítás kezelés, ilyesmi) fuse bitek? Nem tudom. A PIC16F-nél mentem bele jobban, ott az előosztókon keresztül a legutolsó regisztert is be kellett állítani, itt is ilyesmi lehet. (ott pragma config-ban is lehetett eltérés) Azonban ha a timer2 közvetlenül kapná az órakvarc jelét, és megszakításban kezelnéd, akkor mindig pontos lenne. Ekkor lehetne 16MHz másik kvarcot rátenni, ami az mcu-t hajtja. Ekkor a megszakítások között az mcu-nak sokkal több utasításra lesz ideje. Főleg úgy, hogy a 32768-at bőven le tudod osztani. De ezek csak első blikkre jöttek elő, megnézem az arduino leírását, pontosabban az ATMEGA-leírását.
A felállás az, hogy építettem egy órát atmega328-cal, aminek a főprogramját a belső 8MHz oszcillátor hajtja. Az időmérésért egy 32768Hz kvarc felelős, ami aszinkron módban működteti a Timer2 számlálót, túlcsorduláskor megszakítás. A gond az volt, hogy az óra jelentősen sietett (óránként egy másodpercet). Egy korábban már tesztelt és jól működő programot töltöttem fel a mikrovezérlőbe, szóval programhiba kizárva. A fuse bitek is jól vannak beállítva. Ha az osztás lenne rosszul beállítva nem egy másodperc lenne az eltérés 60 perc alatt, hanem szorzódna/osztódna a sebesség.
Kicseréltem a kvarcot, gondolván, hogy az a rossz. Továbbra is sietett. Kicseréltem a két kondenzátort a kvarc lábairól, de nem javult a helyzet. Kicseréltem a mikrovezérlőt és az óra pontosan jár. Idézet: „Kicseréltem a mikrovezérlőt és az óra pontosan jár.” Uhh, de durva! Lehet hogy valami kínai dolog? Nem ugyanaz a műszak gyártotta az egyiket mint a másikat?
Azon lehet elgondolkozni a firmwre ismeretében, hogy ha az MCU elsődleges órajelét kis mértékben változtatod, az okozhat-e ilyen jelenséget azáltal, hogy eggyel több vagy kevesebb impulzust tud beszámolni.
Nyilván egy tökéletesen megírt firmware esetében ez nem fog előfordulni, de mint tudjuk minden program tartalmaz legalább egy változót, egy ciklust és egy hibát.
Piceknél az volt a tapasztalatom, az óra akkor volt pontosabb, ha a timmert végig számoltattam ( 0-65536), ha áttértem az 1Hz- s alapórajelre, akkor a megszakítás már tévedett ( nem volt mindegy, hogy egy egy ciklusos, vagy egy több ciklusos utasítás közben következett be.) Ha az alapórajel 0.5 Hz, akkor a timmer magától újratöltődik, és 2s van a jel feldolgozásra. Ebben az esetben tényleg érdekes a processzor függőség. Esetlegesen a kristály frekvenciáját a tápfeszültséggel is lehet kis mértékben "állítani", bár ez már túlesik szerintem rajta.
Hogy tudom változtatni az alap órajelet? Ha fuse bitekkel beállítom a belső 8MHz-re, akkor az annyi és más egyéb állításu lehetőségem nincs. Vagy igen és én tudom rosszul?
Kínai a dolog, mert aliról származik a cucc, de arra odafigyeltem, hogy megbízható legyen a forrás. Eddig ilyet még nem tapasztaltam.
Valójában nem tudom mi okozza ezt. Ha belegondolok, olyan, mintha 8 timer2 utasítással hamarabb történne a túlcsordulási esemény. Mi okozhat olyasmit, hogy a timer2 nem nulla kezdőértékkel indul? Esetleg a két mcu nem 100%-ban azonos felépítésű, vagy a feltöltött hex fájlok nem ugyanazon az IDE-ben készültek, mert esetleg az IDE más-más képen optimalizált. Gondolom ez nem fordult elő.
Arra gondolok, hogy valamiért a két mcu-ban az a különbség, hogy a timer2 túlcsordulása után memória szemétből olvas be kezdőértéket a timer2-nek, így az 8-al indul. Nézd át a kódot, nullázd ki a timer2-t mindenhol, nézd meg hogy ne kapjon memória szemetet semmiképpen, és azt töltsd fel mindkettőre. Esetleg egy apró eltérés a memória táblázatban (hibás memória terület, ami ki van kerülve) szemeteli ezt. Éppen 8-cal. 32768/3600 nagyjából 8. Erre tudok gondolni.
Este van, bocs...
Mi van ha a timer2 regiszterében egy bit beégett? Azaz nem tudod kinullázni? Ezt leellenőrizhetnéd, úgy hogy a timer2-t kinullázod, de nem indítod el. A soros monitorra meg kiíratod a megfelelő regiszter tatalmát. Ha az nem nulla, akkor az gond lehet. Ebben az esetben az mcu hibás. Mondjuk csak a timer2. Ennyi kis kódot megérne szerintem. Valami ilyesmi hibára gondolok.
Tudom, hogy OFF, de én alis 328PB-vel jártam úgy, hogy nem bírta a 16 MHz-et és fagyott a megszakításoktól. A hazai, megbízható forrásból származó nem csinált furcsaságokat.
Csak érdekességképpen: én a BluePill prociját próbáltam húzni egy kicsit 72MHz-ről. Az eredeti proci (több példány is) vígan ment 128MHz-en, míg a kínai verziókat 104MHz-ig lehetett húzni mielőtt lefagytak.
Nem akarlak elkeseríteni, de szerintem az eredetinek kikiáltott csip ugyanúgy Kínában(de legalábbis keleten) készül, mint az amit kínai verziónak kiáltasz ki... Ezeket nem lehet csak úgy klónozni..., pontosabban vannak klónszerű kínai verziók is, de azok sem klónok, saját(részben) fejlesztés, pl GigaDevice..., saját márkanév alatt!
Nem fogalmaztam eléggé pecizen, hogy röviden tudjam leírni.
Amit eredetinek írok: - megbízható alkatrészboltban beszerzett, biztosan nem átfeliratozott, nem selejtből kiszedett, stb. processzor, hanem az amit a gyártó azon a tipusnéven gyáert. Amit kínai verziónak írok: - kínából rendelt, BluePill paneleken levő, processzorok amelyek a feliratuk szerint (és elméletileg) megegyeznek a fentebb leírt proceszorral, de valójában és gyakorlatilag nem. Több kisebb nagyobb különbség felfedezhető.
Igen, a kínai "hamisított" félvezetők általában a gyártó saját specifikációin fennakadó, nem(túl) legálisan kínai piacra kikerülő occó verzió. Általában teljesen ugyanaz, mint az, amit a gyártó forgalmaz, de előfordulhatnak kisebb paraméterromlások is, sőt vannak durva átverések is, de az már egy teljesen másik téma....
Jónapot.
Érdeklődnék. Arduinoból szeretnék építeni egy kezdetleges motorvezérlő egységet. Hall jeladóval oldanám meg a gyujtás és hengerenkénti befecskendezést. A jeladók 5 volton dolgozva adnák a jeleket az egységnek, viszont az injektáló szelepek 12volton dolgoznak. Relépanellal nyilván nem megoldható a dolog, így érdekelne milyen eszközt lehetne bevetni hogy átalakítsam az 5 voltos jelet 11-14volt kb 7 amperra? Köszönöm szépen a segítséget előre is. |
Bejelentkezés
Hirdetés |