Autor Tema: STM32 SPI  (Leído 13146 veces)

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

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: STM32 SPI
« Respuesta #15 en: 02 de Junio de 2013, 16:16:13 »
Planeta9999 habia pensado comprarme este http://www.satkit.com/b2c/index.php?page=pp_producto.php&md=0&ref=5125, ¿como lo veis? mirare lo del analizador logico a ver que me interesa más, creo que con el osciloscopio tendre más opciones de medida..


Hace años tuve un osciloscopio HP de 2x100Mhz, digital aunque con pantalla CRT, y lo terminé vendiendo, porque no lo usaba para nada.
Para trastear con microcontroladores, y en general todo lo digital, mucho más útil un Analizador Lógico.
Yo tengo un Hantek LA5034 de 34 canales y 500 Msa/s.    http://www.hantek.com/english/produce_list.asp?unid=44

Por ejemplo, con un analizador lógico, podrías ver perfectamente en tiempo real el cronograma de señales MISO, MOSI, SCLK, CS del SPI, con un osciloscopio no. También se pueden capturar y guardar los trenes de impulsos, para verlos congelados o paso a paso.







« Última modificación: 02 de Junio de 2013, 16:23:30 por planeta9999 »

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: STM32 SPI
« Respuesta #16 en: 02 de Junio de 2013, 17:24:57 »
Planet9999 me he pedido uno parecido de Digilent. No es que sea barato, pero espero que me vaya bien para mis proyectos. Es de 100 MSPS solo.




Link Analizador logico Digilent

Creo que me llegara en un par de días, veremos a ver si es el SPI  :D
BitPIC

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: STM32 SPI
« Respuesta #17 en: 02 de Junio de 2013, 17:40:07 »
Planet9999 me he pedido uno parecido de Digilent. No es que sea barato, pero espero que me vaya bien para mis proyectos. Es de 100 MSPS solo.
Link Analizador logico Digilent

Creo que me llegara en un par de días, veremos a ver si es el SPI  :D


¿ Que te ha costado ?
Lo bueno de los Hantek, es que son muy baratos y se los puedes pedir directamente a los chinos por Ebay, el LA5034 lo tienes por unos 170 dólares.




Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: STM32 SPI
« Respuesta #18 en: 02 de Junio de 2013, 21:02:03 »
Yo me pille uno por 20€, al principio mire estos que estais poniendo, pero para el uso que le iba a dar me venia perfecto y por 20€ fue una ganga

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: STM32 SPI
« Respuesta #19 en: 03 de Junio de 2013, 02:40:39 »
Pues viendo el precio del tuyo me ha salido cara  :D Eso me pasa por impaciente.

Me ha costado 162€. Vi que podías usarlo de analizador lógico, osciloscoipo (aunque con poco ancho de banda) y como generador de señales y ni me lo pensé....

Bueno, ahora ya esta hecho, espero que al menos le saque partido.
BitPIC

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: STM32 SPI
« Respuesta #20 en: 09 de Junio de 2013, 05:19:08 »
Hola,

Ya me ha llegado el analizador y he podido hacer algunas pruebas y sacar algunas conclusiones:

Necesito enviar 24 bits por el SPI, para ello yo hago esto:

Código: [Seleccionar]
void SPI_Send(char data1, char data2, char data3){

NSS_LOW;         /* CS nivel low para activar SPI */
SPI_I2S_SendData(SPI1,data1);
SPI_I2S_SendData(SPI1,data2);
SPI_I2S_SendData(SPI1,data3);
NSS_HIGH;         /* CS nivel high para activar SPI */

}

Tengo el SPI configurado para enviar datos de 8 bits, por lo que el código SPI_Send me debería enviar los 24 bits, pero veo que solo me envía 16 bits.
Otra cosa curiosa es que el pin CS lo pongo a 0 antes de enviar y a 1 cuando se han enviado los 3 datos (24 bits) pero veo que se pone a 0 antes de comenzar a enviar y se pone a 1 en el 6º bit...

Me parece curioso todo esto, alguien tiene alguna idea de que hago mal....

Os dejo unas imágenes con el SPI configurado a 8 bits y a 16 bits ( 0 clock - 1 dato - 2 CS )


BitPIC

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: STM32 SPI
« Respuesta #21 en: 09 de Junio de 2013, 11:25:42 »
Lo del CS ocurre porque debes esperar a que se envien los datos, seguramente este spi traera un buffer tipo fifo donde puedes meter X datos en cola y se van enviando consecutivamente para ello tendrias que buscar que registro indica el final del envio de todos los datos seria algo asi:

CS_L
spi_send
spi_send
while(x);
CS_H

siendo X la funcion/registro que determina cuando se han enviado los datos

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: STM32 SPI
« Respuesta #22 en: 09 de Junio de 2013, 13:22:06 »
Gracias MerLiNz,

He hecho lo que me comentabas y ya funciona

Me faltaba esto después de cada SPI_Send

while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET);

y ahora ya me aparecen los 24 bits y el CS correcto



Gracias
BitPIC

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: STM32 SPI
« Respuesta #23 en: 09 de Junio de 2013, 13:46:50 »
No hace falta ponerlo despues de cada send, con que lo pongas en el ultimo, vale.