LusoRobótica - Robótica em Português

Sistemas específicos => ARM => Tópico iniciado por: ivitro em 08 de Outubro de 2011, 02:53

Título: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: ivitro em 08 de Outubro de 2011, 02:53
Estou a tentar meter a dar o lcd do 3310 a dar no stm discovery, mas sem sucesso.


depois das inicializações aparece isto:


(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg854.imageshack.us%2Fimg854%2F4553%2Fimag0070is.jpg&hash=ab52d1ee4c41acc5c5d958f7a190233a5382d90e) (http://imageshack.us/photo/my-images/854/imag0070is.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

e não escreve mais nada no ecrã.

para quem quiser os ficheiros estão  AQUI (http://www.easy-share.com/117919A86D2B4ACF946E719471266AAE/LCD.rar)

descompactar para...\STM32 Discovery\stm32vldiscovery_package\Project\Examples

abrir com o Keil
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: ivitro em 12 de Outubro de 2011, 19:36
Então ninguém faz ideia do que possa ser?

isto acontece quando no fim das inicializações o lcd fica todo preto e depois quando envio a instrução para o modo normal ele fica assim quando recebe o ultimo bit.

já troquei de lcd e continua na mesma. Começo a pensar em virar-me para o LPC....
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: senso em 12 de Outubro de 2011, 19:39
Isso será erro de programação com certeza.
Aposto que será falta de respeito nos tempos do protocolo de comunicação, estás a usar delays?
Normalmente nos exemplos que tens para os arm's os delays são feitos com simples loops usando for's ou whiles e se ligas a optimização do código esses mesmos delays são removidos do código e deixas de ter delays.
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: ivitro em 12 de Outubro de 2011, 22:53
Senso, ao inicio também pensei ser isso mas depois estive a medir e são 100ms de delay, também meti o arm a trabalhar a 1Mhz por via das duvidas e nada.


Estava a fazer comunicação SPI, e agora emulei em software e engraçado que o resultado é o mesmo.
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: senso em 13 de Outubro de 2011, 02:15
Ia para perguntar se não ser do facto de o SPI dos arms tanto funcionar a 8 bits como a 16, e podia ser disso, o código é mesmo igual?
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: ivitro em 13 de Outubro de 2011, 12:58
Sim funciona tanto a 8 como 16.

Código: [Seleccione]
/* SPI1 configuration */
  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; // podes mudar aqui por 16b
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_Init(SPI1, &SPI_InitStructure);
  /* Enable SPI1  */
  SPI_Cmd(SPI1, ENABLE);

para receber primeiramente utilizei esta função:

  ///// SEND SPI /////
  // Loop while DR register in not emplty
  while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);

  // Send byte through the SPI1 peripheral
  SPI_I2S_SendData(SPI1, data);

  // Wait to receive a byte
  while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
  ///// SEND SPI END /////


depois já utilizei esta:

for (bitcnt=8; bitcnt>0; bitcnt--)
{
SCK_OFF();
if ((bits_in&0x80)==0x80) {SDI_ON();}        
else {SDI_OFF();}
SCK_ON();
bits_in=bits_in<<1;    
}

O resultado foi o mesmo.

Hoje devo experimentar com o LPC a ver se acontece igual.
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: ivitro em 19 de Outubro de 2011, 16:13
Finalmente consegui resolver o problema, era a tensão de alimentação vs tensão dos dados era diferente.

LCD 3310 + STM32 Discovery (http://www.youtube.com/watch?v=NdKdPkbJAS4#)
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: metRo_ em 22 de Fevereiro de 2013, 16:33
Qual é a board que usas mesmo?
Título: Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
Enviado por: ivitro em 22 de Fevereiro de 2013, 18:30
foi testado na F4 e na F1 funcionou tudo bem, mesmo acima dos 4MHz.