collapse

* Links de Robótica

* Posts Recentes

Ideias para construir um quadrúpede simples por Njay
[Hoje às 03:04]


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]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]


Power_OK Enermax por edeweld
[12 de Novembro de 2017, 17:15]


Driver motor por beirao
[11 de Novembro de 2017, 17:40]


Preciso de uma fonte de corrente constante ? por samc
[09 de Novembro de 2017, 14:18]


Pressoestato 0-10V por artur36
[07 de Novembro de 2017, 23:22]

Autor Tópico: [AJUDA] LCD NOKIA 3310 + STM32 Discovery  (Lida 2740 vezes)

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

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
[AJUDA] LCD NOKIA 3310 + STM32 Discovery
« 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:




Uploaded with ImageShack.us

e não escreve mais nada no ecrã.

para quem quiser os ficheiros estão  AQUI

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

abrir com o Keil

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #1 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....

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.400
  • Helpdesk do sitio
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #2 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.
« Última modificação: 12 de Outubro de 2011, 19:45 por senso »
Avr fanboy

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #3 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.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.400
  • Helpdesk do sitio
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #4 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?
Avr fanboy

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #5 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.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #6 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.


Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.727
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #7 em: 22 de Fevereiro de 2013, 16:33 »
Qual é a board que usas mesmo?

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: [AJUDA] LCD NOKIA 3310 + STM32 Discovery
« Responder #8 em: 22 de Fevereiro de 2013, 18:30 »
foi testado na F4 e na F1 funcionou tudo bem, mesmo acima dos 4MHz.