collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: EPROM 24AA1026  (Lida 3771 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
EPROM 24AA1026
« em: 14 de Abril de 2013, 19:18 »
Boas,
estou a precisar de uma pequena ajuda com uma EPROM (https://www.google.pt/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CC8QFjAA&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F22270A.pdf&ei=wfFqUY-wNouw7AaJzoHoAw&usg=AFQjCNHxXOz6lvl1cGkIIBSoxSUxAF3lfg&sig2=VNETk4cwvx_uUo4LZkPbiQ)

ela tem um endereço de 8bits mas o arduino só envia 7, por isso do 0xA0 passo para 0x50
estive a ensaiar este código:

Código: [Seleccione]
#include <Wire.h>

#define endssREAD 0x51//B01010001//0xA1
#define endssWRITE 0x50//B01010000//0xA0
void setup()
{
  Wire.begin();
               // join i2c bus with address #4
  //Wire.onReceive(receiveEvent); // register event
  Serial.begin(9600);           // start serial for output
}

void loop()
{
  int enviar = 0;

  Wire.beginTransmission(endssWRITE);
  Wire.write(0x00);
  Wire.write(1);
  enviar = 0;
 
   for(int x=0; x<120; x++){
    enviar = enviar + 1;
    Wire.write(enviar);
   
    Serial.print(enviar);
  }
 
  Wire.endTransmission();
  Serial.print("enviados ");
  Serial.print(enviar);
  Serial.println(" ");
      delay(100);

   Wire.beginTransmission(endssREAD);
   int bearing = Wire.read();
    Wire.endTransmission();
   Serial.print(bearing);

   delay(100);

Serial.println();
 
}

mas recebo sempre "-1" de certeza que é por não estar a ler.

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: EPROM 24AA1026
« Responder #1 em: 14 de Abril de 2013, 19:53 »
esta no datasheet que o endereço é de 7bits 1 0 1 0 A2 A1 B0  e depois tens de dizer se é para fazer uma leitura ou escrita

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: EPROM 24AA1026
« Responder #2 em: 14 de Abril de 2013, 20:11 »
sim, os endereços já incluem isso, também já corri um código para saber os endereços disponíveis e dá-me o 0x50 e 0x51

isto implica que o A1 e o A2 estão a 0 e para efeitos de teste quero ler/escrever no banco 0

EDIT:

o datasheet tem o endereço de 8bits

1 0 1 0        A2 A1 B0 + (R/W) = 8bits
« Última modificação: 14 de Abril de 2013, 20:15 por filipe89 »

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: EPROM 24AA1026
« Responder #3 em: 14 de Abril de 2013, 21:03 »
sim, os endereços já incluem isso, também já corri um código para saber os endereços disponíveis e dá-me o 0x50 e 0x51

isto implica que o A1 e o A2 estão a 0 e para efeitos de teste quero ler/escrever no banco 0

EDIT:

o datasheet tem o endereço de 8bits

1 0 1 0        A2 A1 B0 + (R/W) = 8bits

nao tenho experiencia em trabalhar com i2c na plataforma arduino,
e algo importante é saber se és tu que vais incluir o R/W ou é acrescentado pela funçao write()

nao sou a melhor pessoal para te tentar ajudar

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: EPROM 24AA1026
« Responder #4 em: 14 de Abril de 2013, 21:18 »
Está tudo na documentação do IDE, não custa nada ler.
Avr fanboy

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: EPROM 24AA1026
« Responder #5 em: 14 de Abril de 2013, 21:22 »
pois, não sei exactamente como funciona os bits enviados, mas na leitura dos endereços havia de ter tido 4 respostas, os 2 bancos e os 2 modos.

Mas no final de cada instrução wire acho que tenho o ACK, logo não posso meter a instrução R\W no wire.write()

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: EPROM 24AA1026
« Responder #6 em: 14 de Abril de 2013, 21:37 »
Está tudo na documentação do IDE, não custa nada ler.

mas o problema é que não sei como adaptar aos comandos do arduino

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: EPROM 24AA1026
« Responder #7 em: 14 de Abril de 2013, 23:21 »
Está tudo na documentação do IDE, não custa nada ler.

mas o problema é que não sei como adaptar aos comandos do arduino

nesse caso podes ir ver outros exemplos na net, de como utilizaram
e ver a descriçao das funcoes no site