Fórum témák

» Több friss téma
Fórum » RP2040
Lapozás: OK   3 / 3
(#) Sinike hozzászólása Máj 1, 2024 /
 
Hello.
Volna egy kezdő kérdésem. Adott egy projekt QT Py RP2040-re, ahol I2C A Stemma csatin keresztül megy a mágneses érzékelőhöz. (Konkrétan a spacemouse projekt).
Csak RP2040 Zero-t sikerült beszereznem, de fogalmam sincs, hova kell kössem az érzékelőt. I2C0 és I2C1 ír egy csomó lábra a doksi, de mi dönti el, hanyas GPIO?
Arduinoban megszoktam, hogy kiosztom a lábakat, de ebben a programban nincs olyan.
Netán automatikusan felismeri az RP, bármelyik lábat használom?
Spacemouse
(#) tomi52 válasza Sinike hozzászólására (») Máj 1, 2024 /
 
Mondjuk még elég kezdő vagyok én is.....
Az I2C init paramétereivel adod meg melyik I2C csatorna, illetve melyik lábak. Nem tudom C++-ban vagy micropythonban akarod csinálni, alább egy példa sor micropythonban, de gondolom a C++-os is hasonló lehet.
Pl.: i2c = I2C(0, sda = Pin(0), scl = Pin(1), freq = 400000)
Található a neten pár oldal, ahol sok példán keresztül mutatják be mit, hogyan lehet kezelni.
(#) tomi52 válasza Sinike hozzászólására (») Máj 1, 2024 /
 
Találtam példát mindkét nyelvre.
(#) pipi válasza tomi52 hozzászólására (») Máj 2, 2024 /
 
Fentebb i2c-ről írsz, a példa meg spi...
(#) benjami válasza Sinike hozzászólására (») Máj 2, 2024 /
 
Szerintem ebből minden kiderül:
  1. #define I2C_PORT      1   // I2C port number (0=i2c0, 1:i2c1)
  2. #define SCL_PIN       3   // GPIO number for I2C SCL (i2c0: 1, 5, 9, 13, 17, 21, 25, 29, i2c1: 3, 7, 11, 15, 19, 23, 27)
  3. #define SDA_PIN       2   // GPIO number for I2C SDA (i2c0: 0, 4, 8, 12, 16, 20, 24, 28, i2c1: 2, 6, 10, 14, 18, 22, 26)
  4. #define I2C_SPD  400000   // i2c speed (100000 or 400000)
  5.  
  6. i2c_init(I2C_PORT, I2C_SPD);
  7. gpio_set_function(SDA_PIN, GPIO_FUNC_I2C);
  8. gpio_set_function(SCL_PIN, GPIO_FUNC_I2C);
  9. gpio_pull_up(SDA_PIN);
  10. gpio_pull_up(SCL_PIN);

A 2. és 3. sor végi megjegyzéseknél fel vannak sorolva a lehetséges portlábak számai.
A hozzászólás módosítva: Máj 2, 2024
(#) Sinike válasza tomi52 hozzászólására (») Máj 2, 2024 /
 
Igen, C++ nak ismeri fel a VS, és persze, ha lenne ilyen sor, amit példáztál, nem írtam volna ide
Valamint az is igaz, hogy van pár oldal példákkal, viszont ott sem szerepel a pin kiosztás, ahogy Arduinónál megszoktam. Láttam ezen topik elején, hogy van néhány ember, aki nagyon jól ismeri ezt a processzort, Azért kérdeztem, hogy esetleg ezen nem muszály megadni? Felismerheti magától?

A kód
(#) Johnycorp válasza Sinike hozzászólására (») Máj 2, 2024 /
 
Ott van a kódban.

"Wire1.begin();"
Azaz, elvileg a második I2C portot használja (talán).
Egy próba a GP2 és GP3 pinekkel?

Bővebben: Link
(#) benjami válasza Sinike hozzászólására (») Máj 2, 2024 /
 
A programnak csak egy kis része van a közzétett "ino" fájlba, a többi az első 4 sorban található headerekhez tartozó c vagy cpp fájlokban található. Ha képes vagy a projectet lefordítani, akkor megvan nálad a többi fájl is valahol. Keresd meg a "Tlv493d.h" és a "Tlv493d.cpp" fájlokat, mert abban fogod megtalálni a kérdésedre a választ.
(#) Sinike válasza Johnycorp hozzászólására (») Máj 3, 2024 /
 
Köszi, kipróbálom. Csak nem akartam addig összevissza forrasztgatni a panelt...
(#) Sinike válasza benjami hozzászólására (») Máj 3, 2024 /
 
Igen, megvan, napokig böngésztem...
Semmit nem találtam. Onnan is megy még tovább - mert ez már egy másik Arduino könyvtár.
(#) tomi52 válasza pipi hozzászólására (») Máj 3, 2024 /
 
Bocs, igazad van, összekevertem, mert épp SPI-s TFT-vel vacakolok.
De a korábbi I2C példasort egy működő micropython nyelvű programból másoltam.
(#) benjami válasza Sinike hozzászólására (») Máj 3, 2024 /
 
Azt is megteheted, hogy a setup végén printf-el kiíratod a gpio regiszterek értékét, abból kiderül melyik láb van i2c-re beállítva.
(#) tomi52 hozzászólása Máj 4, 2024 /
 
Üdv Mindenkinek!
Majd két napot küzdöttem, hogy összehozzam a Pi Picot, a C++-t és a vscode-ot linux - Debian 12 - alatt, de nem sikerült. Találtam hosszú leírást, sok más dolgot megoldottam már hasonló módon a gugli segítségével, ezt sajnos nem sikerült. Konzol parancsokkal sikerült egy kis mintát összehoznom, de azért az macerás. Láttam adduino frameworkös megoldást, de nem szeretnék arduinost. A micropytonnal nagyon jól kezelhető a Pico vscode alatt, és STM32 is remekül programozható C++-al a vscode alatt, csodálom, hogy a Picohoz C++-al nincs valami hasonlóan kezes megoldás.
Használ valaki ilyen összeállítást? Ha nem, mit használtok?
A hozzászólás módosítva: Máj 4, 2024
(#) Sinike válasza tomi52 hozzászólására (») Máj 4, 2024 /
 
Framework csak ez a 3 van Keretrendszer
Én azt használtam pont ennél a projeknék - igaz, már fél éve. Bár a problémát magát nem értem, de kb 15 éve van linuxom (főleg deb alapú) - keress meg privátban és ha tudok, segítek. Bár ha úgy véled, hogy belefér az elektronikai fórum témájába, tőlem itt is lehet...
(#) tomi52 válasza Sinike hozzászólására (») Máj 7, 2024 /
 
Írtam privátban, majd mégis találtam valamit ami tetszik, így újra írtam provátban.
(#) Sinike válasza Johnycorp hozzászólására (») Vas, 18:55 /
 
Nos így plussz 10 napi kutatás után egy RP fórumban találtam rá, hogy alapértelmezett lábaknak a 4 - SDA és 5 - SCL vannak kiadva. Hogy hogyan lehet ezt megváltoztatni, ők sem tudták...
Ezzel a lábkiosztással már végre működik.
(#) tomi52 válasza Sinike hozzászólására (») Vas, 23:54 /
 
Néztem a zero térképét amit múltkor küldtem, és azon valóban nincs jelölve melyik lábak a default. De mivel ez az RP2040-hez kötődik, a nagyobb lapok térképéről is leleshető.

Kíváncsi lettem, és próbáltam keresni, hogyan lehet megváltoztatni melyik lábakat szeretnéd használni. Először SDK-s megoldást, aztán megnéztem miféle a programja van a projektnek amit szeretnél megcsinálni, és láttam, hogy arduino IDE-s. Találtam valamit, bár nem mélyedtem nagyon bele,mert nem szeretnék arduinos korlátokkal programozni. Ha jól látom, simán meg lehet változtatni melyik lábakat szeretnéd használni, viszont ez a leírás egyben példa arra is, miért nem szeretnék arduinos környezetben dolgozni. Hiába van az RP2040-nek két I2C csatornája, arduinoval egyszerre csak az egyik lehet élő. a példában is váltogatja, hogy éppen melyik van nyitva.
(#) Sinike válasza tomi52 hozzászólására (») Hé, 19:35 /
 
Ebben a fórumban volt a megoldás. Itt írják is, de link is van a github-ra a lábkiosztással - hátha segít másoknak is.
Az ottani emberke sem tudta megoldani másképp, átalakította a nyákot.
Következő: »»   3 / 3
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