Fórum témák

» Több friss téma
Fórum » 8051 kommunikáció
 
Témaindító: adam1234, idő: Nov 17, 2010
Témakörök:
Lapozás: OK   1 / 1
(#) adam1234 hozzászólása Nov 17, 2010 /
 
Hello

Szeretnék két 8051es chip között kommunikálni.
Az egyik egy at89s8253 (40 lábú) a másik pedig egy at89s4051 (20 lábú).
A kommunikáció oka az hogy a 40 lábú MCU-t mikroCben fejlesztem és nem támogatja azt hogy több OneWire kommunikációt használjak, csak egy darabot, továbbá szükségem van a 20lábú időzítőire is.
Szoftveres I2C kommunikációval próbálkoztam de nem nagyon értek hozzá

  1. sbit Soft_I2C_Scl at P1_1_bit;
  2. sbit Soft_I2C_Sda at P1_0_bit;
  3.  
  4. Soft_I2C_Init();
  5. int i;
  6. unsigned short data_;
  7. char error=0;
  8. unsigned short take;
  9.  
  10. void main(){
  11. Soft_I2C_Init();
  12. Soft_I2C_Start();
  13.   P2 = 0;                                 // P2 is used for error signalization : No error
  14.   Delay_ms(100);
  15.  
  16.  
  17.  /* for (i = 'z'; i >= 'A'; i--) {          // Send bytes from 'z' downto 'A'
  18.      error = Soft_I2C_Write(data_);
  19.     Delay_ms(100);
  20.   }*/ez csak a küldő chipben van benne
  21.  
  22.     if (error > 0) {
  23.     P2 = error;                           // Signalize Init error
  24.     Delay_ms(1000);
  25.   }
  26.  
  27.  /* while(1) {
  28.     take = Soft_I2C_Read(0);
  29.       kiírattam lcd kijelzőre de semmi sem jelent meg
  30.     }*/ ez pedig a fogadóban
  31. }


valaki tudna esetleg segíteni?
(#) staci123 válasza adam1234 hozzászólására (») Nov 17, 2010 /
 
Szia,
egy panelon van - lessz - mind a kettő?
A külső I2C EEPROMot tudod kezelni?
(#) watt válasza adam1234 hozzászólására (») Nov 17, 2010 /
 
Az I2C lassú(főleg, ha már mást is kezel), az SPI +1 vezeték, de sokkal gyorsabb és könnyebben kezelhető. Persze nem említetted milyen sebességgel kéne kommunikálnod(távolságot sem, és jó pár más dolgot sem). Igazából igazi kérdést nem is tettél fel...
(#) staci123 hozzászólása Nov 17, 2010 /
 
Ha már a kérdésnél tartunk...
BASCOM 8051demom van,írtam egy progit szervo vezérlésre,a szimulátorban tökéletessen működik.Ezt onnét tudom hogy a szimulációt le lehet lassítani,akkor a megfelelő kimenetet szimbolizáló piros pont kb. 18.5:1.5 arányban sötét:világos.(van benne két rövid asembler szubrutin)Viszont a szkópon azt mutatja hogy :
szünet+jel-komplementál
szünet+jel-komplementál
szünet+jel-komplementál
Így 50% kitöltésű jelet kapok...
Lehetséges hogy a fordítóm nem jó? Segitséget kérek...
(#) Hp41C válasza adam1234 hozzászólására (») Nov 18, 2010 /
 
Szia!

Az I2C kommunikáció nem ennyire egyszerű... A I2C master oldali szoftveres (blocking - várakozós) rutinjaira van megoldás a mikro C for 8051 csomagban. Leírása és mintapélda a Usersás manual 311. oldalától. Az I2C slave oldali rutinjaira itt nem találtam megoldást.

Amennyiben a várakozós megoldás nem lenne megfelelő (az átvitel sok-sok us ideje alatt a program nem tud mást csinálni), valamilyen megszakításos megoldás lehetne alkalmazni. Az SPI illesztő tanulmányozását ajánlom az AT89S8253 leírásában.
(#) adam1234 hozzászólása Nov 19, 2010 /
 
Hello

Hát most per pillanat még külön panelon vannak de ha kész lesz egyre pakolom őket.

I2C tudom hogy nem ennyire egyszerű de nem nagyon találtam rá példát, és az is gondot okozhat hogy a végső változatban a 40 lábúnak két 20 lábúval kéne kommunikálnia, és ilyen funkcióknál vagy nincs is lehetőség több használatára vagy szoftveresen nincs benne. Pl mikroCben (for 8051) nem lehet több OW-t használni, mert definiálom az sbitet a program deklarációs részében és utána már az OW_read write stb függvények már erre a definiált sbitre nézik pl ha P3_2_bitre van definiálva és ezt már a program közbenső részén nem lehet változtatgatni.

Az SPI-t kipróbálom akkor. Igazából tényleg nem tettem fel kérdést , nekem ez még ismeretlen terület és a tanácsaitokat kérem.
(#) staci123 válasza adam1234 hozzászólására (») Nov 19, 2010 /
 
Szia,
A mikroChez (sem) értek,de lehetséges megoldás volna ha mindkét mikrovezérlő ugyanazt az I2C memoriát használná,és az mellett 1-1 ponton prioritás összeköttetésben volnának: amelyik elkezd a memórival komunikálni,lehúzza logikai 0ra a prioritásvonalat jelezve a másiknak hogy foglalt... A memóriát közös póstaládának használják Ez a megoldás akkor is jó ha a mikrovezérlők külön vagy nemösszeillő frekin működnek...
(#) adam1234 hozzászólása Nov 21, 2010 /
 
Köszi a válaszokat, most próbálkozok
Majd írok hogy mire jutottam
(#) stein81 hozzászólása Jan 25, 2011 /
 
Sziasztok!

Lehet, nem ide tartozik, de nem tudok még új témát nyitni.
Van egy úgymond "kötelező feladatom", 8051-es mikrokontrollerből kellene építenem egy áramkört.

A nekikezdéssel vannak bajok.
-Milyen kontrollert vegyek (olyan kéne amivel a legtöbb dolgot meg tudok csinálni a legegyszerűbben) (pl meglegyen mind a 4 portja külön, stb...)
-Milyen kütyüt vegyek, amivel tudom programozni, meg ehhez milyen programot használjak? Vagy rendeljek valamilyen próbapanelt?

Várok javaslatokat, hogy hogyan, mikkel érdemes elkezdeni.

Üdv. Zoli.
(#) stein81 hozzászólása Feb 14, 2011 /
 
Sziasztok!

Van egy úgymond "kötelező feladatom", 8051-es mikrokontrollerből kellene építenem egy áramkört.

A nekikezdéssel vannak bajok.
-Milyen kontrollert vegyek (olyan kéne amivel a legtöbb dolgot meg tudok csinálni a legegyszerűbben) (pl meglegyen mind a 4 portja külön, stb...) (Amire én gondoltam: AT89C51-24PI - nem tudom, jó választás-e? Adatlap: http://www.alldatasheet.com/datasheet-pdf/pdf/56222/ATMEL/AT89C51-24PI.html )
-Milyen kütyüt vegyek, amivel tudom programozni, meg ehhez milyen programot használjak? Vagy rendeljek valamilyen próbapanelt?

Várok javaslatokat, hogy hogyan, mikkel érdemes elkezdeni.

Üdv. Zoli.
(#) Sipy válasza stein81 hozzászólására (») Feb 15, 2011 /
 
Szia! En a maxim altal gyartott 8051 alapu mikrovezerloket hasznalom. Ezeket ingyen elkuldi a maxim, meg postat sem kell fizetni. A programozo hardvert csak szamitogeprol tudom majd csatolni,mert most telorol irok. programozasra az mcs programot hasznalombasicben.
(#) tottibence hozzászólása Okt 14, 2015 /
 
Hello mindenki!

Segítségeteket szeretném kérni a következő kérdésben: Egy optokaput építek melynek az lenne a feladata, hogy ha eltakarod akkor valamiféle hangjelzést ad (sípol). Intel 8051-re kellene assembly-ben megírni a kódot. Analóg jelet vizsgálnék vele, semmi extra. Valaki tudna ebben segíteni? Milyen oldalakon lehetne utána nézni ennek, vagy valakinek van valami hasonló programja?

üdv. B
Következő: »»   1 / 1
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