Fórum témák
» Több friss téma |
Sziasztok!
Az I2C kapcsolatról szeretnék kérdezni. Pontosabban az egyik PIC 18F4550 a másik pedig 16F877P. Keresgéltem, de nem sok mindent találtam. Szeretném kérni hogy segítsetek.
Tedd fel hát a kérdést...
(Eddig mit találtál?)
Még semmit sem tudok róla. PIC-be égetendő programot hogy kell kiegészíteni? Meg hogy egyáltalán lehet-e ez a két PIC között ilyen kapcsolat?
Eddig mit találtál a NETen? (Csak miheztartás végett)
Link Mást nem nagyon. Ezért kértem segítséget.
Összefoglalja a lényeget...Ám ird be a Googléba is (vagy abba amid van) hogy: I2C...
Szia!
Szerintem olvasd el az ehhez tartozó részt az adatlapjukban, ott szépen le van írva. 16F877: Bővebben: Link 18F4550: Bővebben: Link Ha assemblyben programozol, akkor szinte nyert ügyed van, mert példákat is mutatnak (ha jól emlékszem )
Bajlódtam egy keveset kb fél évvel ezelőtt, 16f877-ről i2c,
pcf8583 elérése. Amit kipróbáltam és azt hiszem müködött csak még nem fejlesztettem ki amiért kipróbáltam, talán idevág. A pic-et nem tudtam szolgaként használni, a programozói tudásommal, ezért egy buszra felfüztem Egy16f877-t egy 16f876-ot és egy PCF8583-at. Amit nekem egy irány kellett a szolga felé, tehát csak íram a szolgát( 16f876-ot) a PCF..ramjába kipakoltam amit el akartam küldeni a másik pic-nek, a szolga onnét olvasta ki. A PCF interrup-ja vezérelte engedélyezte az egyik illetve a másik pic számára a busz használatát. Ez csak egy speciális alkalmazás. Megtelt a 877-es és nem tudtam 4digites szegm kijezőt egy halom kijelzendő maszk-kal máshogy megoldani. A 18F-esekre még nem vagyok teljesen berendezkedve...Egy I2C ASM
Még ez hozzá: az II2 includ-ja a PCF-esnek. A másik kettő az init-be illetve a főprogiba, az előbbi subrutin.
I2C-s alapismeretekhez ez is jó lehet sőt a pic-hez általában...I2C+PIC
sziasztok!
Ne haragudjatok hogy itt érdeklődök ezzel kapcsolatban! Egy kérdésem lenne! Ki vállalna i2c-s kommunikációs eszköz készítést!? Az eszközön egy hőmérő egy RTC és egy kijelző lenne! A kommunikáció i2c-val valósulna meg! Lényeg hogy a kijelzőn jelenjen meg az egyik sorban a hőmérséklet a másik sorban az idő és a dátum! Természetesen nem ingyen! Bérezés 15-20eft +felhasznált eszközök..Vagy megbeszélés szerint! Várom a jelentkezőket! üdv! ui.:és bocsi hogy itt írtam.. :yes:
Sziasztok!
I2C-t próbálok megvalósítani egy PIC18F4685 és egy PIC18F2520 között. Utóbbi a slave, egy tasztatúrát vezérel, előbbi a master. A lényeg az lenne h a slave átküldje i2c-n, h melyik gombot nyomták meg. Ha vki tudna vmi hiperprimitív, de általa kipróbált, működő progit adni nagyon megköszönném! A probléma az h vmiért nem megy az i2c pedig már elég sokat próbálkoztam.... Persze gugli segített vmennyire: I2C between 2 pic Nem tudom, h mit jelent ebben a sorban a legutolsó config:
A force_hw. Meg maga az adatforgalom sem világos. SLAVE
MASTER
Na most én küldhetek akármilyen adatot? Nem fogja bezavarni pl ha 0x80-at küldök? A slave kódot esetleg ha vki részletezné nekem az nagyon jó lenne! Előre is köszi! U.i.: Nem tudom , mért tördeli ilyen hülyén a kódot, nem tudtam helyrehozni
Ennek így nem sok értelme van, ugyanis az általad leírtakat már megcsinálták. Itt
2400 Ft-ért megkapod. Idézet: „Nem tudom, h mit jelent ebben a sorban a legutolsó config: #use i2c(SLAVE, FAST, SCL=PIN_C3, SDA=PIN_C4, address=0x14, FORCE_HW)” A CCS helpjét kellene fellapozni i2c ügyileg - már ha azt használod egyáltalán... A FORCE_HW opció arra utasítja a fordítót, hogy a hardweres SPI/I2C egységet használja. A FAST opció pedig a 400 kHz-es bitrátát írja elő. Idézet: „Nem tudom , mért tördeli ilyen hülyén a kódot” {code=c} ... {/code} közé rakd! (persze, szögletes zárójellel)
Sziasztok!
Én is próbálgatok két PIC között I2C kapcsolatot teremteni, de nem igazán sikerül. Az adatlapokon már átrágtam magam, és megcsináltam mindent, amit ott mond. Töröltem minden bit-et, amit kell, viszont, ha az SSPBUF-ból kiolvasnám az értéket, a BF (buffer full bit) nem törlődik, és a kiolvasott érték nem az lesz, mint kénem, hanem az Addres marad benne. Kihagytam valamit, vagy a programban van valami gikszer?
Sziasztok
Van két panelom rajtuk 1-1 pic és i2c kapcsolatot próbálok teremteni közöttük. Egyelőre azt szeretném ha master elküldene egy 1byte-ot slave-nek. Szkóppal nézve látok valamit a vonalakon szóval feltételezem hogy a slave nem akar menni rendesen. A slave megszakítás kódja:
Végül az inicializáló rész:
Annak ellenére hogy állandóan küldök adatot a vonalon az elején egyszer lefut a megszakítás és kész. Már egyáltalán nincs ötletem hogy mi lehet a baj, úgyhogy nyugodtan írjatok mindent ami eszetekbe jut, nagyon szívesen veszem. Köszönöm István
Sziasztok,
Néhány napos küszködés után sikerült megoldani az i2c kommunikációt, tehát a fenti kérdés már nem aktuális.
Nem írnád meg nekünk, mi volt a probléma?
Talán tanulunk a példádból.
Szerintem ha Július óta nem írt akkor nem valószínű, hogy most fog de hátha. Ha valamiben segítségre van szükséged akkor szerintem tedd fel a kérdést inkább vagy használd a keresőt a témán belül!
Sziasztok.
Már egy ideje két pic18f452 közötti I2C kapcsolattal szenvedek. A master az RE0 lábon lévő nyomógomb lenyomás hatására kiküldi az I2C sínre az adatokat, egyelőre annyit szeretnék, hogy gond nélkül átmenjen a cím és mondjuk 3 bájt a slave-re. Ezt PROTEUS-al szimulálom az SCL és SDA lábbakra egy i2c debugger is csatlakozik ami szerint a cím bájt és egy adat bájt kimegy annak ellenére, hogy cím+ 3 bájtot küldök. A slave-en a cím érték helyesen megjelenik viszont a 3 adat helyett 1 adat bájt és az is eltér a kiküldöttől. Hi-tech c-ét annak is I2C függvényeit alkalmazom. A net-en már sokat kutakodtam kipróbáltam az ott leírtakat, de sajnos nem jutottam kifogástalan eredményre. A segítséget előre is köszönöm.
Az áramkör érdekelne inkább nem a progi mert valószínűleg nem abban van a a gond, vagy legalább is legtöbbször nem.
A felhúzó ellenállások, a kábel hossza főleg ami fontos de sajnos bele szólhat a kábel maga is.
Szia elnézést, de nem jutottam ezidáig gép közelébe. Felrakom az egész programot a slave+master+proteus is.
Nem tudom gond-e mert én hi-tech c-ét használok, viszont a PIC beállítás I2C-re látható a program szövegben. A két PIC kapcsolás kész, először proteus szimulációval szerettem volna kipróbálni és utána élesben.
Tehát akkor még nem próbáltad élőben?
Ebben az esetben valami más a gond. Lehetséges, hogy az időzítéssel van gond. Az az igazság, hogy én is már egy ideje próbálom összehozni az I2C-t de nem túl sok sikerrel. :S Nekem egy MPC23017-es IC-m van és az a fura, hogy van ACK tehát minden adatot megkap és választ is küld de mégsem megy. :S A High-Tech C-t még nem igazán használtam ezért nem vagyok benne biztos, hogy mit is kéne keressek de azért kicsit bele olvasok hátha találok valamit. Addig is a teszteld le esetleg, hogy milyen frekvencián jönnek ki az adatok ha van rá lehetőség. Plusz egy kérdés. A Nokia LCD-hez a fájlt merre találtad? Nekem is kéne egy 3220-as kijelzőjéhez. Köszi a választ előre is!
Sziasztok!
I2C buszos elvi probléma megoldásában kérem a segítségeteket. Van 1 PIC16F886-os mester és 3-4 PIC 16F690 slave, esetleg még 1 EEPROM a buszon. (A slave-k a bus-t nem használhatják megszakításból, mert a megszakítást a mérőrendszernek szabad csak használnia, különben elszámolhatná magát.) Ha hiba van az adatátvitelnél a slave lefoghatja az egész rendszert. Pillanatnyilag működik, de nincs tisztességes hibakezelésem. Fejlesztés közben tapasztaltam, hogy ha hiba volt, akkor csak táp ki-be segített. Master-nél nincs gondom, de slave problémája zavar. Megoldás?
Én ennyiért azért megcsinálnám... Most úgy is egy ilyen projektben vagyok benne. Bár miért pont i2c-n?!
Nem tudjuk pontosan milyen módszert akarsz mérésre használni, illetve milyen időközönként.
Továbbá a szolgák (vagy legalább egy) is kezdeményezhetnek-e kommunikációt? Ezt mindenképpen kerülni kellene... Ha működik már, akkor működni is fog. Van néhány I2C-s cuccom, évek óta megy még nem hibáztak. Ha a programrészletek egyszer már lefutottak és nem hibáztak, akkor nem is fognak. Hardware-sen kell stabilan összeépíteni. A slave, ha nem válaszol "azonnal" ne próbálkozzon feleslegesen a mester, hanem menjen tovább a főprogram, stb... Ha jó az I2C rutin, akkor ilyen nem fordulhat elő. Én software-s I2C használok általában, az még nem hibázott, ha igen annak hardware-s oka volt.
A mérőrendszer egy forgójeladó, ezért teljesen bizonytalan, hogy mikor történik váltás az egyik bemeneten. Tehát a megszakításnak azonnal reagálnia kell. Az adatcsere durván: master küld azonosítót+8 byte-ot+1 ellenőrző byte-t, majd a slave vissza ugyanennyit. Ezekben méret és parancs infók vannak. A slave nem kezdeményezhet. Amire gondoltam: debuggoláskor az ACK jel nyugtázása környékén tudott elakadni. (csak a PIC16F886-ot tudtam debuggolni). hardware-s hiba is előfordulhat, mivel motor közelében lesz a cucc. Éppen ez a gondom, hogy ha hiba mégis előfordul, akkor ne akadjon ki. Hiba detektálása és feldolgozása már egy másik kérdés. A mastert gond nélkül továbblököm, de a slave-k a problémám.
Ha a forgó jeladó viszonylag magas fordulaton jár, akkor a három szolgával nem lesz ideje a PIC-nek kommunikálni. Ez mekkora fordulatot jelent a valóságban?
20Mhz órajel minimum kell... Esetleg újra kell fogalmazni a feladat strukturáját.
A szolgákon van a forgójeladó és maximumon mennek. Éppen azzal tudtam kiakasztani, hogy megpörgettem a jeladót és közben ment a bus. Jelenleg a bus sebessége kissebbre van véve. Így látszólag nincs hiba, de tartok tőle, hogy lesz.
|
Bejelentkezés
Hirdetés |