Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   760 / 839
(#) Massawa hozzászólása Jan 6, 2023 /
 
Még egy kérdés.
Ha a LAN shieldet felrakom az Arduinora, elképzelhetö, hogy a LAN csatlakozáson keresztül lehet távolbol program upgradet is csinálni. Tudom, hogy ez egy veszélyes vállalkozás, de kellene valami, hogy ne kelljen felmászni télen a toronyba. Esetleg van még olyan opcio, hogy a shielden van egy SD kártya hely is. Ha abba be lehetne tölteni a LANon keresztült az uj kodot, majd azt onnan betölteni az Arduinoba.
Ilyet még nem csinaltunk, de miután az antennaforgato már müködik felmerültek ilyen kérdések is.
A hozzászólás módosítva: Jan 6, 2023
(#) benjami válasza Pethical hozzászólására (») Jan 6, 2023 / 1
 
Mivel nem közölte melyik típusról van szó, nem lehet több infót megadni. De 16 analóg bemenete a 48 lábúaknak nincs, ezért nagyobb lábszámúnak kellene lennie. És az analóg bemenetek csak 0..7 csatornáig vannak a GPIOA-ra kiosztva.
(#) Josi777 válasza Jonni hozzászólására (») Jan 6, 2023 / 1
 
A STM32 esetében más a kivezetések számozása, az "A" nem az analóg, hanem a port jele, úgymint PA, PB, PC, ... stb.
(#) Josi777 válasza kiborg hozzászólására (») Jan 6, 2023 /
 
Próbáld ki a
  1. digitalWriteFast(PORTPIN, x);

utasítást. Ha az sem elég gyors, akkor a közvetlen port írás van még, ahogyan azt Petchical kolléga írta. Minden PORT-hoz tartozik egy ODR (Output Data Register) regiszter, amin keresztül tudsz írni a kivezetésekre. Pl.:
  1. GPIOC -> ODR = 0xF10D

Ez a módszer egyszerre írja az összes PIN-t, ezért a maszkolásról neked kell gondoskodni.

Azt tudja valaki, hogy ha egy rövidítésben angolul szerepel a Register szó, akkor a magyar nyelvben a rá való hivatkozáskor ki kell vagy lehet írni, hogy regiszter?
"ODR (Output Data Register) regiszter"
Egy hasonló példa, amikor LED-et írunk, de gyakran LED diódaként is említjük.
Van erre valamilyen szabály, vagy úgymond érzéssel használjuk, hogy hogyan gondoljuk magyarosnak?
(#) proli007 válasza Josi777 hozzászólására (») Jan 6, 2023 /
 
Hello! Lehet stilizálni, de szerintem a műszaki nyelvnél nem kötelező. Az érthetőség a lényeg. De számtalan meghasonulás van a köznyelvben is Pld. "Bacon szalonna"..
(#) asch válasza Massawa hozzászólására (») Jan 7, 2023 /
 
Elképzelhető, hogy a LAN shield tudja ezt a feature-t a standard Arduino rendszeren belül: reszeteli a hoszt Arduinot, és programozó módba léptetni és távolról elérhetővé teszi az Arduino programozó interfészt. Nem hallottam ilyenről, de meg lehet csinálni, úgyhogy olvass utána a shieldednél, hogy van-e ilyen funkciója!

Alkalmazás szintjén is a csippel biztosan meg lehet csinálni, de nem tudok standard megoldásról az Arduino keretein belül. Egy hasonló csipre (attiny1624) csináltam ilyen megoldást, de nem került élesbe még, és annak másképp működik a bootlader megoldása. Így lehet megvalósítani nagyjából:

* Három részre osztod a program memóriát: bootloader, éles program, upgrade program. A program tehát a memória mínusz bootloader részének a felét használhatja. A bootloader nagyon egyszerű lehet, egyetlen szegmensbe befér.
* A bootloader programba bele tud hívni az alkalmazás, és képes a netről jövő programot a flash nem használt részére másolni. Mikor készen van, akkor megjelöli, hogy kész, és jöhet az upgrade: reszeteli magát szoftveresen a program.
* A következő indításkor a bootloader látja, hogy van egy új program, és ezt a helyére másolja. Innentől az új program fut.

Ehhez egyedi bootloader kell, amit SPI programozóval kell feltenni, és utána nem az Arduino-n keresztül lehet az alkalmazást rátölteni, hanem SPI programozóval, vagy az alkalmazás saját SW upgrade megoldásával.

Nem egyszerű, de meg lehet csinálni. Szerintem vannak működő példák a neten ATmega328-hoz.
(#) Jonni válasza Josi777 hozzászólására (») Jan 7, 2023 /
 
Én hiszek neked de érdekes , hogy NUCLEO panelnél minden "A" jelű láb analogot jelől és van is egy megjegyzés ami igy szól " Csak a kék/fehér vagy zöld/fehér színnel írt címkéket (pl. PA_4, PB_5, A0, D14, LED1...) szabad használni a kódban. A többi címkét információként adjuk meg (alternatív funkciók, tápcsatlakozók, ...). "
(#) Jonni válasza Jonni hozzászólására (») Jan 7, 2023 /
 
Szerk
kiborg azt irta " A0-A15-ig " az pedig anakogot jelől. A P kezdetüek Morpho elnevezések de ott mindig P-vel kezdődik nem "A"-val
(#) vargham válasza Jonni hozzászólására (») Jan 7, 2023 /
 
A Nucleokon kétféle névvel is illetik ugyanazokat az MCU lábakat. Van Arduino nevük, mint A0 meg D1, illetve az STM32 dokumentációban (és a definíciós fájlokban) használt port/pin nevek, mint PC8, stb.
(#) Jonni válasza vargham hozzászólására (») Jan 7, 2023 /
 
De erősits meg légyszi. Olyan digitális láb nincs ami A-val kezdődik? Vagy ha van akkor hol van annak az adatlapja?
(#) Feri007 válasza Massawa hozzászólására (») Jan 7, 2023 /
 
Már csináltam hasonlót, nem ment élesbe, de működött.
Az Arduino uart interfészére soros - ethernet konverter került (RFC 2217).
A DTR jelet át tudják vinni ezek az adapterek - már amelyik - amitől reset-elődik a cél Arduino,
tehát bootloader üzemmódba kerül. Így tölthető a program.
(#) Massawa válasza Feri007 hozzászólására (») Jan 7, 2023 /
 
Kószönöm mindkettötöknek. Igen kb az az eljárás amit asch kolléga leirt. Az Arduino volt a bizonytalan pont az ügyben, illetve még mindig az, mert Arduino bootloader és környezet nélkül már csináltunk sok ilyen megoldást. ( a barátom és régi kollégám ASMben irja a profi programokat az Atmel procikra, és a berendezéseit alapbol távolbol konfigurálja, és hangolja a felhasználok igényeihez).
Azokban a kodokban mindig van egy pont, amikor a föprogram megnézi, hogy van upgrade vagy nincs. Ha van, akkor elinditja a subrutint ( az uj bootloader) a LANrol és betölti az uj kodot.
Csak az nem tudom, hogy a két eljárás esetén mennyire használhato ugyanaz a kod környezet. Az Arduino eredeti programja az abban a C nyelvben lett megirva, amit használunk az Arduino IDEben és az Arduino bootloadere a kompilacio után tölt be. A barátom esetében alapbol mindig ASMben irt kodok vannak amik nyilván sokkal kisebb terjedelmüek és az ö munkája mind a két verzio..
Na meglátjuk, nem én fogom a kodot irni, mert a meglevöbe kell beiktatni a remote upgrade lehetöségét ( ahhoz meg kell a kodfejlesztök beleegyezése ).
Csak elvben érdekelt a kérdés, mert az eredeti Arduino kod vagy 12000 soros s gondolom, hogy az upgrade verziok sem lesznek/lehetnek rövidebbek.
Egy kicsit az zavar, hogy nagyon profi a kod, számol mindennel ( vagy 2 tucat rotátort támogat), GPS, Nap illetve Hold követö rutin, QTH protokol, de nincs benne finom hangolási lehetöség, illetve távoli upgrade. Na mindegy. Meg kell majd beszélni a fejlesztökkel.
Köszönöm még egyszer.
(#) Massawa válasza Feri007 hozzászólására (») Jan 7, 2023 /
 
Idézet:
„A DTR jelet át tudják vinni ezek az adapterek - már amelyik - amitől reset-elődik a cél Arduino, tehát bootloader üzemmódba kerül. Így tölthető a program.”


Itt csak azt nem értem pontosan, hogy ilyenkor a bootloader honnan várja az uj kodot. Az USB röl vagy az SPIröl ahova a LAN port van csatlakoztatva. A mi esetünkben az ASM kodok alapbol mindig az SPIn keresztül vannak betöltve a prociba.
Vajon egyforma a két kod ( nyilván HEX ) ha az USB portrol jön vagy az SPIrol?
(#) Feri007 válasza Massawa hozzászólására (») Jan 7, 2023 /
 
A megoldás nem "általános célú". Tulajdonképp nem arduino-hoz illesztesz Ethernetet, hanem a soros portját hosszabbítod ki Etherneten. A bootloader mindig a soros porton várja az az új kódot.
meglévő lan-os protokollhoz ez aligha fog passzolni.
Egyébként emelem kalapom az előtt, aki ASM-ben ír bonyolult programokat. A kód karbantarthatósága egyre fontosabb, valami magasabb szintű nyelven érdemes az ilyet készíteni. Én ma zöldmezősen nem fognék ilyenbe.
A hozzászólás módosítva: Jan 7, 2023
(#) kiborg válasza Josi777 hozzászólására (») Jan 7, 2023 /
 
Köszi mindenkinek!
Kipróbálom a dolgot.
STM32F103 proci. PA0-15-ig vannak, ez egy kijelző címzését látná el, maszkolás ebben az esetben nem lesz lényeges, csak a sebesség.
Igen, itt PA az az A port, PB az a B port, PC pedig C port. Nem analógnak minősül, illetve az is ott van, de jelenleg nem lényeg.

Köszönöm!
(#) Feri007 válasza Feri007 hozzászólására (») Jan 7, 2023 /
 
Egyébként mondok mást. Ha vezetékes ethernet megy fel a toronyba, akkor biztosan egy UTP kábel. Annak 2 érpárja elég fast ethernethez, a maradék 2 érpáron pedig megoldod az upgrade-et.
(#) Massawa válasza Feri007 hozzászólására (») Jan 7, 2023 /
 
Lehet, hogy rosszul fejeztem ki magam.
Éppen ez az, hogy az adatokat az eredeti bootloader ( USB) a TX/RX portokon várja ( PD portok a 328-son). A LAN shield meg a SPI porton csatlakozik a procihoz ( PB port).
Gondolom ezért fog kelleni egy uj bootloadert irni ami SPIn fogadja majd a kodot.
Azon a LAN shileden valami W5500 chip van.
LAN shield
( amugy én is 2019-ig csak ASMben meg Basicban tudtam progit irni, akkor egy baleset miatt pár hetet ágyhoz lettem kötve, akkor vettem az elsö Arduinot meg kezdtem tanulni a nyelvét. A barátom meg 1982 ota épiti profi berendezéseit kizárolag ASM kodokkal. Több évig neki dolgoztam a berendezések optimalizására a felhasználoknál).
A hozzászólás módosítva: Jan 7, 2023
(#) Massawa válasza Feri007 hozzászólására (») Jan 7, 2023 /
 
A baj az, hogy a torony egy kb 600 m magas hegy tetején áll kb 10 km a lakástol. ( télidöben szinte elérhetetlen.)
Vannak ott egyébb kommunikácios berendezések is, meg egy kis épület. Oda elvben be lehet rakni egy PC- t amit a távolbol lehetne kezelni és onnan az USBn át upgradelni, de a fejükbe vették ez a LAN hálozaton keresztül csinálni.
(#) benjami válasza kiborg hozzászólására (») Jan 7, 2023 / 1
 
Szerintem ha nem rébuszokban beszélnél, hanem egyszerűen beraknál egy rajzot (vagy legalább bekötési listát) arról, hogy milyen módon kötötted össze a milyen kijelzőt a milyen típusú kontrollerrel, akkor hamarabb kapnál normális választ.
(#) Massawa válasza Massawa hozzászólására (») Jan 7, 2023 /
 
Csak hogy egy kicsit képbe legyünk. Ma igy néz ki a torony. ( igy még én sem láttam).
(#) pipi válasza Massawa hozzászólására (») Jan 7, 2023 /
 
(#) Massawa válasza pipi hozzászólására (») Jan 7, 2023 /
 
Most nem tudok válaszolni, mert nem tudja a barátom eldönteni pontosan mit is akar, de azt LANon keresztül akarja kommunikálni.
Eredetileg csak az volt a feladat, hogy az antennarotor megkapja a parancsokat a forgásra. Azután jött az upgrade, most meg megint csak a forgásrol van szo.
Ráadásul ( amint megtudtam) vannak ott már mindenféle kommunikacios dobozok, azok egy részét szeretné kiiktatni.
Meg ugye létezik ( és olcso is) USB - LAN adapter, amit ha bedug az Arduinoba, lehet, hogy megoldhato az eredeti kapcsolat is, és akkor nem kell talán az Arduino kodba sem turkálni. Sajnos messze lakunk egymástol igy nem tudom személyesen kiprogálgatni a dolgokat.
(#) pipi válasza Massawa hozzászólására (») Jan 7, 2023 /
 
Amit linkeltem, ott az esp lesz a programozó, az eredeti arduinó progiban semmit nem kell módosítani szerintem, még a bootloader sem kell bele, mert ISP-n mindent beletol...
Az az USB-LAN adapter azért érdekes eset... az usb oldal az HOST vagy SLAVE? az arduinója mit tud HOST vagy SLAVE? Szerintem az adapter az USB slave , ami azt jelenti hogy az ardu-ba barkácsolni kell egy USB HOST modult, arra meg kell irni az USB LAN drivert, na ez érdekes lesz...
(#) Pethical válasza Massawa hozzászólására (») Jan 7, 2023 /
 
Teszel mellé egy eepromot. Hálózatról jövő frissítést beleírod, aztán reset és ez a bootloader megoldja a frissitést neked:
https://github.com/mihaigalos/miniboot
(#) Feri007 válasza Pethical hozzászólására (») Jan 8, 2023 /
 
Klassz dolog ez a i2c bootloader, de a kérdéses esetben meg kell oldani az applikációban, hogy hálózatról feltölthető legyen az eeprom.
(#) Massawa válasza Feri007 hozzászólására (») Jan 8, 2023 /
 
Igen ez is egy kérdés. Semmi gond nincs azzal, hogy az SPI-n ( nem azonos az I2C porttal) felprogramozzak egy 328-s procit, a kérdés az, hogy vannak-e különbségek, ha ugyanazt a kodot a meglévö bootloader segitségével töltöm be, vagy mondjuk a Dragon segitségével az SPI-n. Kell-e ilyen esetben valamire ügyelni ( cimzések, kodstruktura stb).
Az I2C még bonyolultabb ügy, mert ahhoz kell az Arduino környezetben egy kezelö program.
(#) asch válasza Massawa hozzászólására (») Jan 8, 2023 /
 
Nincs különbség. A hex fájl annyit mond meg, hogy a program memória melyik részére milyen bináris kódot kell beírni. Ha az oda van írva, akkor már mindegy, hogy mi írta oda. A "nehézség" az, hogy a hex fájlt binárissá kell alakítani, és ezt a binárist a saját alkalmazásodban megvalósítva fel kell töltögetni. (Pont ezt csinálja az avrdude program is.)

Amennyiben elfér a programod a memória felében, akkor külső I2C flash-re sincsen szükség, ahogy fentebb írtam, az is megfontolandó, mert nem kell hardvert építeni hozzá.
A hozzászólás módosítva: Jan 8, 2023
(#) Massawa válasza asch hozzászólására (») Jan 8, 2023 /
 
A LAN kártyán van egy SD kártya szlot is, azaz elvben arra is feltölthetö a program, és onnan beolvashato az Arduinoba.
Az a bináris alkalmazás már régen megvan, csak soha nem használtam Arduino környezetben.
( azaz azt már régen csináljuk, hogy az ATMEL procikat a távolbol kezeljük, de alapbol a kodokat mindig magunk irtuk a nyers procikba, saját loaderrel.)
Elvben a gyártás folyamán is a procikat vagy az SPI-n programozzák ( az a 6 pines csati), vagy az ujabb kártyákon már a LANon keresztül, igy azt is letesztelve, mielött az egység bekerül valamelyik berendezésbe.
Az jo hir, hogy a kod ugyanaz ( ezt nem igen teszteltük), és talán nem áll fenn annak a veszélye, hogy idegen, kész Arduino programok ilyen modu (LAN) feltöltése gondot fog okozni. Ezt még ki fog kelleni probálni ( egyelöre még nem akart senki abba a 12000 soros Arduino kodba beleturni).
A hozzászólás módosítva: Jan 8, 2023
(#) Feri007 válasza Massawa hozzászólására (») Jan 8, 2023 /
 
LAN-on keresztül programozzátok az atmel328 procikat, jól értem? Hogyan?
(#) Massawa válasza Feri007 hozzászólására (») Jan 8, 2023 /
 
Megcsinált a barátom hozzá minden interfacet meg megirta a programokat.
A berendezést helyben USB - n, SPI, vagy JTAGon lehet ( attol függ milyen processor van a kártyán) elérni, a távolbol meg LANon. Régebben egy helyi PC kellett a hangoláshoz, programozáshoz ( akkor még én is dolgoztam, amit távolbol elértünk) meg valaki aki ott van helyben, de az uj kártyákon már ott van a LAN csati, azon keresztül hangolja programozza otthonrol a gépeket.
Sokféle Atmel procit használ attol függ melyik berendezésbe kell, de a procikártyán meg van minden kellö hardware LAN, USB, MIDI meg a régieken RS port is van. A berendezések Tokiotol San Franciscoig rengeteg helyen elöfordulnak többféle berendezésben, és már megfizethetetlen, hogy valaki elmenjen a helyszinre behangolni a cuccokat. Régebben ezt csináltuk.
Következő: »»   760 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem