Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Most így eslő körbe nem megy, külön/külön, ha a másik 3 közös vezetékkét kikötöm, akkor oké, de együtt nem oké, ez majd holnapra marad.
Köszi az útmutatást.
Arra vigyázni kell, hogy emlékeim szerint az SD kártya az 3.3V-os, és nem 5V toleráns. Az Arduino pedig többnyire 5V-os.
Az SPI úgy működik, hogy felhúzó ellenállás van rajta fixen és a csipek csak lefelé húzzák a vonalakat. Biztonságosan úgy lehet a 3.3V-os klienst bekötni, hogy az Arduino-ra egy ellenálláson keresztül kötjük a közös vonalat, és egy a 3.3V-ra kötött diódával biztosítjuk, hogy ne menjen a vonal 3.3V(+dióda .3V-ja) fölé. A felhúzó ellenállást pedig a 3.3V-ra kötjük. Az összes klienst is persze érdemes egy áramkorlátozó ellenállással védeni attól, hogy esetleg egymással szembe húzzák a vonalat. Így működni fog. (Van ebben egy trükk: az Arduino a 3.3V-ot már biztosan magasnak érzékeli, legalábbis ATMEGA328 alapú Arduino esetén. Vannak csipek, amiknél ez nem így működik, azokkal bonyolultabb lesz a szintillesztés megvalósítása.)
Köszi az infót!
Tulajonképpen nekem is ilyen gondom van, de nem foglalkoztam vele sokáig. PIC-nél eleve 3.3V-os minden, de a SPI nem akar összejönni egy RAM és DAC között. Láttam bizonyos megoldásokat, de nem indultak el. Meg a freki sem alacsony nálam, ezért torzulhat is a jel esetleg. Egy kis móricka rajzot tudnál küldeni arról amit mondtál, pl két SPI cuccra? De nekem minden 3.3V-on megy. Épp akartam a kérdezőnek mondani, hogy nálam eddig ment a dolog... De értem nagyjából. A diódás megoldást még nem láttam. A felhúzó ellenállások minden vonalra kell? SCK, MOSI,MIO, /CS? Meg a diódák is? Köszönöm!
Sziasztok!
Ki lehet olvasni USB-n keresztül egy már felprogramozott Arduino áramkörből hogy milyen program van feltöltve rá?
Szia!
Nem lehet.
És más módszerrel?
Úgy tudom, hogy sehogysem lehet. Sőt vannak olyan készülékgyártók akik felprogramozás után elégetnek egy szálat a kontroller belsejében hogy még biztosabb legyen a dolog.
Elveszett egy megirt programod?
Nem, csak már nem tudom melyik változat lett feltöltve.
Régebben PIC esetében ICSP csatlakozón lehetett csak kommunikálni, de ott oda/vissza működött a dolog - hacsak be nem volt állítva valami védelem a kiolvasásra...
Talán próbálkozott már valaki ilyennel de csak az egyesek és nullások jöttek vissza és nem tudták értelmezni mivel ez csak gépi kód volt, nem programnyelv mint PL a C++ .
Ha nem veszett el akkor könnyű dolgod van , csak vissza tőltöd amit használni szeretnél és kész.
Előre mutató dolog lehet, hogy a jövőben kiiratod induláskor a verzió számot soros vonalon, és nem lesz ilyen gond. Nyilván most nem segít rajtad, de jó gyakorlat lehet.
Én minden fontos változtatás után vagy más néven mentem el a programot vagy ugyanazt átnevezem mentésnél, de a te módszered is jó ötlet.
Ennél én többet szoktam, csak most ez kapcsolódott! Minden mérföldkő elérésekor (bármilyen kicsi is az a mérföld) betömörítem az egész projektet, megy az archívumba. Ha fontos a projekt vagy nagy mérföld volt, akkor két külön eszközön. Aztán verziószám váltás, és lehet írni tovább. Eszköz alatt pedig a helyi merevlemezt értem meg a nast ami epedve várja hogy etessem
A hozzászólás módosítva: Máj 1, 2023
PIC-eknél, ha nincs beállítva a reed protect, akkor a hex-et ki lehet olvasni, nyilván ezzel se lennél előrébb, max rá lehetne írni egy másikra. Szóval, a legjobb esetbe is csak a hex lenne a kezedbe, abból pedig a kódot visszafejteni....
Idézet: „abból pedig a kódot visszafejteni” Na az nem fehér embernek való! A hozzászólás módosítva: Máj 1, 2023
két külön arduinoval csináltam egy SD kártya és egy RFID kezelő alkalmazást, ezt kell most egybe építeni. Tehát eddig se volt gond a feszültség szinttel. Egyébkét lehet, hogy két féle sd kártya shield van, az enyémbe van 3,3V-os stab ic, nem is működik 3,3V-on.
Az mosi,msio,sck lábakon 4V-ot mértem, ez esetleg a rfid-re lehet veszélyes, mert az viszont 3,3V-on megy, eddig nem volt vele gond...
Arduino UNO? Simán ki lehet, alapból nincsen ez ellen semmilyen védelem beállítva. A csip tud kiolvasás védelmet, de alapból nincsen bekapcsolva. Ezzel a paranccsal ki lehet elviled olvasni:
(A visszaolvasás az Arduino bootloader standard funkciója, alapból íráskor is mindig kiolvassa és visszaellenőrzi az eredmény.) Az más kérdés, hogy mire mész vele? Elvben össze lehet hasonlítani azokkal a hexekkel amiket feltöltöttél rá, hogy melyik verzióval egyezik. Arra kell vigyázni, hogy a kiolvasáskor nem tudja, hogy mekkora volt a program, a teljes program EPROMOT kiolvassa, tehát a program utáni üres blokkokat, vagy akár szemetet is. Az egyezést tehát nem triviálisan egyszerű megkeresni. A beírt program formátuma hex, a kiolvasás pedig bin lesz, ezzel is számolni kell. Meg lehet csinálni persze, kérdés, hogy van-e értelme. A hozzászólás módosítva: Máj 1, 2023
Idézet: „Az mosi,msio,sck lábakon 4V-ot mértem, ez esetleg a rfid-re lehet veszélyes, mert az viszont 3,3V-on megy, eddig nem volt vele gond...” Eddig nem volt vele gond... Lehet így is dolgozni, de célravezetőbb, ha az ember kikeresi az adatlapokat, hogy minek mi a tűrése, mit szabad rákötni és mindent az adatlap szerinti szabályos tartományban hajtani. Az a baj azzal, ha nem felelünk meg pontosan az adatlapok által előírt szabályoknak, hogy a legrosszabbkor válik megbízhatatlanná a rendszer és nagyon nehéz debuggolni, hogy mi a baja.
Erre való a verziókezelő: minden változáshoz írhatsz egy kis megjegyzést, hogy az mire volt jó, és szinkronizálhatod gépek között automatikusan. Évekre visszamenőleg minden sorra rá tudsz keresni, hogy melyik mikor és milyen megjegyzéssel került be. A jól működő verziókat megjelölheted, stb.
Lerajzoltam ezt az egyszerű SPI szintillesztőt. Igazából pont ilyet még nem csináltam, úgyhogy csak egy tipp. Ha az SPI minden vonala alacsony aktív, akkor minden vonalára működik ez az összekötés amiből lerajzoltam egyet.
Magyarázat: * az 500Ohm a pin-ek mellett az áramot lekorlátozza, hogy semmi nem tud tönkremenni. * a dióda a vonalat lekorlátozza, hogy nem tud 3.6V fölé menni, azaz 3.3V plusz a dióda nyitófeszültség fölé. Ez biztonságos a 3.3V-os eszközöknek is remélhetőleg, mivel az ő bemeneteiken egy ugyanilyen dióda van. (Helyette jó lehet egy 3.4V-os Zener is, amit meg a GND-re kötünk, azzal pontosabban le lehet korlátozni 3.3V-ra.) * a felhúzó ellenállás tartja 3.3V-on magasban a vonalat amikor senki nem vezérli, ahogy SPI-n illik Ha végigzongorázod a lehetséges állapotokat minden pinre (bemenet, ki 0, ki 1) és az összes kombinációt, akkor azt kell látni, hogy minden állapotban minden pin az adatlapi speckón belül működik és a szabályos állapotokban azt a bemenetet kapja, amit kell neki. Ennek feltétele, hogy az 5V-os PIN a 3.3V-os inputot stabilan magasnak vegye, ami nem minden 5V-os eszközre igaz, de történetesen az ATMEGA328P-re igen.
Becsszó, én próbáltam a gitet többször is, de nekem az létidegen, nem áll kézre. Továbbá ha két verzióval visszább érdekel hogy mit szúrtam el, nekem látványosabb a teljes fájlt csak átfutni, és ha nem az volt akkor az azt megelőzőt..
A hozzászólás módosítva: Máj 2, 2023
A gittel pont ezt tudod megtenni. Ráadaásul ha nem csak a saját gépeden mented, hanem azonnal fel is tolod egy szerverre, akkor van biztonsági mentésed is.
SPI esetén elég két ellenállás egy vonalra, a vonalak egyirányú utcák, nem úgy mint pl. az I2C esetén.
Azért az ilyen +3.3V-ra kötött schottky diódás szintillesztőknél nem árt arra figyelni, hogy a +3.3V-os tápágon mindig legyen akkora áramfelvétel, ami ezeket az áramokat el is tudja nyelni, ellenkező esetben meg fog emelkedni a +3.3V-os tápfeszültség. Amúgy ezek a védődiódák a legtöbb mikrokontrollerbe eleve be vannak építve, ezért inkább az egyéb 3.3V tápfeszültséget igénylő áramkörökben (sd kártya, wifi modul, stb.) szükséges a dióda. Kontroller esetében esetleg elegendő lehet az áramkorlátozó ellenállás is (bár ártani ott sem árt a plusz dióda).
Ha változásokat akarsz nézni, arra pedig vannak diff nézegetők, nekem a meld a kedvencem: http://meldmerge.org/
A git-tel össze van boronálva, a
Ez nem az Arduino miatt van fixálva, hanem a panelon lévő AVR miatt. Ha pl megnézed az ATMEGA328 adatlapját látható hogy a beépített perifériák (ADC, I2C, SPI, stb.) melyik lábakon vannak kivezetve. Ezen nem lehet változtatni.
Egy kivétel van csak, ha szoftveresen van emulálva az adott periféria, (pl. Aruino software SPI) de ez minden esetben lassítja a program futását, hiszen kihagyásra kerül az adott periféria. Ráadásul valamelyik beépített TIMER is használva lesz hozzá, amit addig más programrész nem használhat. Olyan mintha a pc-n kihagyásra kerülne a GPU, és minden videó számítást a CPU végezne, ami ugyan működne, de pont a hardver előnye veszne el. Egy kis segítség az SPI használatához SPI 5V -> 3.3V meg nem érdemes sokat agyalni, mivel egy Cola is többe kerül szint illesztó
Szerencsés esetben a lehetséges feltölthető fájlok közül az, aminek az utolsó módosítás dátuma a legfrissebb.
Köszi, párhuzamosan bekötött variációt próbálom megvalósítani, sajnos amikor a SD inicalizálása megtörténik akkor hibát dob.
Idézet: „egy adott slave-vel való beszélgetéshez az adott slave SS-vonalát alacsonyra kell állítani, és a többit magasan tartani.” Ezt most, hogy kell érteni? Nekem kell leprogramozni, hogy a többi SS lábat tegye 4V-ra?
Lásd melléklet.
SCK, MOSI és MISO vonalak közösek, a CS vonalak egyediek. A szolga onnan tudja hogy neki szánod/tőle kérsz adatot, hogy a hozzá tartozó CS vonalat L szintre kapcsolod. |
Bejelentkezés
Hirdetés |