collapse

* Links de Robótica

* Posts Recentes

Feira de electricidade e eletrónica por artur36
[Ontem às 23:07]


Power_OK Enermax por almamater
[Ontem às 12:10]


Recomendação de um opamp para um DAC r2r por jm_araujo
[23 de Novembro de 2017, 10:48]


RN42 e TP-Link MR3020 por doiga
[22 de Novembro de 2017, 19:22]


Ajuda Projecto IR / RF por senso
[22 de Novembro de 2017, 13:15]


Ideias para construir um quadrúpede simples por dropes
[21 de Novembro de 2017, 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]

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

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

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 163
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: 327
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: 163
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: 327
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.402
  • 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: 163
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: 163
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: 327
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