Read/write data to DS1642

47 views Asked by At

I'm attempting to read/write data from/to a DS1642.

I have connected the memory to an STM32. After reading the year, I believe I'm getting the correct value: 00000001. However, when I try to write a different value, it doesn't work.

Here is my code:

  HAL_GPIO_WritePin(A0_GPIO_Port, A0_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A1_GPIO_Port, A1_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A2_GPIO_Port, A2_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A3_GPIO_Port, A3_Pin, GPIO_PIN_SET); //F

  HAL_GPIO_WritePin(A4_GPIO_Port, A4_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A5_GPIO_Port, A5_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A6_GPIO_Port, A6_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A7_GPIO_Port, A7_Pin, GPIO_PIN_SET); //F

  HAL_GPIO_WritePin(A8_GPIO_Port, A8_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A9_GPIO_Port, A9_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(A10_GPIO_Port, A10_Pin, GPIO_PIN_SET); //7

  HAL_GPIO_WritePin(CE_GPIO_Port, CE_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(OE_GPIO_Port, OE_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(WE_GPIO_Port, WE_Pin, GPIO_PIN_SET);

  HAL_GPIO_WritePin(DQ0_GPIO_Port,DQ0_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(DQ1_GPIO_Port,DQ1_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(DQ2_GPIO_Port,DQ2_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(DQ3_GPIO_Port,DQ3_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(DQ4_GPIO_Port,DQ4_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(DQ5_GPIO_Port,DQ5_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(DQ6_GPIO_Port,DQ6_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(DQ7_GPIO_Port,DQ7_Pin, GPIO_PIN_RESET);

  HAL_Delay(1);

  HAL_GPIO_WritePin(CE_GPIO_Port, CE_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(OE_GPIO_Port, OE_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(WE_GPIO_Port, WE_Pin, GPIO_PIN_RESET);

What I'm doing wrong?

I've tried different delays between saving data and changing the state of CE and WE, but nothing happens.

0

There are 0 answers