Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ezen az oldalon találsz egy olyan részt, hogy PIC eszközök programozó szoftverei. Meg fogod találni közöttük a megfelelőt.
Akadt egy kis problémám egy RFM22B RF modul és egy PIC18F2550 együttesével.
A történet a következő: Van egy távirányító és egy vevő. Mindkettőben ugyanezek a modulok vannak. A kommunikáció a kettő között abból áll, hogy a távirányító küld valamit, a vevő pedig válaszol, és így oda-vissza. A vevőben korábban egy 18F242 volt mellette 2 H-híd-al is amiket TC4469-ek hajtottak. A kommunikáció hibátlanul zajlott, mentek az adatok oda-vissza. Történt aztán, hogy valami zavar (talán induktív visszarúgás az egyik motorból) megölte az egyik FET meghajtót és a PIC-et. Mivel volt több hiba is a NYÁK-on, ezért azt átterveztem mindjárt egy 18F2550-hoz. Az új nyákba mindent átraktam természetesen a modult is (van hozzá egy 5-3,3V-os átalakító panelecske is). Ezután az előző programot elővettem, a lábkiosztásokat átírtam, illetve az új procihoz igazítottam a FUSE biteket. DE semmi máson nem változtattam. A program ezek után indult, működött. A modul és a PIC közti SPI kommunikáció működik. (egyenlőre szoftveres, később tervezem hardveresre csinálni) Tudok regisztereket írni/olvasni, adatot fogadni. A modul azonban nem hajlandó adatokat küldeni. Pontosabban azt jelzi, hogy elküldte, de a távirányító nem kap tőle semmit. Miután elvileg küldött, hiába kapcsolom vevő módba, nem ad megszakítást az kiolvasásához. (pedig a távirányító válasz kimaradása esetén is küld csomagokat periodikusan) Ha csak vételi módban tartom, akkor foylamatosan veszi a csomagokat. Egyszer véletlenszerűen elindult a kommunikáció, és ment is amíg újra nem indítottam a PIC-et. Azóta sem sikerült ezt reprodukálni. A modulra gyanakodtam, hátha annak is ártott az ami a az előző procit is kinyírta, de az új modul is ugyanezt produkálja. Úgyhogy a hiba PIC-nél kell, hogy legyen, csak már jó ideje nem jövök rá, hogy mi lehet az. Ebben kéne sgítség! Talán elfelejtettem valamit konfigurálni, vagy van valami sajátossága ennek a PIC-nek... A program CCS C környezetben lett megírva!
Szia!
Kapcsold ki a komparátor modult. CMCOM = 0x07;
A komparátorokat a setup_comparator(NC_NC_NC_NC) paranccsal kapcsoltam ki. Azt, hogy a regiszter tényleg átállt-e 07 -re azt nem tudom, de valószínűleg igen.
A 18F2550 -en az RC5, RC4 nem használható digitális kimentenek, az RC3 nem használható sem kimenetnek sem bemenetnek.
Azokat a lábakat úgyis az USB használja. (ami jelenleg még nincs használva) De, hogy minden világos legyen, itt van a kapcsolás:
Elkészült. Watt féle programmal kiválóan működik. Köszi mindenkinek a jó tanácsokat.
Tegnap végigpróbáltam sok mindent és a következőre jutottam: Ha kikapcsolás után kisütöm mind a 3,3V mind az 5V elkóit utána hibátlanul elindul és működik a modul.
Azonban ha egy állandó ellenállást kötök párhuzamosan az elkókkal (kisütés) akkor már nem. Próbálkoztam már az inicializáláskor egymás után többször reset-elni a modult, sőt többször inicializálni, de nem hozott eredményt. Próbálkoztam több kerámia kondit párhuzamosan kötni a tápvonalakkal de az sem segített. Csak azt nem értem, hogy ugyanebben a konfigurációban csak másik procival miért működött ugyanez jól? Még egy érdekes dolog: ha a tápot annyira visszaveszem, hogy a PIC már csak 2,5 és a modul már csak 1,5V-ot kap akkor is megindul a kommunikáció. Érdekes.
A 18F242 adatlapjából:
Idézet: „In order to configure pins RC6/TX/CK and C7/RX/DT as the Universal Synchronous Asynchronous Receiver Transmitter: ? bit SPEN (RCSTA<7>) must be set (= 1), ? bit TRISC<6> must be cleared (= 0), and ? bit TRISC<7> must be set (=1).” A 18F2550 adatlapjából: Idézet: „The pins of the Enhanced USART are multiplexed with PORTC. In order to configure RC6/TX/CK and RC7/RX/DT/SDO as an EUSART: ? SPEN bit (RCSTA<7>) must be set (= 1) ? TRISC<7> bit must be set (= 1) ? TRISC<6> bit must be set (= 1)”
Üdv. Mindenkinek
PIC16F886-nál a következőbe ütköztem: Idézet: „MPLINK 4.42, Linker Device Database Version 1.7 Copyright (c) 1998-2011 Microchip Technology Inc. Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x0000100a Errors : 1” 8K-s programterülete van ennek a tipusnak és az .lkr-ben is 1FFF -ig írja. Mi lehet a gond?
A linker állományt kell megnézni, valószínűleg 2 K-s laponként van definiálva a kódterület (0-7FF). Emiatt egyetlen nagyméretű szekciót nem tud a linker elhelyezni.
Szia!
Kicsit hosszú a program, amit a 0. lapra szeretnél betölteni. A lap a megszakítási vektor miatt a 0x004 címen kezdődik, és 2*(0x800-0x004) byte hosszú. A program, amit bele szeretnél tenni 0x100A byte, azaz 0x805 szó hosszú.
Szia!
Az éjjel már kicsit "túlpihent" voltam. Most reggel már eszembe jutott a témában írt cikked. Ott a megoldás, már megtaláltam. Köszönet a cikkért (is)!
Szia!
Nem Neked szántam, hanem Master_of_the_web -nek...
Olyan mintha beraktak volna egy 18F14K50-be egy erre írt programot és kiadták cél chip-ként. A lábkiosztás, a kvarc órajele alapján legalábbis teljesen úgy tűnik. Esetleg a program kiolvasási, törlési és újraprogramozási lehetőséget kivették belőle.
Már az MC2200-at is úgy csinálták. S mindkettő olcsóbb valamivel, mint a PIC üresen...
De legalabb nem nekunk kell megirni. Es olcsobb mint a FTDI.
Viszont ha akarjuk lecserelhetjuk a firmware-t sajatra (persze nem tudom megeri-e, de miert ne? )
HACK: Open source USB stack on MCP2200
Most en a MCP2210 USB-SPI illesztorol beszelek. Vegulis szabvany 12 Mbps sebessegu SPI 9 CS kimenettel, adasra es vetelre 64 byte bufferrel. Az ara kedvezo. Az FTDI kb dupla aru.
Idézet: Igen, csak közben eltereltük a vita fonalát. Bocs.„en a MCP2210 USB-SPI illesztorol beszelek” Idézet: Mármint a max. 12 Mbps USB busra csatlakozik. De a leírás HID eszköznek mondja, ez azt jelenti, hogy 64 kbyte a maximális átvitelei sebesség (1 ms-onként egy 64 bájtos csomag átvitelére képes mindkét irányba). „szabvany 12 Mbps sebessegu” Idézet: Kétségtelen, hogy megéri az árát. „Az ara kedvezo.”
Üdv
Tud valaki segíteni? A problémám az hogy rámentem véletlenül a programmer/download os- ra és már egy órája vilog a pickit 2 piros (Busy) LED Idézet: Amíg áram alatt tartod !„meddig tart ez?” Próbáld meg leválasztani ( Programmer menüpont ) , majd nézd meg mit csinál, ha újra csatlakoztatod ( lehúzni, visszadugni!). Ha jó (valószínűleg ez lesz), akkor OK, ha nem, akkor firmware frissítés ( NY-ot nyomva csatlakoztatod az USB-re és utána download OS !)! Steve
Sziasztok!
Tudna valaki segíteni hogy ebben a hozzászólásban részletezett koordináta átváltást hogyan lehetne a legegyszerűbben kiszámoltatni egy kontrollerrel? Nekem így elsőre elég bonyinak tűnik a 0,6 al való szorzás.....Van esetleg valakinek ötlete hogyan lehet ezt a legegyszerűbben megoldani? Egy linkbe kéne foglalnom a koordinátákat hogy "megegye" a google maps, de sajna a GPS modul nem azt a formátumot küldi ami jó lenne. Így muszáj átváltani, de hogyan? Idézet: Szorzod 6-tal, osztod 10-zel. „Nekem így elsőre elég bonyinak tűnik a 0,6 al való szorzás...”
Országomat egy lúért!
A MAL (Microchip Application Library) USB szekciója az USB Device CDC Basic Demo mintapélda mellett tartalmaz egy "PC Dynamic Software Example" mintaprogramot (VC++ 2008-ban). Hogyan lehetne ezt a programot kiegészíteni azzal, hogy a virtuális soros port sebességét állítsa át az alapértelmezett 9600 bps-ről pl. 57600-ra? A Windows-ban a port tulajdonságainál hiába állítom át - valószínűleg nem is megy ki modemvezérlő (vagy minek hívják) parancs. Most kínomban PICkit2 logikai analizátor módjában megmértem a jelet, abból derült ki, hogy az USB-UART átalakítómon keresztül 9600 bps jelet kap a PIC-kwik projektben használt PIC24, ha a fentemlített programmal küldök neki karaktereket a PC-ről. Pedig 57600-nak sokkal jobban örülnék! |
Bejelentkezés
Hirdetés |