Vyčtení paměti EEPROM

Odpovědět
mourison
Příspěvky: 18
Registrován: 07 led 2019, 21:15
Reputation: 0

Vyčtení paměti EEPROM

Příspěvek od mourison » 11 úno 2021, 18:42

Zdravím,
při vyčítání paměti mi to vypíše pouze samé FF, ale v paměti jsou na 100% data.
Netuší někdo co dělám špatně ? Už si nad tím lámu hlavu dlouho :D

Tady je kód pro vyčtení paměti. EEPROM vyčítám pomocí adaptéru, tudíž nepájím. A pokud adapér nazpojím na paměť místo FF mi to hodí samé 000.

Kód: Vybrat vše

#include <SPI.h>
#define csPIN 10
#define VELIKOST 512

#define cti  3

int8_t intValueOfHexaKey(char c)
{
  if ((c >= '0') && (c <= '9')) return c - '0';
  if ((c >= 'A') && (c <= 'F')) return c - 'A' + 10;
  return -1; 
}

uint8_t readByteAt(uint8_t cs,uint16_t adr){

SPI.beginTransaction(SPISettings(4000000,MSBFIRST,SPI_MODE0));
digitalWrite(cs,LOW);
uint8_t b=highByte(adr);
b = b <<3;  //move address bit 8 to bit 11
b = b | cti;  // read command
SPI.transfer(b); // send cmd + address bit 8
SPI.transfer(lowByte(adr)); // low byte of address
b= SPI.transfer(0); // read the actual byte
digitalWrite(cs,HIGH); 
SPI.endTransaction();
return b;
}

void setup() {
 
Serial.begin(9600);
digitalWrite(csPIN,HIGH);
pinMode(csPIN,OUTPUT);
SPI.begin();
Serial.print("napiš 1 pro vyčení dat");  
}

void loop() {
  if(Serial.available() > 0)
  {
   char letter = Serial.read(); 
   if(letter == '1')
    {
    char ch[30];
    for (uint16_t i=0;i<VELIKOST;i++){       
    sprintf(ch,"%02X",readByteAt(csPIN,i));  
    Serial.print(ch);  
    }
    }
  }
}
Přílohy
950040 datasheet.pdf
datasheet
(817.61 KiB) Staženo 152 x
Takto mám zapojeno
Takto mám zapojeno

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Vyčtení paměti EEPROM

Příspěvek od AstroMiK » 11 úno 2021, 20:03

Nemáš prohozené MISO - MOSI?

Podle kat.listu je noha č. 2 (Q) - Serial Data Output - to znamená Master-In-Slave-Out (MISO)
a noha č.5 (D) je Serial Data Input - to znamená Master-Out-Slave-In (MOSI).

Podle toho nákresu mi to připadá, že to máš obráceně.

mourison
Příspěvky: 18
Registrován: 07 led 2019, 21:15
Reputation: 0

Re: Vyčtení paměti EEPROM

Příspěvek od mourison » 11 úno 2021, 20:17

No po té době co na to koukám jsem takovou hloupost přehlédl :D
Moc děkuji, máš skvělý postřeh.
Když mi prozradíš jak přidat reputaci tak ji tam máš :D

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Vyčtení paměti EEPROM

Příspěvek od AstroMiK » 11 úno 2021, 20:27

... reputace tady může zvyšovat jen administrátor.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů