Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nagyon koszonom, watt, tanulmanyozni fogom.
Sziasztok
Épitetem egy PIC égetöt de nem tudom eldönteni hogy most én rontotam el valamit épitéskor vagy valami másal van gond az ic-prog-ot használom és egy ilyen hibát dob ki a végen, csatolok képet. UI: csatolok képet az égetöröl is.
Sziasztok.
Szeretném megkérdezni hogy Piceket lehet-e C++ vagy C# -ben programozni? Vagy csak 'sima' C-ben lehet? Üdv!
Mondjuk úgy, hogy ha lehetne, akkor is felesleges, sőt hülyeség.
Hát sajnos ez teljes kudarc egyelőre. Nem megy se 19200 on, és úgysem ha a soros illesztők nincsenek a PIC és a modul között. A PIC ről viszont tudok küldeni a PC felé 19200 on is. És ami idegesít az az hogy a modul DEBUG portján nem jön adat akármit is csinálok. Így viszont nem látom hogy mit küld vissza a modul a PIC felé (ha egyáltalán küld valamit...)
Namost ha PC-ről tudtál küldeni a modulnak úgy parancsot, hogy a modul azt vette is, akkor gondold már végig légyszives, hogy milyen jelszintre van szüksége a modulnak! Amíg nem tisztázod le, hogy kell-e szintillesztő vagy sem, addig ne is állj neki a program írásának!
A modul közvetlenül nincs a PC re kötve, egy fejlesztői panelen ül amin van egy soros illesztő (nem MAX232)
Én a következőképpen próbálkoztam: Ami működik: PC -----> fejlesztői panel RS232 illesztővel ----> GSM modul Ami nem működik: PIC -----> MAX232i ------> fejlesztői panel RS232 illesztővel -----> GSM modul És úgysem működik a dolog ha a PIC és a GSM modul az illesztők nélkül (egy tápról járatva) van összekötve.
Vagy nagyon "elmegyek valami mellett", vagy az AT parancsot küldöm nem megfelelő formában a modul felé. Az ASCII karaktersorozat után kell valami ENTER - t vagy valamit küldeni? Vagy egymás után veszi az adatokat és ha érvényes AT parancs fut be akkor végrehajtja? Hogyan szokot ez működni? Csak általánosságban kérdezem, nyílván nem ismered ezt a modult....
Hát a sima modemeknél kellett az enter - pontosabban a CR karakter (13 decimális kóddal). Amit én láttam eddig GSM telót, annak is kellett, ugyanúgy működött, mint egy modem.
De ha már itt tartunk: RX/TX csere nem fordulhat elő? Amikor PC-ből küldtél a modulra parancsot, akkor láttad a terminálban az echo-t, amit a modul küld vissza? Látod a PIC-en is ezt az echo-t?
A PC vel jól működik, ha küldök egy érvényes AT parancsot akkor a modul visszaküld egy "OK" - t. Ha lekérdezek egy paramétert az is rendben megjön. Hogy a PIC felé mit küld vissza azt nem tudom (szerintem semmit) mert a PIC nél a vétel nincs is felkonfigurálva, lévén hogy én csak és kizárólag küldeni szerettem volna a modul felé. A #196400 HSZ ben van az az egyszerű program amivel küldeném az AT parancsot a PIC felé. A program által küldött parancsot a PC veszi (hyperterminal) is, a modul viszont nem. A CR (carriage return) karaktert is próbáltam már de így még a PC sem veszi.
Hála Neked megvan a hiba...Az RX/TX valóban fordítva volt bekötve...Elnéztem a csatlakozón a számozást. A PC ---> modul kapcsolatnál egy gyári kábelt használtam ezért működött, a PIC ---> modul kapcsolatnál egy soros kábel egyik vége tüskesorra van kötve így adott volt a hibalehetőség... Köszönöm a segítségedet!!! Ja, és mégis kellett a "CR" a karaktersorok a végére.
Még egyszer köszönöm mindenkinek aki segített!
Nem tudom mi van ezzel a PIC16F628A val de a 10 Mhz es kvarccal egyszerűen nem működik. A program futása közben leszakad a rezgés és nincs órajel. Most átírtam 4 Mhz es belső oszcillátorra a programot és átkonfiguráltam ehhez az órajelhez az UART ot. Lévén hogy nem annyira stabil a belső oszcillátor mint a kvarc lehet ebből gondom? Jelenleg működik rendesen a belső oszcillátorról, de attól félek, esetleg hideg / meleg változásra...stb elmászik frekiben az oszcillátor, ettől elállítódik baud rate és nem fog menni az átvitel. Bár a GSM modul automatikusan felismeri a baud rate et, de gondolom csak a szabvány sebességeket ismeri...
Elég toleráns a BaudRate értékére a soros kommunikáció. Csak nagyon hosszú adatcsomag és akkor is csak jelentős eltérés esetén van gond. Számold ki a feltételezhető belső oszci mászáshoz az értékeket, látni fogod, hogy nem vészes az eltérés. Nekem még soha nem volt ilyen jellegű gondom, a belső oszcival.
Viszont a 10Megás kvarcnak is mennie kéne! HS oszci van beállítva? 22p-s kondik kellenek. Ha nem megy vegyél megfelelő forrásból, megfelelő kvarcot!(pl. chipcad)
Köszi, akkor marad a 4 MHz es belső oszcillátor. A 10 Mhz es kvarc a chipcad től van, tipusa SX5032 SMD. 10 Mhz es van nekik meg 25 Mhz es. Egy alkalmazásban PLL referenciának a 25 mHz est használom hónapok óta, semmi bajom vele. A PIC nél HS re van állítva az oszcillátor tipusa, és eredetileg pont 22p - t tettem mellé. Működött egy darabig, aztán elkezdett szórakozni hogy 3,3 V ról nem rezgett be csak 5 V ról. Sebaj kicseréltem a stab IC t 5V ra, lábkompatibilis volt. Aztán elkezdett egy idő után szórakozni 5V ról is, ekkor kezdtem játszani a kapacitásokkal. Próbáltam több értéket szimmetrikusan aztán asszimetrikusan beletenni, de ekkor meg csak kapacitás nélkül működött. Tegnap éjjel már úgysem, erre mérgemben átírtam inkább a programot...így legalább megy...
Sziasztok!
Bocsanat, hogy trivialis dolgot kerdezek, de amennyiben belso oszcival szeretnek 10400 Baudon kommunikalni, akkor mit hogyan allitsak? Valami kalkulaciot lenne kedves adni valaki ugy, hogy megertsem? Elore is koszonom.
Az adatlapban benne van a számítás és a beállítás menete...
Nagyon érdekes! Ez olyan, mintha fokozatosan leépült volna a kristály. Persze nem tudom, hogy ez hogy lehetséges, még nem láttam ilyet. Érdemes lenne egy másik, akár bontott példányt kipróbálni, hogy kizárjuk a PIC hibáját. Én nem lennék nyugodt, a végén még a belső oszci is megáll!
Csak titkon azt remeltem, valaki megkimel tole...
Attól, hogy ugynazt kell olvasnod itt is? Helyetted ne olvassuk el? (23)
A PIC et már kicseréltem, ugyanaz a jelenség az újjal is, valószínűleg a kristály lehet hibás. Talán jobban megmelegítettem a kelleténél...? 20 - 30 db ot már beforrasztottam ebből a tipusból és nem volt még ilyen jelenség... Nem tudom mi lehet a gond, de már nem is lényeges ha a belső oszcival is stabilan működik a dolog.
köszi
Okés, én csak kiváncsi voltam mi lehet az ok. De akkor biztosan a kvarc halálozott el...
Talán megérne egy próbát a kvarc csere, majd holnap kicserélem. Nem szeretem a bizonytalan dolgokat...
Helló MIndenkinek.
A következő kérdésem van az MPLAB használatával: Debugger módban, ha van kettő darab 8 bites regiszterem, (pl. ADRESL, ADRESH) a Watch ablakban megtudom őket jeleníteni decimálisan, de együtt? Tehát mint egy 16 bites számot? Ha nem akkor van e erre valami mód? Köszönettel
18F sorozatnál egymás után vannak a memóriában, így jobbkatt-->Properties, és a Size-nál kiválasztod, hogy 16bit legyen, a Byte Order-nél meg esetleg a sorrendet megcseréled.
16F-nél nem egymás után vannak, így ott nem hiszem, hogy megoldható. Tedd egymás alá őket, és nézd egybe...
Helló potyo
Köszönöm a válaszodat. 16F-t használok. Az a baj, hogy pl. az ADRESH első bitje már 2 a 8.-on és nem 2 a 0.-on. Tehát nehéz összehozni, hogy mennyi is az a két 8 bites szám decimálisan. Azért köszönöm.
Akkor átmásolod egymás utáni memóriacímre őket, és úgy nézegeted.
|
Bejelentkezés
Hirdetés |