Fórum témák

» Több friss téma
Fórum » PIC EEPROM írás nem megy
 
Témaindító: ldani, idő: Jan 13, 2009
Lapozás: OK   4 / 4
(#) andriopulos válasza watt hozzászólására (») Júl 5, 2011 /
 
Köszi szépen! Ki fogom próbálni.
(#) Honda130 hozzászólása Aug 10, 2011 /
 
Sziasztok!
Újjabb kérdésem vetődött fel ma éjjel, ami kivételesen nem az autóerősítőkről szól, hanem az autóm vezérlő egységéről. Rákészültem rendesen, ahogy kell az eprom írogatására és programozgatására. Működik is a dolog, mert általam megírt programmal autózok pár hónapja. Közben az ember kitapasztalja, hogy tényleg kitörlődik az eprom tartalma egy idő után, ha nem takarjuk le, stb. Egyszer olvastam valahol, hogy két programot is fel lehet egy epromra tenni és az akár kapcsolható is lehet. Ezt hívják a nálam nagyobbak kapcsolható chip-nek. Most ugye 27C256-os eprommal megy a Hondám. Ezt irom és cserélgeretm, ahogy kell. De mondták,hogy 512-essel megcsinálhatom hogy az egyik felébe teszek egy gyári programot, a máskiba meg egy tuning programot. Valamelyik lábhoz tenni kell egy ellenállást meg kapcsolót és máris kapcsolhatom a két programot váltakozva. Nem tudja valaki közületek, hogy hogy van ez pontosan?
Válaszotokat tisztelettel megköszönöm!
(#) trudnai válasza Honda130 hozzászólására (») Aug 10, 2011 /
 
Ez off topik itt, de regen ezt ugy csinaltuk, hogy a DIP tokos epromokat egymas tetejere forrasztottuk es a tap vagy a chip enable labat kihajtottuk es amelyik tapot kapott az volt az aktualis (ezt pedig ugye kapcsoloval valasztottuk ki).

Amit mondasz szerintem a cimzesbe szolhat valahogy bele gondolom hasonlo elgondolasok alapjan mint a fentebb leirt tap lap kapcsolatos. Tehat ott a cimzo labak kozul a leg szignifikansabb labat 0 vagy 1 szintre huzzak egy kapcsolo segitsegevel. Ahogy nezem az adatlapot neked az A14-es labat (tehat a 27-es labat) kellene kapcsolgatnod, de, hogy mekkora ellenallassal kellene felhuznod (vagy lehuznod) azt most igy hirtelen nem tudom.
(#) jdani hozzászólása Okt 23, 2014 /
 
Hali. Van egy 24LC256 EEPROM, meg egy Pickit2
Így kötöttem össze:
Connections for 24LC devices
---------------------------------------
PICkit 2 Pin 24LC Device Pin (DIP)
(2) Vdd ! 8 Vcc
(3) GND 4 Vss
(5) PGC 6 SCL (driven as push-pull)
(6) AUX 5 SDA (requires pullup)

De a PICkit programozó nem ismeri fel, nem tudom programozni, miért?
(#) Hp41C válasza jdani hozzászólására (») Okt 23, 2014 /
 
Idézet:
„AUX 5 SDA (requires pullup)”

2k7 felhúzóellenállás a Vdd re. Nem tudja felismerni, mivel nincs bennük típusazonosító. Manual device select, Device family / EEProms / 24LC / 24LC256
(#) mate1988 hozzászólása Szept 27, 2015 /
 
Sziasztok!

Diplomamunkámmal a célegyenesben elakadtam és sehogy nem sikerül tovább lépnem. A segítségeteket szeretném kérni.

Pic24HJ128GP502-t programozok. Adott egy integer változó, aminek az értékét szeretném eltárolni a memóriában. A progaramom lefordul, fut is a mikrokontrolleren, csak a memóriából kiolvasott érték nem az, amit szeretnék, hanem csupa 1-es.

Ez a forráskódom:

  1. int main( void )
  2. {
  3.  
  4.    
  5.     vInitApp(); // Hardware initialization
  6.  
  7.     /* Infinite loop */
  8.     while(1)
  9.     {
  10.         // Read the state of the button
  11.         if( mGetButtonState() )
  12.         {
  13.             /*********************************************/
  14.             asm("MOV #tblpage(0x005800), W0");
  15.             asm("MOV W0, TBLPAG"); //; Load TBLPAG with upper address            
  16.             asm("MOV #tbloffset(0x005800), W1"); //; Load W1 with lower address word
  17.            
  18.             //; Load write data into W2 registers
  19.             asm("MOV #0x44, W2");
  20.            
  21.             //; Perform the TBLWT instructions to load the write latches
  22.             asm("TBLWTL W2, [W1] ");
  23.            
  24.             /*********************************************/
  25.             asm("MOV #tblpage(0x005800), W0");
  26.            
  27.             asm("MOV W0, TBLPAG"); //; Load TBLPAG with upper address
  28.             asm("MOV #tbloffset(0x005800), W0"); //; Load W1 with lower address word
  29.                 //; Load write data into Wn registers
  30.             asm("TBLRDL [W0], W2");
  31.             asm("MOV W2, %0 ":"=r"(ret));
  32.                 //; Perform the TBLWT instructions to load the write latches
  33.             //asm("MOV W2, %0 ":"=r"(ret));
  34.             /**********************************************/
  35.            
  36.             mWriteLEDs(ret);
  37.         }
  38.         else mWriteLEDs(0x01);
  39.     }
  40. }


A kódot Microstick panelon tudom tesztelni és 4 db led jelzi nekem a 4 alsó bit értékét.

Segítséget, észrevételeket köszönök
(#) vargaf válasza Honda130 hozzászólására (») Szept 27, 2015 /
 
Szia!
A 27C512 A14 lábának magas vagy alacsony szintre kapcsolásával válthatsz a memória első 256K vagy második 256K tartománya között. Nem kell felhúzóellenállás.
Üdv.: Feri
(#) AZoli válasza mate1988 hozzászólására (») Szept 27, 2015 / 1
 
Először törölni kell az egész page-et, aztán írni, közben NVMKEY regisztert a szekvenciának megfelelően állítgatni.
Így
10. oldal környéke, de az egészet érdemes átfutni. Vannak benne asm példák is.
(#) mate1988 válasza AZoli hozzászólására (») Szept 27, 2015 /
 
Sikerült Az nvmkey és az nvmcon beállítása szükséges volt, viszont a paget nem kellett törölni. Köszi a segítséget!
(#) AZoli válasza mate1988 hozzászólására (») Szept 28, 2015 /
 
Idézet:
„... a paget nem kellett törölni.”

Ez biztos? Működik egymás után többször is a mentés - visszaolvasás különböző számokkal?
Mert szerintem a flash csak 1-ről 0-ra írható, fordítva nem, a törlés azért kell, hogy az egészet 1 -ra állítsd írás előtt. De majd a nagyok megmondják, ha mégsem.
Következő: »»   4 / 4
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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