Fórum témák
- • Elfogadnám, ha ingyen elvihető
- • Kenyérpirító nem kapcsol ki időben
- • Klíma szervizelés, javítás
- • Gázkazán vezérlő hibák
- • MyElecParts alkatrész kereső és készlet nyilvántartó
- • ZC-18 kazán
- • Erősítő mindig és mindig
- • IPTV, azaz, TV-zés internet szolgáltatón keresztül
- Varrógép lassulás
- • Szobatermosztát bekötése
- • Karácsonyi fényfüzérek
- • Videoton EA 6383 s (tuning)
- • Kombikazán működési hiba
- • Villanyszerelés
- • Indukciós főzőlap javítása
- • Audiofil, High End Audio
- • Felajánlás, azaz ingyen elvihető
- • Vicces - mókás történetek
- • Hegesztő inverter javítás
- • Sprint-Layout NYÁK-tervező
- • Hibrid erősítő
- • Tápegységgel kapcsolatos kérdések
- • Lemezjátszó beállítása, javítása
- • Kerámialapos tűzhely
- • ESP32 bootloader
- • Androidos okos telefonok
- • WiFi / WLAN alapkérdések
- • LCD TV probléma
- • PIC - Miértek, hogyanok haladóknak
- • Arduino
- • PC táp javítása
- • STK erősítők javítások
- • Dióda helyettesítés
- • Szárítógép problémák
- • Vásárlás, hol kapható?
- • Leválasztó transzformátor
- • Autós erősítős kérdések, problémák
- • Elektromos távirányítós kapunyitó
- • NYÁK-fólia rendelés
- • Akkumulátor töltő
- • Kikapcsolás késleltető
- • Li-Ion saját akkucsomag készítése
- • Hőkioldó bekötése áramkörbe
- • SMD forrasztás profin
- • Tesla tekercs építése
- • Vezetékes telefon szerelés
- • Néhány wattos szünetmentes tápegység
- • Suzuki Swift elektronika
- • Ponthegesztő készítése házilag
- • Digitális forrasztóállomás
- • Parkside akkuk javìtása
- • Transzformátor készítés, méretezés
- • Akkumulátoros fúró
- • Szilárdtest relé
- • Kompresszor építés (levegő)
» Több friss téma
|
- 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.
Megint az a dióda (D1)! Tegnap volt róla szó, hogy nem kell. Olvass egy kicsit vissza!
Biztosan ezt csinaltad meg? Ugye egy tranzisztor B-E feszultsege altalaban 0,6 V. Te erre rakotod a 12 voltot. Az elso bekapcsolaskor elszall a tranyo. Kellene a bazisba egy 4k7 ellenallas sorosan es egy 2k2 a GND fele. Ez nem PIC kerdes, hanem alap elektro.
Azért illene a szerencsétlen tranyó bázis áramát korlátozni egy ellenállással. Pl. 10KOhm sorba.
Habár, már előttem leírták a lényeget.......
Kicsit sánta ez a mikrovezérlő a 38 lábával! Lehagytál két tápellátással kapcsolatos lábat - gondolom be sincsenek kötve. Ez így hiba. Nem látom a tápfesz és a föld közé kötött kondenzátorokat sem.
Kérlek, vess egy pillantást a topik fejlécére!
(#) |
doup hozzászólása |
Nov 7, 2011 |
|
/ |
|
|
Valaki meg tudja nekem mondani hogy ez miért érvényzelen kifejezés?
data = I2C1_Rd(0);
Egyébként a data így van deklarálva
unsigned short data;
Nem sok esélyt adtál a válaszra...
Nézz utána a leírásban, hogy a jobboldalon álló függvén visszatérési értékének mi a típusa!
Már rájöttem azért köszi.
(#) |
doup hozzászólása |
Nov 7, 2011 |
|
/ |
|
|
Szeretnék egy digitális órát barkácsolni egy 18f4550 el és egy ds1307-el. A kódot bevágtam mert sajna a tömbjeim amibe kiolvasom a ds1307 adatait ÜRESEK így az lcd is az.
// LCD beállítása
sbit LCD_RS at LATD0_bit;
sbit LCD_EN at LATD1_bit;
sbit LCD_D4 at LATA2_bit;
sbit LCD_D5 at LATA3_bit;
sbit LCD_D6 at LATA4_bit;
sbit LCD_D7 at LATA5_bit;
sbit LCD_RS_Direction at TRISD0_bit;
sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D4_Direction at TRISA2_bit;
sbit LCD_D5_Direction at TRISA3_bit;
sbit LCD_D6_Direction at TRISA4_bit;
sbit LCD_D7_Direction at TRISA5_bit;
// LCD beállításának vége
unsigned short read_ ds1307(unsigned short address );
void write_ ds1307(unsigned short address, unsigned short w_data );
unsigned short sec;
unsigned short minute;
unsigned short hour;
unsigned short day;
unsigned short date;
unsigned short month;
unsigned short year;
unsigned short data1;
char time[9];
char ddate[11];
unsigned char BCD2UpperCh(unsigned char bcd);
unsigned char BCD2LowerCh(unsigned char bcd);
void InitMain() {
OSCCON = 0x71; //--- órajel beállítása 8Mhz-re
while ((OSCCON & 0x4)!=0x4); //--- várakozás az órajel stabilitásáig
delay_ms (500);
}
void main(){
InitMain();
ADCON1 |= 0x0F;
CMCON |= 7;
I2C1_Init (100000); //DS1307 100KHz
PORTB = 0;
TRISB = 0xFF; // Portb bemenetre állítom
Lcd_Init(); // Lcd inicializálása
Lcd_Cmd(_Lcd_CLEAR); // Képernyő törlése
Lcd_Cmd(_Lcd_CURSOR_OFF); // Cursor kikapcsolása
Lcd_Out(1, 1, "Ido:");
Lcd_Out(2, 1, "Datum:");
//Idő beállítása
while(1)
{
//--- Kiolvasás
sec=read_ ds1307(0); // másodperc
minute=read_ ds1307(1); // perc
month=read_ ds1307(5); // hónap
//--- Tömb feltöltése
time[0] = BCD2UpperCh(hour);
time[1] = BCD2LowerCh(hour);
time[2] = ':';
time[3] = BCD2UpperCh(minute);
time[4] = BCD2LowerCh(minute);
time[5] = ':';
time[6] = BCD2UpperCh(sec);
time[7] = BCD2LowerCh(sec);
time[8] = '\0';
ddate[0] = BCD2UpperCh(date);
ddate[1] = BCD2LowerCh(date);
ddate[2] ='/';
ddate[3] = BCD2UpperCh(month);
ddate[4] = BCD2LowerCh(month);
ddate[5] ='/';
ddate[6] = '2';
ddate[7] = '0';
ddate[8] = BCD2UpperCh(year);
ddate[9] = BCD2LowerCh(year);
ddate[10] = '\0';
//--- Lcd-re való kiíratás
Lcd_Out(1,5,time);
Lcd_Out(2,7,ddate);
Delay_ms(50);
}
}
//--- Olvas függvény
unsigned short read_ ds1307(unsigned short address )
{
I2C1_Start();
I2C1_Wr(0xd0);
I2C1_Wr(address);
I2C1_Repeated_Start();
I2C1_Wr(0xd1);
data1=I2C1_Rd(0);
I2C1_Stop();
return(data1);
}
//--- Karakter konvertálás
unsigned char BCD2UpperCh(unsigned char bcd)
{
return ((bcd >> 4) + '0');
}
unsigned char BCD2LowerCh(unsigned char bcd)
{
return ((bcd & 0x0F) + '0');
}
//--- Ír függvény
void write_ ds1307(unsigned short address, unsigned short w_data )
{
I2C1_Start();
I2C1_Wr(0xD0);
I2C1_Wr(address);
I2C1_Wr(w_data);
I2C1_Stop();
}
Valaki tudna segíteni hol rontottam el? Vagy bekötési baj van? A ds1307-es Vb lábát nem kötöttem be mert most elég tápról az életrekeltéshez illetve a az SQW lábát sem kötöttem be sehova.
(#) |
doup hozzászólása |
Nov 7, 2011 |
|
/ |
|
|
A ds1307 Vb lábát nem kötöttem be sehova gondolom ha tápról megy és mindig újra beállítom az időt akkor most nem kell illetve az SQW lábát sem kötöttem be sehova így megfelelő vagy sem?
Az SCL és SDA lábakat pedig 4,7 k ellenállással +5v-ra tettem.
A Vb lábra azt írja ha nem használod akkor GND-re kösd.
Sajna ettől még nem oldódott meg de rákötöttem köszönöm.
(#) |
doup hozzászólása |
Nov 7, 2011 |
|
/ |
|
|
A time tömbömben egy ilyen került a kiolvasás folyamán: =1:=1:=1. Érdekes.
Idézet: „Please note that the initial power-on state of all registers is not defined. Therefore, it is important
to enable the oscillator (CH bit = 0) during initial configuration.” Az elso bekapcsolaskor az oszcillator tiltva vagyon, tehat be kell rugni. A Vb labra kell egy kulso elem, es utana mar nincs gond ezzel.
Raktam rá de akkor is ezt a badarságot kapom.
(#) |
doup hozzászólása |
Nov 7, 2011 |
|
/ |
|
|
A 32 khz kvarchoz viszont nem raktam kondenzátort. Kell?
Illetve a 18f4550 adatlaőján úgy láttam hogy a RB0 illetve RB1 re kell kötni.
Nem erted Nem az elem a problema, hanem az elso bekapcsolas. Le van tiltva az oszcillator, tehat nem is indul el (adatlap 4. oldal). Be kell inditani az oszcit a 0. byte 7. bit nullazasaval. maskent nem fog elindulni.
Hali!
Én tennék a tranyó bázisával sorosan egy 4,7-10K ellenállást, nem igazán viseli el direktben a +12V-t.
Üdv.
És ezt hogy tudom megtenni mikroc-ben?
Ugyebar ott a programod ahol is inicializalod a DS-t. Te ugye elkezdted a sorral, ami az en olvasatomban 0b1000000 szamot jelenti binarisan. Abban a 7. bit mit mond? "1" . Tehat Te magad leallitottad az oszcit. Ezek utan nem is csoda hogy nem ketyeg az ora. Ezt a bitet kell "0" ertekkel inditani. Valahogy igy.
de a végén elindítom.
Egyébként átírtam ahogy te mondtad úgy is ugyan azt írja.
Két darab 12 pF-os kondenzátort még el kell helyezni a kvarc mellé. Egyébként az adatlapja is leírja.
Rendben kipróbálom de nézegettem nagyon sok ilyen jellegű bekötést szinte sehol nem láttam.
Nem kell semmilyen kondenzátor.
Igen, a kvarchoz nem kell kondenzátor! Kicsit nézd tovább azt az adatlapot...(Figure 3.)
Probalj mar meg olyat, hogy a Control regoszterben beallitod a SQWE bitet "1" szintre, majd a SQW/OUT labon megnezed van-e kimenet. Az RS0,RS1 "00" erteknel 1 Hz kimenetnek kellene lenni ha megy az oszci. Persze kell felhuzo ellenallas. Sot meg bonuszban lehet IT-re hasznalni ezt a kimenetet, es csak akkor fog a PIC a RTC-vel foglalkozni, ha letelt 1 sec.
Való igaz, ezt kielemezve már látom, hogy beépítetten tartalmazza a kondenzátorokat. Elnézést a figyelmetlenségért!
Látom, csak a keretet hagyták le, amiből egyből látszana, hogy mi van belül
Igen, de a szövegben egyértelműen le van írva, hogy beépítetten tartalmazza. Ez zavart meg a termék adatlapjában, hogy nem volt egyértelműen leírva. A rajzokon én is láttam, hogy nem szerepel, elég furcsának is tűnt.
|
|