Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nincs a PIC veletlenul rosszul konfiguralva? Nem kimenet az sda es scl benne es nullan van ?
Nem. Mindkettő bemenetnek van konfigurálva.
Akkor valahol zarlatnak kell lenni mert ahogy Watt is irta az iic-n ugy 5 volt koruli fesznek kene lenni az sda es scl vonalon is.
Mérd meg a felhúzó ellenállások másik végeit is - nem a földre vannak kötve?
Nem. Az egyik végük a tápra, a másik meg az adott vonalra. Amúgy ez a logikai analizátor nem működik. Elindítom várja a jelet, de nem csinál semmit. Szerintem nincs is jel. Meg le is fagy (Nem válaszol). Senki nem próbálta még ki a progit amit írtam? Vagy nincs valakinek egy tuti biztos jól működő?
Sziasztok!
Egy Pic-el mennyi darab I2C -vel működő IC-t lehet vezérelni. Bocs ha hülyeséget kérdeztem.
Nincs jel ha mindig 0 volt van a vonalon. Probald meg ic-k nelkul van-e 5 Volt az SDA es SCl vonalon ha van akkor eloszor a PIC-et tedd be ujra meres aztan a masik ic-t es ujra meres. Lehet hogy valamelyik rossz. En mar jartam ugy hogy rossz volt az ic es mindig foldre huzta a vonalat.
Nehany TV keszulekben sorba kotnek az i2c-vel 100 ohmos ellenallast ha ugy lenne bekotve akkor gyorsan meg lehet talalni mi huzza le.
Szia!
Sajnos bárkitől származó, nála jól működő program sem fog működni, amíg ezek a jelek vezérlés nélkül nem lesznek magas (> 4V) szinten. Ha ki tudod szedni a kontrollert az áramkörből, mérd meg, hogy a jelek felmennek-e magas szintre, és 470 ohm ellenállással lehúzhatók-e alacsony szintre. Ha nem lehet kiszedni, készíts egy teszt programot, amiben ezek a portbitek bemenetek, ekkor végezd el a mérést. Addig kell a hibát keresni, míg a jeleket az ellenállással magasról alacsony szitre tudod húzni, lehúzás nélkül pedig magas szintre mennek. A PICKit2 programja várja, hogy befejeződjék a mintaregisztrátum begyűjtése, de ha nincs lefutó él a Ch1 -en, akkor el sem kezdődik a mintavételezés. A mintára várakozást félbeszakítani a PICKit2 -n levő nyomógomb megnyomásával lehet....
Mindenkinek köszönöm a sok segítséget! A hiba az ellenállás volt. Szerintem a próbapanelon összeért egy másik lábbal alul és azért volt testen az SCL. Áttettem máshova és abban a pillanatban kiírta a hőmérsékletet. Öröm és boldogság! És még egyszer köszi mindenkinek!
Szia!
Egyforma IC-k ből csak 8 db -t, és csak akkor, ha a A2, A1, A0 lábukon különböző kombinációkat állítasz be, vagy gyárilag más címre vannak állítva. A különféle célra szolgáló IC-ket más címtartományra készítik, az adatlapjukban megtalálható a cím felső 4 bitje. Memória: 1010, A/D átaladító: 1001, A cim felső 4 bitjét a funkció, a következő 3 az A2, A1, A0 kivezetéseken beállított kombináció határozza meg. A legalsó az írás / olvasás művelet kijelőlésére szolgál. Több eszköz csak a 10 bites címzéssel illeszthető. Idézet: Közvetlenül annyit, amennyit meg tud címezni (egy adott típunál általában hárombites címzés van), amennyit meg bír hajtani és amennyi a jel felfutását nem lassítja le túlságosan (itt nyilván a bemenetek és a vezetékek összkapacitása számít).„Egy Pic-el mennyi darab I2C -vel működő IC-t lehet vezérelni.” Vannak azonban okos (és drága?) IC-k amelyekkel kondicionálható és/vagy szegmensekre szeparálható az I2C busz. Például a PCA9516A 5 csatornás I2C HUB.
Örülök, hogy végre működik!
Egy tanulságot azért le kellene vonni: Ezer szerencséd, hogy a zárlat a föld felé volt. A pic kimenete ebben a beállításban nem ad ki magas szintet a lábra. Ha a zárlat a táp felé lett volna, most egy kontrollered (egy lába) bánná. Többször leírtam már itt is, hogy a balesetek - láb működőképességének elvesztése - elkerülése érdekében az áramkört a kontroller nélkül be kell mérni. Főleg a kimenetek vezérelhetőségét kell ellenőrizni, a bemenetek és kimeneteken a meg nem engedett feszültségeket kell megtalálni. Ha ezeket biztosan leellenőriztük, a kimenetek 470ohm - 1k ellenállással alacsony ill magas szintre is húzhatók, akkor a kontroller is jól fogja érezni magát az áramkörben.
Hát igen. tanulság az van. Az ember sosem lehet elég figyelmes és midig az a szűk kereszt metszett. Köszi, hogy segítettél. Örök hála.
Nem gondoltem volna, hogy a Microsoft szoftvermérnökei ennyire buggyantak, de a C18 fejlesztői csomag úgy települ, hogy a gyárilag fordított könyvtárakban helyenként nyilvánvalóan értelmetlen és hibás kód van.
Például a p18F14K50.lib LCD-t kezelő függvényei (OpenXLCD, PutrsXLCD stb.) a B port nem létező alsó bitjeire küldik ki ki az adatokat (gyk: a PIC18F14K50-nek csak a négy felső bitje van implementálva). Az ok: csak egy konfiguráció van az xlcd.h állományban (adatok B port alsó fele, vezérlő bitek: B port leglefső három bitje), ezzel fordították az összes mikrovezérlő perifériakönyvtárát. A felhasználónak tehát egyenként újra kell fordítani a könyvtárat (közben átszerkesztve a konfigurációs állományt) mindazon mikrovezérlőkre, amelyet használni akar.
Épp a minap botlottunk bele egy I2C példaprogramba, ami szerintem nem jó, bár lehet, hogy csak én nem érem fel ésszel. Bővebben: Link
Sajnos ők is elég sokat hibáznak, de azért nagyrészt jó amit csinálnak, szerencsére!
Szia!
Idézet: „Nem gondoltem volna, hogy a Microsoft szoftvermérnökei ennyire buggyantak” Sajnos a "buggyantság" elterjedt más cégekre is pl. Microchip, és nem csak a szoftver készítésre, hanem a hardvare tervezésre is. Ld. a sok errata.
Nézd, az egy dolog, hogy valaki hibázik, vagy melléüt, vagy valamit nem vesz észre. Én is találtam már olyat, az említett perifériakönyvtárban az adc.h-ban 2-3 definícíó hibás volt, mert a binárisan megadott adat egy helyiértékkel el volt csúszva. Ez megbocsátható tévesztés.
De aki képes 250-300 megabájtnyi programkönyvtárat ledarálni úgy, hogy a többszáz (vagy ezer? hol tartanak már?) mikrovezérlőnél (lábszámtól, kiépítettségtől függetlenül) ugyanazt a hardver konfigurációt használja, az már saját szakmai alkalmasságát teszi kérdésessé.
Ja, Microchipet akartam írni. A Microsoft csak freudi elszólás lehetett...
Hehe, Minden Micro*** ceg buggyant ugy latszik
Sziasztok!
Ismét megállt a tudományom. Adott egy PIC18F2221 vezérlő, ennek a RA1 portjára szeretnék egy DS1820-at kötni. A probléma csak az hogy bemenetként állítva, bárhova húzom (Vdd-Vss) a portot mindig 1-et ad vissza. Műszerrel rámérve mindig a várt értéket kapom, de ettől függetlenül 1-et ad vissza értékként. Esetleg ötlet valakinek?
Gondolom analóg módban van a bemenet...
Elvileg nem, az ADCON1-et 0x0f-re, az ADON bitet pedig 0-ára állítottam. Esetleg át kell még valamit pöckölnöm?
Analóg komparátor?
CCP2CON=0x00; ezzel sem megy. Valamit még tuti állítani kell, de nem jövök rá hogy mit. Kipróbáltam másik pic-el, az eredmény ugyanez.Tehát a hardverhibát kilőhetjük.
Én CMCON=0b00000111-nal próbálkoznék. A CCP2CON regiszter nem tudom, hogy jött a képbe.
Probald outputnak konfiguralni, kiad-e valtozo erteket?
Utana probald bemenetnek allitani. Ha belulrol irod, akkor ugyanazt vissza tudod olvastatni? Nezd meg az adatlapban, hogy weak pullup nem lehetseges-e erre a labra (inkabb a portB-re jellemzo, de nem tudhatom). Zarj ki minden mas hibalehetoseget, ami talan nevetsegesnek hangzik, de pl jo labon probalkozol-e? Esetleg a konfigszoban mar digitalisnak beallitani. Neha csinal furcsasagokat a PIC. |
Bejelentkezés
Hirdetés |