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.
(#) Hp41C válasza mate1988 hozzászólására (») Márc 10, 2022 /
 
Idézet az adatlapból:
Idézet:
„Programmers can program one row of program Flash memory at a time.To do this, it is necessary to erase the 8-row erase page that contains the desired row.

A programozási leírásból:
Idézet:
„2.2 Program Memory Write/Erase Requirements
The program Flash memory on the dsPIC33F/PIC24H has a specific write/erase requirement that must be adhered to, for proper device operation. The rule is that any given word in memory must not be written without first erasing the page in which it is located. Thus, the easiest way to conform to this rule is to write all the data in a programming block within one write cycle. The programming methods specified in this document comply with this requirement.
Note: A program memory word can beprogrammed twice before an erase, but only if (a) the same data is used in bothprogram operations or (b) bits containing ‘1’ are set to ‘0’ but no ‘0’ is set to ‘1’.”
(#) sdrlab válasza Hp41C hozzászólására (») Márc 11, 2022 /
 
Gondolod, 7 év után ez még aktuális?
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