Autor Tema: No recibo dato del RTC - SPI  (Leído 1053 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ituarte

  • PIC12
  • **
  • Mensajes: 69
No recibo dato del RTC - SPI
« en: 17 de Mayo de 2012, 13:16:45 »
Hola estoy haciendo pruebas para ver si me funciona un RTC conectado al microcontrolador por SPI. El CE funciona, la señal del clk la recive bien, envio el dato perfecto, pero no me lo devuelve...me devuelve siempre un 0. llevo muchos dias estancado y no consigo hacer progresos. Alguien me puede ayudar??

Datos:
Micro: STM8S207R8
RTC: DS1305

COdigo:

Código: [Seleccionar]
/****************SPI ********************/
 CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
 CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
  
  SPI_DeInit();
 SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_32, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 0x07);
 SPI_Cmd(ENABLE);do
{

  TempData = 1;

GPIO_WriteHigh(GPIOC, GPIO_PIN_2);
 for(i=0;i<10;i++);
while(SPI_GetFlagStatus(SPI_FLAG_TXE) == RESET);
SPI_SendData(0x0F);
for(i=0;i<10;i++);
while(SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET);
TempData = SPI_ReceiveData();
GPIO_WriteLow(GPIOC, GPIO_PIN_2);
  LCD_CLEAR_DISPLAY();
LCD_HOME();
LCD_printf("%d\n",((TempData)));

Delay(100);

  }

Alguna idea de proque siempre recivo un 0???

PD he comprobado con el osciloscopio una por una las patillas del DS1305 y CE CLK y SDI funcionan OK, pero en SDO tengo siempre 0 (no es problema del DS1037) porque he probado con varios
« Última modificación: 17 de Mayo de 2012, 13:22:08 por ituarte »


 

anything