Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   390 / 1210
(#) Hp41C válasza anemo hozzászólására (») Márc 26, 2013 /
 
Mégis hány kimenetre lenne szükség?
PIC18F2550: 18 18F4550: 29 kimeneti lába mehetne az ULN -ekre. Szerintem ez kevés. Ráadásul a 18 - 29 vezérlés közös árama mind a kontrollert tartalmazó panelen menne kereszül. 100mA /kimenettel számolva ~ 3A áram is összejöhet.

Ennél sokkal több kimenetre kellene méretezni, ha lehet modulárisra.
SPI:
Ha az ULN -eket 8 vagy 16 bitesével 1 vagy 2 74HC595 / CD4094 vezérelné, akkor 8 / 16 vezérlésenként egy modul keletkezne. Ezeket a modulokat lehetne láncba fűzni. Ha a felület SPI és mondjuk 64 modult használsz fel (64*16 bit = 1024 kimenet már elég nagy pályaudvar) és mondjuk 100kHz -vel lépteted ki a biteket, akkor az összes kimenet frissítése 10.24 ms alatt megtörténne. Ehhez nem kell csak két kimenet (SCK és SO), azaz egy 14 lábú 16F1455 is meg tudja csinálni. A modulok külön tápbecsatlakozással rendelkeznek maximálisan 1.6A árammal. Egyszerűbben is gyártható a panel... Ezzel a megoldással nem tudod visszaolvasni a kivitt adatokat. A USB - SPI konverter programja függ az alkalmazott modulok számától.
I2C:
16 bites I2C portbővítő (MCP23017) -ből csak 8 db tehető fel egy buszra, így buszonként 128 bit vezérelhető és olvasható vissza. Több buszt kellene kialakítani, de a kontrollerekben csak 1 illesztő van. A többit programból kell megoldani. De I2C slave -ként használható kontroller is (pl. 16 bitre egy 16F883), ekkor nincs a gyári megkötés a cím felső 4 bitjére, azaz elvben 128 kontroller is köthető lenne egy I2C buszra, ami 2048 visszaolvasható kimenetet eredményezne. A busz működéséhez két nyitott kollektoros vezeték kellene, ami zavarérzékenyebb, mint az SPI megoldása. Ezenkívül a vezetékeken kétirányú átvitelt kell biztosítani, ami megnehezíti az optikai leválasztást.
RS485:
A kontrollereket alkalmazó I2C -s meholdással kb azonos költségű megoldás. Az RS485 - TTL konverzió után a jel mehet a modulok kontrollreére, 16 bites modulhoz jó a 16F883. Az adatok visszaolvashatók. Az optikai leválasztást a modulok TTL szintű uart jeleninél célszerű megcsinálni.
A hozzászólás módosítva: Márc 26, 2013
(#) bbalazs_ válasza pgabor2 hozzászólására (») Márc 26, 2013 /
 
En kihagynam a 4094-eket, egybol a lancolt kimenet ra a TPIC-ekre.
Esetleg egy buszmeghajto (ha jol emlekszem, a 245-os) jo lenne a kozos jelekre (pl. CLK, OE, CS, stb), mert ennyi IC mar fogyaszthat boven 10 mA nagysagrendu aramot is.
MIndenkeppen javaslom a tobbi vezerlolab tovabbvitelet is, mert igaz, hogy a shifteles ideje gyors, de akkor is fals felvillanasok vannak. Ha hasznalod a 'hatter' tarat a shifteles ideje alatt es csak ha kesz, akkor irod at a LATCH regiszterbe, akkor ez teljesen kikuszobolheto.

pgabor: ez igaz, viszont a kikuldes igen gyors (ezek a regiszterek a 10MHz-et siman viszik, de legyen csak 100kHz, mint a fenti peldaban, ez az emberi szem fotopias idobeli felbontokepessege hataran jar, szoval pont a 'szempillantas' idejebe esik
Es ha hasznalja a TPIC tobbi vezerloregiszteret, akkor ebbol semmit nem lat a felhasznalo.
(#) Hilo hozzászólása Márc 26, 2013 /
 
Sziasztok,
A következő lenne a kérdésem, a cikkek között található JDM mennyire aktuális még? Érdemes e megépíteni? Egyenlőre csak tanulgatom a dolgokat, nincs konkrét célom még, és egy 16F887-essel gondoltam kezdeni a kísérletezgetést.
A hozzászólás módosítva: Márc 26, 2013
(#) vicsys válasza Hilo hozzászólására (») Márc 26, 2013 / 1
 
Szerintem olvasd el a lap tetején található sárga mezőt...
(#) anemo hozzászólása Márc 26, 2013 /
 
Hát elég sok verzió született, már végképp nem tudom mit csináljak, valami próbát pedig meg kellene építenem, ahhoz meg vásárolnom
Ma voltam egyeztetni költségvetésileg, hát eléggé szűkösen kell megoldani. Ebből adódóan akkor az RS485 és I2C kiesik.

Konkrétan lenne szükség körülbelül ~150 db kimenet lenne (izzók) és bemenetként kb. 60 db nyomógomb.
Ez az SPI megoldás még nagyon homályos nekem, de ha jól gondolom, sokkal több elektronikai egység kellene, mintha az ULN-eket a buszvezetéken sorosan kötném.

Ha erre a 150 kimenetre egyszerre küldeném ki a bitsorozatot (nem célorientáltan), akkor kb. milyen veszteségre számítsak? Ilyen kimeneti mennyiségnél is működne ez a LATCH-enable dolog?
Ha jól gondolom, akkor az ULN-ekkel így nem lenne megoldható a nyomógombok "észlelése", mivel egyoldalú lenne az adatátvitel. De mondjuk lehetne a nyomógombokra külön áramkör?
(#) Hp41C válasza anemo hozzászólására (») Márc 26, 2013 /
 
Szia!
Idézet:
„Ez az SPI megoldás még nagyon homályos nekem, de ha jól gondolom, sokkal több elektronikai egység kellene, mintha az ULN-eket a buszvezetéken sorosan kötném.”

Pont erről mesélek. Nézd meg a VFD óra vezérlését...
Az UNL -ek nem tárolnak. A 74HC595, TPIC6C595 tárol és a léptető regiszter egy kimeneti regiszteren keresztül vezérli a kimeneteit - a beléptetés nem látszik a kimeneten.

Maradnék a kaszkádosításnál, mint 20 kiválasztó jelet vigyek át a külön címzéshez.
Ha a gombokat 74HC166 párhuzamos beírású léptető regiszterekből kialakított lánc bemeneteire kötöd, akkor a 60 gomb állapotának beolvasása sem gond, egy vezetékkel kell több: 74HC166 SHIFT/LOAD. A két csoport egyéb vezérlőjelei lehetnek közösek. Ez a megoldás több gomb állapotát olvassa be, de a program csak a kiépítettek adatát továbbítja.
Kimenetek: 150 ~ 20*8: 20 db TPIC6C595 vagy 20 db (74HC595 + UNL),
Bemenetek: 60 ~ 8*8: 8 db 74HC166
Meghajtás: 1 db 74HC244.
Vezérlő: 1 db 16F1455 vagy 16F1459 vagy 18F2550
Még a tápfeszültséget, az áramfogyasztást is mérheted a beépített A/D átalakítóval.
A hozzászólás módosítva: Márc 26, 2013
(#) valaki2 hozzászólása Márc 26, 2013 /
 
sziasztok!

Hogy tudom az UART -nál kimérni oszcilloszkoppal, hogy a Baudrate pl. 9600 Kbaud?
1/9600k kb. 104.2e-9

Ha küldök egy 0x55 -t üzenetként, akkor egy bit ideje ez a 104.2e-9?
(#) potyo válasza valaki2 hozzászólására (») Márc 26, 2013 /
 
Oszd el/szorozd meg azokat az értékeket 1000-el és akkor jó lesz.
(#) bbalazs_ válasza anemo hozzászólására (») Márc 26, 2013 /
 
Van nekem kb 25-30db TPIC6c695-osom, beforrasztva (mar) hulladekpanelre. Biztosan mukodtek, mert ebbol volt a szines ledes csikvilagitasom. A ledeket mar kiszedtem belole.
Postakoltsegert viheted.
(#) valaki2 válasza potyo hozzászólására (») Márc 26, 2013 /
 
Tehát:
Baudrate: 9600k
1/9600k = 104.2e-9

A jelem 2 információt hordozhat: 0 v. 1 azaz 1 bit információt viszek át
Akkor 1s alatt 9600 000 bitet tudok átvinni. Ami: 9600 Kbit/s


Ha 0x55 = 0b01010101 küldök,
akkor ezt a byte -t 104.2e-9s alatt viszi át?
és egy bitet 104.2e-9s / 8 = kb. 13e-9s

Ez a gondolatmenet eddig stimmel?
(#) potyo válasza valaki2 hozzászólására (») Márc 26, 2013 /
 
Az nem stimmel, hogy a sebesség nem 9600kbit/s, hanem 9600bit/s. És ne keverd, a biteket a bájtokkal, egy bit átvitelének az ideje az 1/9600, vagyis 104.2e-6 másodperc. Egy bájt átvitele tízszer ennyi ideig tart, mivel van start és stop bit is.
(#) valaki2 válasza potyo hozzászólására (») Márc 26, 2013 /
 
Baudrate: 9600
1/9600 = 104.2e-6

A jelem 2 információt hordozhat: 0 v. 1 azaz 1 bit információt viszek át
Akkor 1s alatt 9600 bitet tudok átvinni. Ami: 9600 bit/s


Ha 0x55 = 0b01010101 küldök,
akkor ezt a byte -t + start és stop bitet 104.2e-5s alatt viszi át
és egy bitet 104.2e-6s alatt.

Köszönöm
(#) valaki2 hozzászólása Márc 26, 2013 /
 
Lenne még egy kérdésem a UART -l kapcsolatban.
A uC -m támogatja a hardware flow control -t. Ha engedélyezem a Transmitter clear-to-send opciót, akkor elvileg a uc automatikusan vezérli az adatátvitelt?
Vagyis nekem szoftveresen nem kell egyebet tennem, csak ezt engedélyeznem?
(#) anemo válasza bbalazs_ hozzászólására (») Márc 27, 2013 /
 
Köszönöm!!! Valószínűleg élni fogok az ajánlattal, majd privátban megkereslek!
(#) anemo válasza Hp41C hozzászólására (») Márc 27, 2013 /
 
Elnézést, hogy ennyi alapvető dolgot kérdezek, de örülök, hogy ennyire segítőkészek vagytok.

Ha kimenetként tehát TPIC6C595-öt alkalmazok, ráengedhetem közvetlenül a 24V-ot és az izzókat?
Utánaolvasgatok majd jobban a dolgoknak, és megpróbálok majd egy blokkvázlatot készíteni az elemekről, hogy jól képzelem-e el a szisztémát. Mert ennek az áramköri kapcsolásától meg eléggé messze áll a tudásom.
(#) bbalazs_ válasza anemo hozzászólására (») Márc 27, 2013 /
 
Igen, mivel nyelokent van definialva. Tehat az izzo egyik vegere direktbe kapcsolod a 24V-ot (remelem, egyenfeszrol beszelunk), a masik vege megy az IC-be kozvetlenul.
Az ic-t magat 5V-al taplalod meg a Vcc bemeneten. A TPIC IC-k foldjeit csillagpontosan kozositenem - ugyanoda megy a 24V-os tap foldje is - mert ott komolyabb aramok mehetnek.
A digitalis foldeket osszefognam es a vegen ugyanabba a csillagpontba vezetnem.
Termeszetesen idejon az USB vezetek es a 2550-es foldje is.
Ezeket a vezetekeket vagy vezetosavokat jo vastagra erdemes kesziteni. A +tap feloli vegek nem tulsagosan igenyesek. Szurni es stabilizalni a digitalis tapokat erdemes.
En a helyedben kihagynam az USB tapjat a bulibol es kapna kulso, stabilizalt 5V-os tapellatast a PIC2550 es a TPIC IC-k is.
(#) icserny válasza bbalazs_ hozzászólására (») Márc 27, 2013 /
 
Idézet:
„En a helyedben kihagynam az USB tapjat a bulibol es kapna kulso, stabilizalt 5V-os tapellatast a PIC2550 ...”
Ebben az esetben azonban figyelni kell, hogy az USB-re rá van-e csatlakoztatva az eszköz. A gyári demókban viszont általában ki van kommentelve (nem aktív) ez az opció:
  1. //#define USE_USB_BUS_SENSE_IO
(#) bbalazs_ válasza icserny hozzászólására (») Márc 27, 2013 /
 
Hoppa, koszi, igazad van. A sajat csapdamba estem. Szoval kaphat a 2550-es taplalast a PC-rol, a tobbi TPIC pedig 5V-ot mashonnan, csak a foldek legyenek kozositve a megfelelo csillagpontban.
(#) Hp41C válasza bbalazs_ hozzászólására (») Márc 27, 2013 /
 
Sziasztok!
Mehet a PIC a saját tápjáról is, a USE_USB_BUS_SENSE_IO -t be kell állítani, ki kell építeni egy digitális bemenetet, ami az USB +5V táp jelét figyeli, ennek a bemenetnek a nevét is meg kell adni a USB firmware -nek. A táp figyelésénél ügyelni kell arra is, hoy előállhat az az eset is, hogy az USB tápja megvan, de a saját táp nincs meg. A figyelést úgy old meg, hogy az USB +5V tápját egy ellenállással a föld felé terheled (alacsony szintet ad, ha nincs meg az USB +5V) és egy nagy értékű (100k) ellenálláson keresztül vezesd a bemeneti lábra (magas szint, ha megvan az USB +5V). A nagy értékű ellenállás megakadályozza, hogy a bemenet beépített védődiódáin keresztül kapjon feszültséget az 5V -os saját táp és maga a PIC. Ha a fentieket beállítottad, akkor engedélyezi csak a firmware az USB illesztőt, ha érzékeli az USB tápot.
(#) valaki2 hozzászólása Márc 27, 2013 /
 
Valaki tud esetleg hardware flow control -l kapcsolatban segíteni?

A uC -m támogatja a hardware flow control -t. Ha ezt engedélyezem akkor a hardware elvégzi ezt a flow control vezérlést? Nekem szoftver részről ezzel kell valamit csináljak? Csak beírom send buffer -be az adatom
és a többiről a hardware gondoskodik? Flow controlhoz szükséges a clear-te-send és request-to-send opció is? Csak simán clear-to-send -l működhet a kommunikáció?
(#) icserny válasza valaki2 hozzászólására (») Márc 27, 2013 /
 
Nem tudunk rá válaszolni, ha nem árulod el, hogy konkrétan milyen mikrovezérlőről van szó, hogyan engedélyezed az adatfolyam vezérlést, és milyen módban (simplex/duplex?), és hogyan szeretnéd használni azt.

Ezektől függően lehet a válasz igen, vagy nem.
(#) Hilo hozzászólása Márc 27, 2013 /
 
Sziasztok,
A közeljövőben (első szabadabb hétvégémen) tervezem megépíteni a Szilva féle PICKit2 klón-t.
Az lenne a kérdésem hogy kinek mi a tapasztalata vele, ha van?
Illetve ha nem beszéltek le róla, akkor a firmware-t hol tudnám beprogramoztatni? valaki vállal e ilyet? (Budapesten)
Előre is köszönöm
(#) Hp41C válasza Hilo hozzászólására (») Márc 27, 2013 / 1
 
Szia!

Vélemények a PICkit2 klón építése topikban. Ha most állsz neki és még nem készítettél panelt, inkább a Watt féle vagy a furatszerelt verziót ajánlanám. Több, mint kétszeres a kezelhető kontroller típusok száma.
(#) Hilo válasza Hp41C hozzászólására (») Márc 27, 2013 /
 
Köszönöm, azt hiszem ennek megfelelően fogok választani akkor.
(#) anemo válasza Hp41C hozzászólására (») Márc 29, 2013 /
 
Sziasztok!

Köszönöm szépen, megépítem az alapkapcsolást és a napokban majd ismét fogok jelentkezni, mert biztosan lesz még krédésem!

Köszönöm az eddigieket.
(#) cross51 hozzászólása Márc 29, 2013 /
 
Sziasztok!
Van ötletetek hogy erre a progira a 16f1512 mért csak magasat ad ki a portokra mért nem villogtatja a ledet ?
  1. #include "p16f1512.inc"
  2.     __CONFIG _CONFIG1, _FOSC_INTOSC
  3.  
  4.     ORG     0x000
  5. ;-------------------------------------------------------------------------------
  6.     MOVLW   B'00000011'
  7.     MOVWF   OSCCON
  8. ;-------------------------------------------------------------------------------
  9.     BANKSEL TRISA
  10.     MOVLW   B'00000000'
  11.     MOVWF   TRISA
  12.     BANKSEL LATA
  13.     CLRF    LATA
  14.     BANKSEL TRISB
  15.     MOVLW   B'00000000'
  16.     MOVWF   TRISB
  17.     BANKSEL LATB
  18.     CLRF    LATB
  19. ;-------------------------------------------------------------------------------
  20. MAIN:
  21.     MOVLW   B'11111111'
  22.     MOVWF   LATB
  23.     CALL    IDO
  24.     MOVLW   B'00000000'
  25.     MOVWF   LATB
  26.     CALL    IDO
  27.     GOTO    MAIN
  28.  
  29. IDO:
  30.     MOVLW   D'255'
  31.     MOVWF   1
  32.     DECFSZ  1, 1
  33.     GOTO    $-1
  34.     RETURN
  35.     END


Köszi
A hozzászólás módosítva: Márc 29, 2013
(#) Hp41C válasza cross51 hozzászólására (») Márc 29, 2013 /
 
Szia!
Van! banksel ANSELB clrf ANSELB
(#) cross51 válasza Hp41C hozzászólására (») Márc 29, 2013 /
 
Nem nem ez lesz az nem értem mért nem működik
(#) icserny válasza cross51 hozzászólására (») Márc 29, 2013 /
 
Watchdog le van tiltva?
(#) cross51 válasza icserny hozzászólására (») Márc 29, 2013 /
 
Nem jó az se letiltottam de az se
De ennyit mit ki ír az mplab:
Message[303] D:\DOCUMENTS AND SETTINGS\RENDSZERGAZDI\MPLABXPROJECTS\FUTOFENY.X\16F1513.ASM 2 : Program word too large. Truncated to core size. (FFFC)
Message[302] D:\DOCUMENTS AND SETTINGS\RENDSZERGAZDI\MPLABXPROJECTS\FUTOFENY.X\16F1513.ASM 8 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\DOCUMENTS AND SETTINGS\RENDSZERGAZDI\MPLABXPROJECTS\FUTOFENY.X\16F1513.ASM 13 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\DOCUMENTS AND SETTINGS\RENDSZERGAZDI\MPLABXPROJECTS\FUTOFENY.X\16F1513.ASM 16 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\DOCUMENTS AND SETTINGS\RENDSZERGAZDI\MPLABXPROJECTS\FUTOFENY.X\16F1513.ASM 18 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\DOCUMENTS AND SETTINGS\RENDSZERGAZDI\MPLABXPROJECTS\FUTOFENY.X\16F1513.ASM 22 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[303] D:\DOCUMENTS AND SETTINGS\RENDSZERGAZDI\MPLABXPROJECTS\FUTOFENY.X\16F1513.ASM 27 : Program word too large. Truncated to core size. (FFFC)

Nem értem mire utal de lehet ez a baj.
Következő: »»   390 / 1210
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem