Autor Tema: PIC32MZ - Estrenando micro y bugs en el silicio/compilador  (Leído 46699 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #30 en: 16 de Febrero de 2015, 12:34:23 »
Por cierto en respuesta a los que preguntan si se puede usar el USB con el cristal interno, se que en los pic32mx2xx, no se puede, se que en el diagrama del oscilador existe el camino, pero contacte con el apoyo tecnico de una compañia suministradora de microchip para preguntarlo, y me informo que no es posible, ese camino existe pero solo para algunas funciones del usb en estado latente pero no para funcionar plenamente como comunicación, quiza en los MZ si se pueda no lo se.

Hola, tal vez sea posible hacer funcionar el USB con el oscilador interno FRCPLL. Necesitarías echar a andar un REFCLK sobre un pin de salida y luego redirigirlo a la entrada POSC en modo clk, no en modo cristal.

Es una teoría, yo la iba a probar pero no me dio tiempo.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #31 en: 17 de Febrero de 2015, 03:59:18 »
Es una buena idea, me la apunto para probarla un día en esos diseños en los que esta todo muy apretado, ahorrarte colocar un cristal en el PCB es un alivio :lol:

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #32 en: 17 de Febrero de 2015, 10:40:10 »
En realidad es obligatorio usar el cristal para mantener una frecuencia estable en USB, sobre todo en High Speed. Si planeas certificar tu dispositivo USB necesitarás una frecuencia limpia, sin jitter, para pasar las pruebas de Eye Diagram por ejemplo.

Esta propuesta de usar el FRCPLL, sacarlo y volverlo a introducir al PIC es sólo un workaround mientras Microchip corrige los issues de su PIC32MZ.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #33 en: 17 de Febrero de 2015, 15:22:57 »
Bueno espero que a dia de hoy los micros que van dando de muestras y los que se venden, puedan funcionar correctamente con el cristal externo y la resistencia como indica la errata, tengo muchas ganas de probarlo y no me va a hacer nada de gracia que después de mandar el proyecto a fabrica no funcione debidamente, ya que es un proyecto personal y saldrá de mi bolsillo

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #34 en: 17 de Febrero de 2015, 18:36:38 »
Veo entre el datasheet y la errata del cristal oscilador externo que si queremos utilizar el USB correctamente, 1º debemos tener el micro con la revisión de silicio "a5", y debemos colocar un cristal de cuarzo de 12 MHz ni mas ni menos

Datasheet: "If the USB module is used, the Primary Oscillator (POSC) is limited to either 12 MHz or 24 MHz."

pero en la errata dice lo siguiente: "Crystals with a speed of 4 MHz to 12 MHz that meet the following requirements will meet the PIC32MZ oscillation requirements when configured as depicted in Figure 8-1."

por lo tanto si realizais algún diseño con usb acordaros a parte de las resistecias de 10K y 1M de que el cristal debe ser de 12MHz espero que os sea útil un saludo

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #35 en: 10 de Mayo de 2015, 16:55:21 »
Pequeña advertencia... p32mz1024ecg100.h no contiene correctos los bits del registro IFS3 (XC32 v1.34):

Código: [Seleccionar]
typedef union {
  struct {
    unsigned :6;
    unsigned AD1D43IF:1;
    unsigned AD1D44IF:1;
    unsigned CPCIF:1;
    unsigned CFDCIF:1;
    unsigned SBIF:1;
    unsigned :2;
    unsigned SPI1EIF:1;
    unsigned SPI1RXIF:1;
    unsigned SPI1TXIF:1;
    unsigned U1EIF:1;
    unsigned U1RXIF:1;
    unsigned U1TXIF:1;
    unsigned I2C1BIF:1;
    unsigned I2C1SIF:1;
    unsigned I2C1MIF:1;
    unsigned CNAIF:1;
    unsigned CNBIF:1;
    unsigned CNCIF:1;
    unsigned CNDIF:1;
    unsigned CNEIF:1;
    unsigned CNFIF:1;
    unsigned CNGIF:1;
  };
  struct {
    unsigned w:32;
  };
} __IFS3bits_t;
extern volatile __IFS3bits_t IFS3bits __asm__ ("IFS3") __attribute__((section("sfrs")));

También está mal el IFC3...

Código: [Seleccionar]
typedef union {
  struct {
    unsigned :6;
    unsigned AD1D43IE:1;
    unsigned AD1D44IE:1;
    unsigned CPCIE:1;
    unsigned CFDCIE:1;
    unsigned SBIE:1;
    unsigned :2;
    unsigned SPI1EIE:1;
    unsigned SPI1RXIE:1;
    unsigned SPI1TXIE:1;
    unsigned U1EIE:1;
    unsigned U1RXIE:1;
    unsigned U1TXIE:1;
    unsigned I2C1BIE:1;
    unsigned I2C1SIE:1;
    unsigned I2C1MIE:1;
    unsigned CNAIE:1;
    unsigned CNBIE:1;
    unsigned CNCIE:1;
    unsigned CNDIE:1;
    unsigned CNEIE:1;
    unsigned CNFIE:1;
    unsigned CNGIE:1;
  };
  struct {
    unsigned w:32;
  };
} __IEC3bits_t;
extern volatile __IEC3bits_t IEC3bits __asm__ ("IEC3") __attribute__((section("sfrs")));

Lo pueden comprobar en la datasheet. Saludos.
« Última modificación: 10 de Mayo de 2015, 16:57:44 por migsantiago »

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #36 en: 10 de Mayo de 2015, 17:29:16 »
Otro bug para el cajón, en el ultimo seminario de microchip al que asistí los puse bonitos con este tema, hay gente que había hecho sus diseños con la promesa de la gran eficiencia de los pic32mz y han tenido que poner un adC  :? Encareciendo el producto.

Por lo visto no van a ofrecer solucion ni nueva revisión del producto abra que esperar a que salga la nueva generación de pic32mz, que por cierto por fin contaran con coma flotante por hardware, algo que le faltaba a los micros de microchip. :-/

Un saludo.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #37 en: 10 de Mayo de 2015, 19:33:02 »
Sigo encontrando cosas... pero ésta no la puedo confirmar aún. Si utilizo la variable SPIxBUF que define el h...

Código: [Seleccionar]
extern volatile unsigned int        SPI2BUF __attribute__((section("sfrs")));
Veo glitches en la escritura de SDOx.

Pero si yo mismo declaro la variable...

Código: [Seleccionar]
#define SPI2BUFFER (*(volatile uint32_t*)(0xBF821220))
Se remueven los glitches.

La variable SPIxBUF es extern, imagino que viene ya definida en una librería precompilada... tal vez plib.

:S

Busqué la errata del PIC y no ha cambiado...  :?

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #38 en: 11 de Mayo de 2015, 04:06:03 »
Citar
La variable SPIxBUF es extern, imagino que viene ya definida en una librería precompilada... tal vez plib. 

Las plib están siendo eliminadas si eso no funciona ya no lo van a arreglar, prueba con las harmony que ya tienen versión 1.0 pero ya sabes.... no te fíes del editor de código, sea de microchip o de quien sea.

Un saludo

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #39 en: 11 de Mayo de 2015, 15:17:40 »
No puedo usar Harmony porque no han metido interrupciones SPI sin DMA... lo tuve que hacer a mano y me apoyé en PLIB, pero ya quité todo eso. Saludos.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #40 en: 11 de Mayo de 2015, 16:09:57 »
Citar
No puedo usar Harmony porque no han metido interrupciones SPI sin DMA... lo tuve que hacer a mano y me apoyé en PLIB, pero ya quité todo eso. Saludos.


hola migsantiago, supongo que estas usando el reloj interno por el bug para el cuarzo, que experiencia has tenido en las temporizaciones? va bien? tiene un tiempo estable?

 por ejemplo para contar tiempos pequeños? o mejor no usarlo para eso de momento?


un saludo

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #41 en: 13 de Mayo de 2015, 21:15:34 »
Hola, realmente no he medido el tiempo a detalle. Uso señales de menos de 1us y funcionan muy bien.

Con los 200MHz del reloj interno no he tenido problemas... parece que los errores de SPI han sido por PLIB... el precompilado que trae.

Les paso las diferencias de código. Sólo escribo a mano los registros... no confío en PLIB ya más.  :5]

Código: [Seleccionar]
#define SPI1BUFFER (*(volatile uint32_t*)(0xBF821020))
#define SPI2BUFFER (*(volatile uint32_t*)(0xBF821220))
#define SPI3BUFFER (*(volatile uint32_t*)(0xBF821420))
#define SPI5BUFFER (*(volatile uint32_t*)(0xBF821820))
#define SPI6BUFFER (*(volatile uint32_t*)(0xBF821A20))

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #42 en: 14 de Mayo de 2015, 16:56:51 »
Hola migsantiago, yo tambien estoy desechando las PLIB, para comunicaciones son horribles, I2C, y UART estan programados con while y causan retrasos muy graves para el codigo, estoy desarrollando ahora una comunicacion UART y en recibir 29Bytes a 9600 baudios, te mete un retraso en tu programa de 23,2 miliseguntos  :? :? de que me sirve tener una comunicacion hardware si luego tengo unos retrasos brutales por las librerias?? para eso hago yo la comunicacion software que es lo mismo.

tengo ya ganas de que salgan los PIC32MZ EX family (creo que se van a llamar asi), y solventen los bug he incluyan el FPU.

Habrá que probar bien las harmony a ver si estan mejor hechas, esperemos que si.

un saludo.


Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #43 en: 14 de Mayo de 2015, 20:39:59 »
jeje

Dudo que salgan bien.

Como que Microchip está liberando tan pronto puede para no quedarse atrás en la competencia. Ahorita los micros todos están luchando por nuestro interés.

Me quedo con el PIC32MZ... malo por conocido que bueno por conocer.  :mrgreen:

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: PIC32MZ - Estrenando micro y bugs en el silicio/compilador
« Respuesta #44 en: 16 de Mayo de 2015, 10:03:50 »
Citar
Me quedo con el PIC32MZ... malo por conocido que bueno por conocer.  Mr. Green

La verdad es que si no huvieran salido con tantos bug, ahora mismo los estaría usando para todo, tienen muy buena velocidad y los perifericos de microchip son muy buenos. Y otra preguntita, por lo que dices, veo que no has podido o querido implementar la solución para usar el cristal externo.

has podido usar el USB en algunas de sus variantes? USB HS, FS, puerto serie virtual??

Un saludo.


 

anything