8 votos

Es común que los internos de las resistencias pull-up a fallar? o lo que podría provocar intermitente?

Tengo una placa basada en un ASIC ARM Cortex-M3 que después de meses de trabajo de repente empezó a informes falsos que se presiona un botón. El ASIC diseño no es nuestro, sino de una buena reputación de la empresa.

Los botones esquemática es la siguiente. El pin es configurado como entrada con resistencia pull-up activado. La resistencia es acerca de 30KOhm.

Cuando la medición de la pin-lado con un DMM, veo el valor que flota alrededor. A veces es de 3,2 V (=VCC, gama de chip: 2.1 V a 3.6 V) y otras veces saltos alrededor flotando entre 0,6 V a 1,0 V.

No hay problemas de humedad/condensación (9% RH), sin polvo u otros objetos en los seguimientos. Y este es el ÚNICO consejo que sufre de esto. Otros fabrican clones de esta junta de trabajo sin ningún problema (hasta ahora de todos modos).

La única cosa que puedo pensar es que algo está haciendo la interna de pull-up de parpadeo. Es común que la interna pull-ups para darle forma? ¿Qué otra cosa podría estar causando esto?

Button schematic

R9,R12 son 2.2 Kohm, y C10,C11 se 33nF.

8voto

user13107 Puntos 313

La estadística es su amigo. Lo entiendo, usted tiene un dispositivo que falla, que maravilla es esto por mi culpa? es seguro para el envío en volumen? ¿qué sucede si se trata realmente de un problema y nos nave de 10.000 unidades en el campo? Todas las señales que te dan una mierda y que usted está probablemente consciente de diseñador/ingeniero.

Pero el hecho es, usted tiene una falla y las debilidades humanas de sesgo de confirmación se aplican a las situaciones negativas tan fácilmente como situaciones positivas. Has tenido un fracaso, no hay una causa definida. A menos que sepa de un evento que precipitó este efecto es la ansiedad.

Este es el ESD. Puedo demostrar que es ESD? - Tal vez/quizá no -, si de envío de la pieza y yo gastar mucho $$ para delid y ejecutarlo a través de diferentes pruebas, como SEM SEM y con el contraste de la superficie de mejora, tal vez. He tenido muchos casos en los que deliberadamente se zapped un dispositivo como parte de la EDS de la calificación, el dispositivo no pudo y, sin embargo, tomó un 30 horas para encontrar el punto de falla. Es importante comprender los mecanismos de fallo y la energía de activación para la caza fue necesario (si aparentemente inútil), pero la mitad del tiempo que no podía ver el punto de falla. Y eso fue después de un FMEA de análisis y diseño guiado eliminación de la ubicación.

La gente tiene la falsa idea de que el ESD siempre significa explosiones y el chip de tripas vomitó encima con el Si y humo acre. Hacen ver que esto a veces, pero a menudo es sólo una pequeña escala nanométrica agujerito en la puerta de óxido que se ha roto. Puede haber ocurrido hace mucho tiempo y a lo largo del tiempo fracasó debido a paramétrico de turno.

De hecho, durante ESD pruebas utilizamos la ecuación de Arrhenius para predecir el fracaso. Le zap de los dispositivos en distintos niveles y en diferentes modelos (fuente de impedancias) y, a continuación, cocinamos el poco b***rds durante horas y el seguimiento de los mismos a través del tiempo para ser capaz de deducir el modo de falla y por lo tanto predecir el rendimiento futuro. Usted puede fácilmente tener un 1000 de fichas en las tablas que se ejecutan en el entorno de las cámaras durante meses a la vez. Todo es parte de "qual" - es decir, de la calificación.

El efecto de clave siempre estamos buscando para _some_failure modos es EOS (Sobrecarga Eléctrica). Puede ser inducida por el ESD o en otras situaciones. Yo modernos procesos de la tolerancia a la puerta de la EOS de nivel en el interior del chip es tal vez un 15% max. (Es por eso que ejecuta el chip en la intención de MAX Vss ferrocarril es tan importante). EOS puede manifestarse meses más tarde. El calor de la operación sería como una mini prueba de vida acelerada ( simplemente no estás aplicando la ecuación de Arrhenius, y no controlados).

Si usted quiere entender mejor buscar la JEDEC ESD22 estándares que describen el MM (Modelo de Máquina) y HMB (Cuerpo Humano modelo) que describe las sondas de prueba y la carga.

Aquí está un recorte de el modelo de JEDEC JESD22-A114C.01 (Marzo de 2005).

enter image description here

Una especie de aviso de cómo se ve un poco de parecido a su circuito? y los valores son incluso un poco estrecha, y este es utilizado con el derecho de los niveles de voltaje para soplar a la basura fuera del ESD estructuras.

Entonces lo que hay que hacer es:

-scrap that board
- track it's provenance, lot number and who handled it
- keep this info in a database (or spreadsheet)
- note in dB that you suspect ESD
- track all failures
- check the data over time.
- institute manufacturing controls so you can track.
- relax - you're doing fine.

4voto

Alex Andronov Puntos 178

Los escenarios más probables son que el chip ha sufrido algún daño, cuyos efectos visibles incluyen escamosa de pull-up de comportamiento, o de lo que el código es para cualquiera que sea el motivo de la pullups a querer ser a veces habilitado y, a veces, movilidad. La última situación puede surgir si la principal línea de código hace algo como:

WIDGET_PIN_PORT->PULLUPS |= WIDGET_PIN_PULLUP_MASK;

y una interrupción hace algo como:

GADGET_PIN_PORT->PULLUPS |= GADGET_PIN_PULLUP_MASK;

donde WIDGET_PIN y GADGET_PIN son diferentes bits en el mismo puerto de e/S. La principal línea de código se va a traducir en algo así como

ldr r0,= [[address of port pullup register]]
ldr r1,[r0] ; ***1
orr r1,#WIDGET_PIN_PULLUP_MASK
str r1,[r0] ; ***2

Si una interrupción ocurre después de la ***1 pero antes de ***2, luego GADGET_PIN la subida va a conseguir encendido por la interrupción, pero, a continuación, obtener erróneamente desactivado por la principal línea de código. Hay dos formas de evitar este problema:

(1) Hacer uso de hardware que puede permitir un poco de la de pull-up de registro de establecer mediante una única instrucción en lugar de una lectura-modificación-escritura de la secuencia. Creo que todos los Cortex-M3-controladores basados en proporcionar un "bit de bandas", característica que puede ser utilizada para este propósito, a pesar de que aún tengo que encontrar alguna manera agradable de usar desde el código escrito en C otros de forma manual la definición de los bits de bandas de direcciones. Algunos otros procesadores pueden tener de e/S-puerto-medios específicos para lograr una tarea similar.

(2) Deshabilitar las interrupciones durante el puerto de leer-modificar-escribir la secuencia. Por ejemplo, reemplazar el anterior código C con una llamada a un método

void set32(uint32_t volatile *dest, uint32_t value)
{
  uint32_t old_int = __get_PRIMASK();
  __disable_irq();
  *dest = *dest | value;
  __set_PRIMASK(old_int);
}

Este código hará que las interrupciones se discapacitados, muy brevemente (probablemente unos 5 instrucciones); que la breve suficiente para que no cause problemas incluso con relativamente de tiempo crítico interrupciones. Tenga en cuenta que compilar el método anterior como en línea puede reducir el tiempo necesario para llamar, pero podría aumentar la cantidad de tiempo en el que las interrupciones están deshabilitadas [por ejemplo, si el optimizador sucede a reorganizar el código para la instrucción en el que se carga la dirección de la dest no ocurre hasta después de que __deshabilitar_irq()].

Dado que dicen que el pull-up comportamiento es intermitente, creo que un problema de código es más probable que un problema de hardware. Además, dañando a las condiciones que dañan a los de pull-up de circuito sería susceptible de causar otro daño en el chip, así como, algunos detectable y algunos no. Si cualquier tipo de demostrable de daños en el hardware se produce a un chip, casi siempre es mejor a la basura el chip y reemplazarlo con uno nuevo, que a la esperanza de que el daño observado es el "único" problema.

4voto

GSerg Puntos 33571

Parece que he hecho algún esfuerzo para aislar sus pines de entrada de los interruptores, pero aún así, una abrumadora ESD evento puede haber dañado alguna parte de la pin conductor/receptor de circuitos en el chip (y no necesariamente el pullup dispositivo en particular).

Si usted desea hacer esto más robusto, usted podría considerar la adición externa de sujeción diodos, una cuenta de ferrita, o incluso un transistor de amortiguamiento entre el interruptor y el pin.

0voto

Alexei Averchenko Puntos 319

Algunas de las respuestas anteriores por alto lo más obvio: Compruebe las juntas de soldadura para el botón, las resistencias, los condensadores y la uC. Bajo el microscopio, usted puede ser capaz de ver una fractura de la soldadura.

Si usted no tiene un microscopio, re-soldadura de uno y de una articulación y ver si se cura el problema.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X