Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Lehet, hogy hibás szerelés miatt tönkre ment a PIC, és most azt hiszed, hogy a 16F egyszerűbb lesz! Hát nem! Az igaz, hogy az USB-s PIC-ek konfigurációja bonyolultabb(hibás következtetés ráfogni a 18F családra a dolgot!!!), de nem annyira, hogy ne lehetne megfejteni! Ha ez nem megy, ugyanúgy nem fog menni a 16F-sem.
Egyébként sem az a megoldás, hogy feladod, hanem az, hogy lépésről lépésre kideríted mi a valós oka annak, hogy nem működik az áramköröd! Délután, ha addig felteszed a rajzát annak amit építeni szeretnél(nem szöveges infót kérek, rajzot, pontosan feltüntetve minden alkatrészt!), küldök egy projectet, amivel le tudod tesztelni a PIC-et!
Sziasztok.
Szeretném a segitségeteket kérni. Megépitettem az alábbi kapcsolást? http://www.hobbielektronika.hu/kapcsolasok/usb-uart_atalakito_pic18...3.html Az lenne a kérdésem hogy tökéletesen megy a program a picbe de ha pl. van egy lámpafelkapcsolás vagy kikapcsolom a pákát elszál a pic-be a progi és újraindul. Hogy tudnám a zavart szürni? A 470n kondi nem polarizált amit raktam a vsub közé az gond lehet?
Az nem baj, ha nem polarizált a kondi. De az elszállást okát én inkább a Vdd körül keresném. Életfontosságú a jó minőségű 100 nF VDD és VSS között, s ezen kívül egy 10 µF sem árt (bár nem szabályos, de a gyakorlatban 100 µF nagyságrendű is lehet...). Ha a konfigurációban a BOR (Brown out detektálás) be van kapcsolva, akkor reset-elés szintje lehetőleg ne a maximális feszültségre legyen állítva, mert ki tudja, az USB-ről mennyit kapsz... Nálam ez a beállítás így néz ki:
PIC18 támogatói programkönyvtár honlapjáról letölthető programcsomagban megtalálható a PICCOLO-HID-Bootloader-PIC18F14K50.hex állomány (a bootloader) amely a nálam legjobban bevált konfigurációs beállításokat tartalmazza.
Ahhoz, hogy kiszurd a zavart meg kell eloszor is ertened mi tortenik, mi okozza a jelenseget. Johet-e az USB felol egy tuske, vagy a tap felol jon a tranziens jel, vagy a tap kimarad egy kicsit, esetleg raszor valami az aramkorre mashonnan.
Az esetek tobbsegeben a PIC laban kozvetlenul levo un. hidegito kondi elegendo vedelmet nyujt az altalanos otthoni (domesztikai) zavarokkal szemben (feltetelezve persze, hogy a tap megfeleloen stabilizalt). Ilyen szurest kepvisel vegeredmenyben a C1 es C3 is. Amit esetleg meg erdemes tudni, hogy szuresnek mindenkeppen alacsony belso ellenallasu kondenzator kell. Pl. a keramia ilyen, raadasul olcso is, igy tokeletesen megfelel ennek a feltetelnek. Az elektrolit epp ennek az ellenkezoje - az viszont egy olcso megoldas bufferelesre (rovidebb kimaradasokra, mivel kis meretben nagy kapacitast kepvisel). Tapokban altalaban talalsz egy buffer es egy hidegito kondit is, es van ahol tobb kulonbozo erteku hidegito kondi is van egymassal parhuzamosan. Hogy miert van ez? Ugye a kondi belso ellenallasa es a kapacitasa tulajdonkepp egy RC tagot alkot. Ennek pedig ugye meghatarozhato a frekvencia tartomanya, ahol a tranziens jeleket meg tudja szurni. Vegeredmenyben a kulonbozo erteku hidegitokkel ezt a tartomanyt szelesitik ki novelve a szures josagat. Eloszor szerintem probaldd meg kideriteni mi okozza a PIC resetet. Kozben azert atnezhetned, hogy a kondiknal nincs-e hideg forrasztas vagy zarlat.
Az az igazság, hogy a projektet még el se kezdtem, csak a programozási részét, mert ha már az megy csak akkor fogom megvenni a többi alkatrészt, a pichez csináltam egy kis nyáklapot, aminek dip- kivezetései vannak és bele tudom rakni a próbapanelbe, de! a piccel nem lehet baj hiszen nem is csináltam vele semmit, nem azzal van a gond, hanem a programozással. Lehet nem az egész 18F-es család ilyen, ebben igazad van, de eddig 16F877-el kísérletezgettem, és azzal minden ment. De szerintem a programozás már csak azért se ment mert az MPLAB valamilyen okból kifolyólag beadta az unalmast Most elindítottam azt amit a pickit2 programja rakott fel, és ez jó... Most reggel újult erővel neki futok még egyszer hátha most már jó lesz. Amúgy jól esik, hogy ennyi segítőkész ember van itt a fórumon A projekt pedig annyira nem is idegen, mert a 16F877-en már csináltam ilyet, csak hát az nem smd. De próbapanelon már kész. És azért gondoltam, hogy akkor egy 16F-est veszek, mert azzal már megy. Inkább még próbálkozok a 18F2550-el. Üdv. peti.
Sziasztok!
Van egy kis problémám a PIC soros kommunikációjával. PIC18F4685 10 MHz-es kristállyal, amit felszoroz belül 40 megára. Max232n-es kapcsolás elvileg működik. A következő a jelenség: A PIC másodpercenként villogtat egy ledet és kiküld egy A betűt a soros vonalon. Ha jön be adat a soros vonalon, akkor a megszakításban kezeli és ha az A betű, akkor egy másik led állapotát változtatja meg. Ha rádugom a próbapanelre a soros kábelt és rövidre zárom a másik végén a TX RX lábakat, akkor a két led egyszerre villog (azaz minden remekül működik, kiküldi az A betűt és rögtön veszi is). Ha rákötöm a PC-re a soroskábelt és rövidrezárom a túlvégét,akkor a PC-n látom visszajönni azt az adatot, amit kiküldtem. (CCS soros port monitorát használva) Azaz a két cucc külön-külön remekül működik. Együtt már nem. Kezdetben a PIC belső oszciját használtam 8 MHz-en. Gyanakodtam rá, hogy lehet, hogy jobb lenne karcot használni. Tettem rá 4,10,20 megás kvarcokat, használtam 9600-as és 115200-as Baudot is, de szóba sem állnak egymással a PIC és a PC. Minden kombinációban működtek külön-külön a kütyük, de együtt soha. Már teljesen tanácstalan vagyok, hogy mi a baj. A kvarcon 15 pF-es kondik vannak, 47nF-os kondik vannak a tápvezetékeken. Csatolom a programot. Mi a baj? Hogy lehet kiküszöbölni? Előre is köszi.
Nem egeszen ertem. Tehat mikor radugod a loopback csatlakozot, akkor a PIC tudja venni a sajat maga altal kuldott byte-okat? Masik PIC tudja venni az egyik altal kuldott adat folyamot? Arra akarok kilyukadni, hogy az RS232 illesztesnel keresendo vajon a hiba?
PIC és számítógép(PC) között akarok kapcsolatot létrehozni.
A hiba valószínűleg az időzítéseknél van. Mást nem tudok elképzelni. Csak teljesen tanácstalan vagyok, mert elvileg minden stimmel (BAUD, stb.) és nem megy együtt a két cucc.
Szia!
Haladj lépésenként. A PC felöl a visszakötés megy, ezután a soros kábel PIC felöli végén csinálj visszakötést. Utána a max232 pic felöli oldalán (a pic -et természetesen vedd ki vagy az adás vonalát ideiglenesen kösd ki). A leggyakoribb hiba, hogy a két adás és a két vétel van egymással összekötve... A sebességet ellenőrizd le.... Szia
Ha van PICkit2 programozód (vagy oszcilloszkópod), akkor nézd meg PIC TX kimenetén a jelalakot, és ellenőrizd a bitrátát!
PC oldalon használhatod a Hyperteminal-t vagy a putty.exe-t is. Ez a FUSES=H4 biztosan jó? Más PICnél HSPLL van, vagy volt olyan fórumbeli hozzászólás, ahol FUSES=H4,HS-et írt valaki működönek. Ez is azt jelzi, hogy ellenőrizni kell a sebességet! Ha másképp nem, akkor ismert idejű késleltetéssel és a LED villogások számolásával és másodpercmutatós órával.
Megtettem, a PC-nek jó a sorosoprtja. Ha a max232 oldalán hurkolom vissza, akkor ugyan nem megy, de ez még nem nagy katasztrófa, mert az biztos, hogy a PIC küldi az adatot és az eljut a PC-hez(emiatt: Ha rádugom a próbapanelre a soros kábelt és rövidre zárom a másik végén a TX RX lábakat, akkor a két led egyszerre villog (azaz minden remekül működik, kiküldi az A betűt és rögtön veszi is)).
Tehát látnom kéne a terminálban az A betűket, de nem látom.
ICD2-vel nem tudom valahogy nézni a TX lábon a jelalakot? Nem lehetne ott valahogy megnézni, hogy stimmel-e a bitráta. Nem tudom, hogyan kell használni az ICD2-t debug módban.
Próbáld meg beállítani 9600-ra és csak utána vidd feljebb!
Szerintem nem (nem csináltak hozzá szoftvert). Írj egy LED villogtató programot és számold az órával mért 10 (vagy akárhány) másodperc alatti villogások számát!
Nem értem mire gondolsz. Mire lehet kövtkeztetni a LED villogási sebességéből?
Idézet: „Megtettem, a PC-nek jó a sorosoprtja. Ha a max232 oldalán hurkolom vissza, akkor ugyan nem megy, de ez még nem nagy katasztrófa, mert az biztos, hogy a PIC küldi az adatot és az eljut a PC” Kicsit szabatosabban kellene leirnod mit is csinalsz. Tehat mikor a loopback (hurok) kozvetlen a PIC laban van, akkor ugy tunik mukodik. Mikor a MAX232-n, akkor nem? Tehat a MAX232 kornyeken van valami hiba? Ha PC olvassa amit PIC kuld (mert ugye azt irod a PIC altal kuldott jelek eljutnak a PC-ig, akkor nyilvan az a resze megy...) Vagy nem latod? Nem latsz semmit sem? Sebesseget ellenorizted (nem PIC szoftvereben a forraskodot bongeszve, hanem ahogy javasoltak neked, kulso eszkozokkel). A PC hasznal valamilyen handshake-et ami meglete nelkul esetleg nem hajlando kommunikalni a PIC-eddel? Idézet: Arra, hogy a PIC tényleg 40 MHz-en megy-e... „Mire lehet kövtkeztetni a LED villogási sebességéből?”
Még annyit, hogy nem kéne inkább a gyári fordítót használni a 18F-hez? Talán kevesebb probléma merülne fel...
Idézet: „ICD2-vel nem tudom valahogy nézni a TX lábon a jelalakot?” Nem, abban nincs PicKit2-hoz hasonlo logikai analizator, sem sorot port emulacio... Epits egy oszcilloszkopot ami a hangkartyadra csatlakozik, allitsd alacsony sebessegre amit a hangkartya meg elvisel (pl 1200-2400-4800-9600 baud).
Regen igy meregettem az RC taviranyito jelalakjait (marmint nem a radio frekijet, hanem amit tovabbitania kell). Ha sikerul jo merofejet csinalni akkor egeszen hasznalhato szkopot tud az ember igy kesziteni En amugy egyszeru ellenallas osztokkal oldottam meg az illesztest. Sajnos ugy az induktivitas nagyon bejatszott, de digitalis jelekhez nekem ugy is megtette
No akkor leírom részletesen a problémát:
A PC visszahurkolása a soros kábelen oké. A max232-es IC-re rádugva a soros kábelt és ott visszahurkolva (ott ahol már csak 5V van) már nem működik. Azaz hiába küldök adatot a PC-n, nem látom visszajönni. Ha a PIC-et hurkolom vissza, akkor működik (azaz ha rövidrezárom a PIC TX RX lábát). Ha rákötöm a PICet a max232-re és arra rádugom a soros kábelt és azt hurkolom vissza, akkor is működik (azaz ott hurkoltam vissza, ahol a PC-be dugnám bele). Mindezekből én azt a következtetést vontam le, hogy a jel eljut a PChez, de az nem tudja értelmezni, azaz az időzítéssel vannak problémák . A PIC szerintem megfelelő frekin ketyeg, mert az nem létezik, hogy olyan sokféle órajelről járatva mindig rosszul ketyegne. Mindig ügyeltem rá, hogy megfelelő frekik és BAUD-ok legyen beállítva mindenhol. Ezért nem is értem, miért nem megy. Szkópom nincs és nem hiszem, hogy hirtelen elő tudnék varázsolni egyet a fiókból. Régen összeraktam egy próbanyákon a soroskommunikációt és arra emlékszem, hogy a PICet kvarcról kellett hajtani, hogy menjen az RS232. Egyszerű a kapcsolás, mint az 1x1 és 150x leellnőriztem, hogy jól raktam-e össze. Persze ennek ellenére lehet, hogy valahol, valamit benéztem. De a hiba jelensége szvsz akkor is arra utal ,hogy időzítésbeli probléma van. Itt van egy fotó a panelről: ( a TX és RX lábakon nincs semmi, a többi vezeték egy kijelzőé, de az most nincs bekötve) Bővebben: Link Ja és nem egészen tudom mi az a handshake. Idézet: Ennek kellene utánamenni!„A PC visszahurkolása a soros kábelen oké. A max232-es IC-re rádugva a soros kábelt és ott visszahurkolva (ott ahol már csak 5V van) már nem működik.” Idézet: Ez nem olyan tragédia, amíg a PC oldali szoftverben ki van kapcsolva... „Ja és nem egészen tudom mi az a handshake.”
Esetleg azt tudnám még elképzelni, hogy a kondenzátorok nem megfelelőek. 1 µF-osok vannak a MAX232-n, azokat ajánlja az adatlap. Régen tantál kondikat használtam, de ezek azt hiszem már elkók (bár ebben nem vagyok 100%-ig biztos, nem nagyon értek a kondikhoz).Itt van még két kép:
Bővebben: Link Bővebben: Link Idézet: „A PIC szerintem megfelelő frekin ketyeg, mert az nem létezik, hogy olyan sokféle órajelről járatva mindig rosszul ketyegne. Mindig ügyeltem rá, hogy megfelelő frekik és BAUD-ok legyen beállítva mindenhol. Ezért nem is értem, miért nem megy.” Mi pedig nem veletlenul mundjuk, hogy egy kulso eszkozzel kell az ilyesmit ellenorizni... -- pl a LED villogtatas egy jo modszer, szkop meg a logikai analyzator a masik. Idézet: „Mindezekből én azt a következtetést vontam le, hogy a jel eljut a PChez, de az nem tudja értelmezni, azaz az időzítéssel vannak problémák” En nem erre kozevtkeztetnek, mivel a PC-nek a sajat adatait fogadnia kell tudni. MAX232-tol vissza hurkolva is kellene mennie! Idézet: „Szkópom nincs és nem hiszem, hogy hirtelen elő tudnék varázsolni egyet a fiókból.” Az elobb irtuk, hogy kellene egyet epitened -- vegulis egy illeszto a hangkartyadhoz, kb 20 Ft-bol megvan az egesz... Szoftvert meg lehet talalni amelyik a PC monitorara kirajzolja neked a jeleket... Idézet: „Ja és nem egészen tudom mi az a handshake.” Ha soros kommunikacioval szeretnel foglalkozni akkor illene tisztaban lenni a mukodesevel es a fogalmakkal. Nem nehez megtanulni, az egyik legalapvetobb es majdhogynem legregebbi kommuniakcios modszer... Eddig ugye loopback helyett rx-tx osszekotest irtal, tehat annak a fogalomnak is nezz utana es hasznaldd is -- ugyanis nullmodem eseteben is rx-tx-et kotod ossze, tehat zavaro a megfogalmazas. "nullmodem": meg egy fogalom aminek utana kell nezned. Handshake -- ennek is, RTS/DTS ill. DTR/DSR es ha mar ott vagy akkor XON/XOFF.
Köszönöm szépen mindenkinek a segitséget.
Atnéztem a kapcsolást mert megy külső táprol is vagy usb-n keresztül tudom progizni a hardware-t. A baj olyan egycerü volt hogy csak na. Ugye magát a pic-et az usb csatin keresztül progizom fel a pickit-el. Viszont kell még 1 szál ami 1 kis forszemre lett kivezetve és ráforrasztottam a kábelt Vpp fixre amég tesztelem. Na itt szedett össze minden zavart. Köszi mindenkinek a tanácsot ezért szeretem ezt a forumot.
Készítenék egy programot amely a kapott bitsorozat négyes csoportjait egymás után megjeleníti a PIckit2 tesztpaneljének 4 Led-jén, 2 s késlelteéssel.
A bitsorozat ott ahol logikai 1 van ott a led világit ahol 0 ott nem.Miután a bitsorozat első négy csoportja a teszpanel 4 ledjén megjelent, azok szemmel követhető sebességgel, jobbra lesznek léptetve. A tesztpanelen lévő potenciaméter középállásától, egyik szélső állása felé forgatva egy küszöb értéken felül a léptetés iránya megváltoztatható legyen. Egy nyomógombot nyomva tartva 2 s ig a program futása indítható legyen és egyszeri megnyomására viszont leállítható legyen a program. Használjuk a reset funkciót a program újra indítására. A programot elkezdtem írni de a fenti részhez nem értek hogyan kellene a kódhoz hozzáadni a funkciót. Szeretném kérni a segítséget az elindulásban. Hogyan programozzam ezt le assemblyben a piros betűs részt? MPlab IDE-t használnám a program megírásának céljára. Sajnos még kezdő vagyok a témában, de szeretnék rá megoldást találni. Köszönöm előre is minden segítő szándékú embernek a segítségét. Én is igyekszek segíteni a fórumban.
Üdv mindenkinek!
Szeretnék építeni 1 PIC-es Nixie órát. Nekem kellene 1 kis segítség, hogy az óra 24 órás üzemmód helyett, 96 órás módban működjön: van itt 1 forráskód, de nem tudom, hogy hogyan módosítsam úgy hogy így műkdjön vagyis 23:59:59 helyett 95:59:59-ig számoljon az óra. Hálás lennék a segítségért.
Szerintem a 205-ös sorban kell a 0FCh helyett 0FAh és a 224-es sorban 0FDh helyett 0F7h
|
Bejelentkezés
Hirdetés |