› Foros › Off-Topic › Miscelánea
jomofer escribió:El programa esta escrito en ensamblador y utiliza interrupcion por deteccion de flanco en la patilla de recepcion y por timer0. Asi que se podria ejecutar ademas el programa principal que quisieramos simultaneamente. Basicamente lo que hace es esperar a una interrupcion del pin de recepcion (cuando empeiza el bit start). Espera 300us para testear el centro de cada pulso y no coger falsos datos espureos guardando 1 o un 0 segun sea (despues, a partir de ahi carga los 600us que dura cada intervalo). Una vez que reconoce la secuencia del bit start se pone a guardar el mensaje. Cuando recibe un 1 revisa si antes recibio un cero o dos ceros, para guardar el bit que corresponda a cada codigo. Ademas, hay que decir que cada vez que llega una interrupcion por el pin de recepcion, el timer lo ponemos a 300us para sincronizarnos (en un cambio de flanco si esperamos la mitad de tiempo estaremos en medio del bit seguro). Si no hacia eso, en los ultimos bits perdia el sincronismo...
skalan escribió:jomofer escribió:El programa esta escrito en ensamblador y utiliza interrupcion por deteccion de flanco en la patilla de recepcion y por timer0. Asi que se podria ejecutar ademas el programa principal que quisieramos simultaneamente. Basicamente lo que hace es esperar a una interrupcion del pin de recepcion (cuando empeiza el bit start). Espera 300us para testear el centro de cada pulso y no coger falsos datos espureos guardando 1 o un 0 segun sea (despues, a partir de ahi carga los 600us que dura cada intervalo). Una vez que reconoce la secuencia del bit start se pone a guardar el mensaje. Cuando recibe un 1 revisa si antes recibio un cero o dos ceros, para guardar el bit que corresponda a cada codigo. Ademas, hay que decir que cada vez que llega una interrupcion por el pin de recepcion, el timer lo ponemos a 300us para sincronizarnos (en un cambio de flanco si esperamos la mitad de tiempo estaremos en medio del bit seguro). Si no hacia eso, en los ultimos bits perdia el sincronismo...
Me he metido por curiosidad al hilo y me encuentro esto...Casi me da un derrame cerebral... .No estudieis estas cosas,criaturas,que os puede reventar la cabeza...o algo.
skalan escribió:
Me he metido por curiosidad al hilo y me encuentro esto...Casi me da un derrame cerebral... .No estudieis estas cosas,criaturas,que os puede reventar la cabeza...o algo.
Y eso que ese texto no es excesivamente hard core.... DD Anda que si no fuera por la electrónica cómo estaría el mundo ahora...
skalan escribió:jomofer escribió:El programa esta escrito en ensamblador y utiliza interrupcion por deteccion de flanco en la patilla de recepcion y por timer0. Asi que se podria ejecutar ademas el programa principal que quisieramos simultaneamente. Basicamente lo que hace es esperar a una interrupcion del pin de recepcion (cuando empeiza el bit start). Espera 300us para testear el centro de cada pulso y no coger falsos datos espureos guardando 1 o un 0 segun sea (despues, a partir de ahi carga los 600us que dura cada intervalo). Una vez que reconoce la secuencia del bit start se pone a guardar el mensaje. Cuando recibe un 1 revisa si antes recibio un cero o dos ceros, para guardar el bit que corresponda a cada codigo. Ademas, hay que decir que cada vez que llega una interrupcion por el pin de recepcion, el timer lo ponemos a 300us para sincronizarnos (en un cambio de flanco si esperamos la mitad de tiempo estaremos en medio del bit seguro). Si no hacia eso, en los ultimos bits perdia el sincronismo...
Me he metido por curiosidad al hilo y me encuentro esto...Casi me da un derrame cerebral... .No estudieis estas cosas,criaturas,que os puede reventar la cabeza...o algo.
/** C O N F I G U R A T I O N B I T S ******************************/
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = ON, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
/** I N C L U D E S **************************************************/
#include "p18f26k20.h"
#include "delays.h" //Delay1KTCYx(250); // Delay 250 x 1000 = 250,000 cycles; 1s @ 1MHz
#include <timers.h>
/** D E C L A R A T I O N S *******************************************/
#define CS PORTCbits.RC2
#define SCLK PORTCbits.RC3
#define SDI PORTCbits.RC4
#define SDO PORTCbits.RC5
#define DC PORTCbits.RC1
#define LE PORTCbits.RC6
/*
#define RS
#define RW
#define E
#define LCD
*/
/*
#pragma udata vararray1
unsigned char buffer1[256];
#pragma udata vararray2
unsigned char buffer2[256];
#pragma udata
*/
#pragma udata vararray
unsigned char buffer[512];
#pragma udata
//DATABANK 10 with 512 bytes (modified lkr)
ram volatile unsigned int buff=0, play=0x2C;
ram volatile unsigned char LCDtemp=0, ToLCD=0;
void SPI_init(void);
unsigned char WriteSPI( unsigned char data_out );
unsigned char ReadSPI( void );
void SD_Init(void);
unsigned char SendCMD (unsigned char b1,unsigned char b2,unsigned char b3,unsigned char b4,unsigned char b5);
void ReadSD(unsigned char addr1,unsigned char addr2,unsigned char addr3,unsigned char addr4);
void WriteSD(unsigned char addr1,unsigned char addr2,unsigned char addr3,unsigned char addr4);
void timer_isr (void);
void ReadSecSD(unsigned char addr1,unsigned char addr2,unsigned char addr3,unsigned char addr4);
//////////////////INTERRUPTION/////////////////////////////
#pragma code high_vector=0x08
void high_interrupt (void){
_asm GOTO timer_isr _endasm
}
#pragma code
//#pragma high_interrupt timer_isr
void timer_isr (void){
LE=1;
LATB = buffer[play];
//TMR0H=0xFD; TMR0L=0x29+20; //11,025KHz @ 32MHz
//TMR0H=0xFE; TMR0L=0x94+20; //22,050KHz @ 32MHz
//TMR0H=0xFF; TMR0L=0x4A+20; //44,100KHz @ 32MHz
//TMR0H=0xFF; TMR0L=0xAC+20; //96KHz @ 32MHz
TMR0H=0xFE; TMR0L=0xB2+20; //48KHz @ 64MHz
//TMR0H=0xFF; TMR0L=0xD9; //fmax @ 64MHz SPI 0x01
INTCONbits.TMR0IF = 0;
INTCONbits.GIE = 1;
play++;
play=play&0x1FF;
LE=0;
}
///////////////PROGRAM/////////////////////////
void main (void)
{
int i;
unsigned char a1, a2, a3;
OSCCON = 0b01100000; // IRCFx = 110 8MHz
OSCTUNEbits.PLLEN = 0; // x4 PLL disabled
ANSEL = 0xe0;
TRISB = 0;
PORTB = 0x00;
LATB = 0x00;
TRISA = 0;
PORTA = 0x00;
LATA = 0x00;
TRISC = 0b00000000;
PORTC = 0x00;
LATC = 0x00;
LE=1;
while(1){
SPI_init();
CS =1;
while(DC);
SD_Init();
//OSCCON = 0b01110000; // IRCFx = 111 16MHz
OSCTUNEbits.PLLEN = 1; // x4 PLL enabled --> 64MHz
SSPCON1 = 0x01; // Master Mode Fosc/4
SSPCON1bits.SSPEN = 1; // SPI enable
//Pre-buffering
a1=0x10, a2=0x04, a3=0;
ReadSD(a3,a2,a1,0x00);
a1++;a1++;
OpenTimer0 (TIMER_INT_ON & T0_SOURCE_INT & T0_16BIT);
TMR0H=0x00; TMR0L=0x00; //First wait
INTCONbits.GIE = 1;
ReadSecSD(a3,a2,a1,0x00); //Read to buffer secuencially
while(!DC);
}
}
////////////////////FUNCTIONS/////////////////////////
//Initializes SPI
void SPI_init()
{
DDRCbits.RC2 = 0; //Define CS as Output
DDRCbits.RC3 = 0; //Define SCK as Output
DDRCbits.RC4 = 1; //Define SDI as Input
DDRCbits.RC1 = 1; //Define DC as Input
DDRCbits.RC5 = 0; //Define SDO as Output
SSPCON1 = 0x10; // Master Mode Fosc/64
SSPSTATbits.CKE = 1;
SSPSTATbits.SMP = 0;
SSPCON1bits.CKP = 0;
SSPCON1bits.SSPEN = 1; // SPI enable
}
unsigned char WriteSPI( unsigned char data_out ){
unsigned char TempVar;
TempVar = SSPBUF; // Clears BF
//PIR1bits.SSPIF = 0; // Clear interrupt flag
SSPBUF = data_out; // write byte to SSPBUF register
while( !SSPSTATbits.BF ); // wait until bus cycle complete
//while( !PIR1bits.SSPIF ); // wait until bus cycle complete
return ( SSPBUF );
}
unsigned char ReadSPI( void ){
unsigned char TempVar;
TempVar = SSPBUF; // Clear BF
//PIR1bits.SSPIF = 0; // Clear interrupt flag
SSPBUF = 0xFF; // initiate bus cycle
while ( !SSPSTATbits.BF ); // wait until cycle complete
//while(!PIR1bits.SSPIF); // wait until cycle complete
return ( SSPBUF ); // return with byte read
}
void SD_Init(void){
unsigned char i, a1, a2, a3, a4;
for(i=0; i<20; i++){
WriteSPI(0xFF);
}
a1=SendCMD(0x40,0x00,0x00,0x00,0x00); //Init SPI mode
a2=SendCMD(0x41,0x00,0x00,0x00,0x00); //Ready?
a3=SendCMD(0x7A,0x00,0x00,0x00,0x00); //VDD good?
a4=SendCMD(0x50,0x00,0x00,0x02,0x00); //512byte sector length
}
unsigned char SendCMD (unsigned char b1,unsigned char b2,unsigned char b3,unsigned char b4,unsigned char b5){
unsigned char i, retry=10;
/*
for(i=0; i<20; i++){
WriteSPI(0xFF);
}
*/
CS=0;
while(retry >0){
WriteSPI(b1);
WriteSPI(b2);
WriteSPI(b3);
WriteSPI(b4);
WriteSPI(b5);
WriteSPI(0x95); //CRC
if(b1 == 0x40){
for(i=0; i<10; i++){
if(ReadSPI()== 0x01){
return 1;
}
}
}
else{
for(i=0; i<10; i++){
if(ReadSPI()== 0x00){
return 1;
}
}
}
retry--;
}
CS=1;
//WriteSPI(0xFF);WriteSPI(0xFF);WriteSPI(0xFF);WriteSPI(0xFF);
return 0; //Error
}
void ReadSD(unsigned char addr1,unsigned char addr2,unsigned char addr3,unsigned char addr4){
ram int i, temp;
CS=0;
temp=0;
while(temp!=0xFE){
SendCMD(0x51,addr1,addr2,addr3,addr4);
for(i=0; i<20; i++){
temp=ReadSPI();
if(temp==0xFE){
break;
}
}
}
i = 0;
while(i<512){
buffer[i]=ReadSPI();
i++;
}
ReadSPI();
ReadSPI();
CS=1;
}
void WriteSD(unsigned char addr1,unsigned char addr2,unsigned char addr3,unsigned char addr4){
ram int i;
while(SendCMD(0x58,addr1,addr2,addr3,addr4)!=1);
i = 0;
CS=0;
WriteSPI(0xFE);
while(i<512){
WriteSPI(buffer[i]);
i++;
}
WriteSPI(0xFF);
WriteSPI(0xFF);
while(ReadSPI()==0);
CS=1;
}
void ReadSecSD(unsigned char addr1,unsigned char addr2,unsigned char addr3,unsigned char addr4){
ram unsigned long int i, temp;
CS=0;
temp=0;
while(temp!=0xFE){
SendCMD(0x52,addr1,addr2,addr3,addr4);
for(i=0; i<20; i++){
temp=ReadSPI();
if(temp==0xFE){
break;
}
}
}
//i=0x00;
OSCCON = 0b01110000; // IRCFx = 111 16MHz
//OSCTUNEbits.PLLEN = 1; // x4 PLL enabled --> 64MHz
//SSPCON1 = 0x00; // Master Mode Fosc/4
//SSPCON1bits.SSPEN = 1; // SPI enable
while(1){
while(play==buff); //Wait for space in buffer
while(play!=buff){
buffer[buff]=ReadSPI();
buff++;
if(buff>=512){
//INTCONbits.GIE = 0;
buff=0;
while(ReadSPI()!=0xFE);
//INTCONbits.GIE = 1;
}
}
}
CS=1;
}
jomofer escribió:proyecto
jomofer escribió:project
frankKM escribió:jomofer escribió:project
estas usando un ca3338?
lo usas a frecuencia maxima (50mhz)
o usas la del pic
si lo usas menos velocidad (de la maxima del integrado)puede que el muestreo no se represente bien
y se pierdan datos (chasquido)pasaba con los primeros reproductores mp3
la falla de la respuesta de la SD debe ser debido a la caida de tension de rampa
si llega a los 2v se acabo
el rango es de 2,7 y 3,6 (segun Toshiba)
Tredi escribió:Alguien sabe como calcular la disipación que se necesita para un circuito? Estoy haciendo un montaje y no se si será suficiente, así que a ver si se puede calcular de alguna manera.
jomofer escribió:frankKM escribió:jomofer escribió:project
lo anterior propiamente dicho
MrCell escribió:peazo antes pa lo diminutas que son las pcb
Tredi escribió:Alguien sabe como calcular la disipación que se necesita para un circuito? Estoy haciendo un montaje y no se si será suficiente, así que a ver si se puede calcular de alguna manera.
frankKM escribió:peazo antes pa lo diminutas que son las pcb
que te va a montar una red espia en casa pero esos trastos seran de 450mw como mucho,no?
vas a hacer un robot? o algo asin?
frankKM escribió:pues con 10 mW tienes para 400mts bien bien a esa frecu
jomofer escribió:ErDaByz, que condensadores necesitas? A ver si entre varios conseguimos algo.
Pues muchas gracias por el interes, de verdad. Yo las cosas que vaya haciendo las compartire aqui y a ver si tambien se anima mas gente.
Saludos!
frankKM escribió:si puedes ir a una tienda y comprar 10 por 1 €
frankKM escribió:aqui en barcelona en ondaradio y diotronic te venden bolsas con 10 - 20 unidades
frankKM escribió:nain en el supermercado esta mas a dentro tiene que haber que yo vi componentes smd
frankKM escribió:nain en el supermercado esta mas a dentro tiene que haber que yo vi componentes smd
MrCell escribió:frankKM escribió:nain en el supermercado esta mas a dentro tiene que haber que yo vi componentes smd
Mírate las cantidades, no te vienen 5, te vienen un montón(y reza para que tengan el que quieras). La próxima vez que vaya ya miraré, pero lo dudo
Estoy subiendo un vídeo a youtube con el funcionamiento de los dos nRF24L01+. En 10min estará listo
http://www.youtube.com/watch?v=D7doS41xzoY (Perdonad la mala calidad, el móvil no da para más )
Por cierto, estoy mirando los sensores CMOS de Sparkfun, creéis que sin un FiFo se podría extraer una imagen QVGA en Grayscale con un ARM7 o un ARM Cortex?
ErDaByz escribió:MrCell escribió:frankKM escribió:nain en el supermercado esta mas a dentro tiene que haber que yo vi componentes smd
Mírate las cantidades, no te vienen 5, te vienen un montón(y reza para que tengan el que quieras). La próxima vez que vaya ya miraré, pero lo dudo
Estoy subiendo un vídeo a youtube con el funcionamiento de los dos nRF24L01+. En 10min estará listo
http://www.youtube.com/watch?v=D7doS41xzoY (Perdonad la mala calidad, el móvil no da para más )
Por cierto, estoy mirando los sensores CMOS de Sparkfun, creéis que sin un FiFo se podría extraer una imagen QVGA en Grayscale con un ARM7 o un ARM Cortex?
Usas el puerto serie hardware del PIC 16F88 para manejar el módulo? O es algo por software?
eko_gekoscrew escribió:Hola buenas!
Queria saber si alguien me podria hablar un poco sobre el transistor ultrafet, ya que no tengo nada de informacion de él y me hace bastante falta.
Ah por cierto no son datasheet lo que me hace falta!!!!!
un saludo.
snake-viper escribió:eko_gekoscrew escribió:Hola buenas!
Queria saber si alguien me podria hablar un poco sobre el transistor ultrafet, ya que no tengo nada de informacion de él y me hace bastante falta.
Ah por cierto no son datasheet lo que me hace falta!!!!!
un saludo.
He mirado un poco por google y en muchos sitios lo relacionan al Transistor 2N2222A, mira a ver si buscando con ese nombre te sale algo :S
sgtoconor escribió:A ver si podeis responder aqui que pregunte en FeedBack de compra-venta y no supieron contestar
Bueno eoli@nos, una amiga tiene unas baterias de gel que vender (baterias panasonic 12/28ah
) y le gustaria que se las tasaran. Segun lo que me ha dicho parece que son las que se usan en instalaciones de sonido de coches (o carritos de golf ???) pero no estamos muy seguros.
Muchisimas gracias por adelantado.
PD: si este hilo no va aqui avisadme y edito...
pituleon escribió:Hola , a ver si hay algun entendido en electronica que me pueda ayudar , queria hacer un circuito con unos 8 leds y que se encendieran uno detras de otro en un intervalo de 1 segundo o asi entre cada led en vez de todos a la vez , y al final que queden todos encendidos , a ver si me podeis decir mas o menos como lo puedo hacer y a poder ser que no sea muy complicado jejej , gracias de antemano
elenur escribió:pituleon escribió:Hola , a ver si hay algun entendido en electronica que me pueda ayudar , queria hacer un circuito con unos 8 leds y que se encendieran uno detras de otro en un intervalo de 1 segundo o asi entre cada led en vez de todos a la vez , y al final que queden todos encendidos , a ver si me podeis decir mas o menos como lo puedo hacer y a poder ser que no sea muy complicado jejej , gracias de antemano
Pídele a alguien que conozcas cerca y que haya cursado un curso básico de electrónica digital que te lo resuelva, es un problema sencillo y se puede resolver de muchas formas.
Una sencilla y rápida de diseñar (que no la óptima desde luego) podría ser un temporizador con un contador en anillo de 9 estados, cuyas 8 primeras salidas estén conectadas a través de puertas OR a cada LED, con laa última salida conectada a la segunda entrada de todas las puertas. Evitas que pase al primer estado en el último y pista.
Esto lo que haría sería encender uno cada vez y luego dejarlos todos encendidos. Si lo que querías era ir dejando los anteriores encendidos, puedes usar un Johnson y bloquearle en el octavo estado 8 (contando desde 0).
YeRYo escribió:Hola a todos, resulta que he desmontado un MP3 para reemplazar el pulsador original de pasar cancion y parar la musica del MP3 por un pulsador en la pared de mi cuarto que llegue con un cable hasta dicho MP3, vamos un inventillo.
El problema está en que al desmontar el MP3 y quitar el botoncillo que venia para pasar canción hay 4 pines en forma de cuadrado, y yo la verdad me esperaba dos pines asi que no se como tengo que hacer las conexiones, si a los dos de arriba, los dos de abajo, uno de arriba otro de abajo etc.
El MP3 es un ipod shuffle 2g, sabeis algo?? gracias
ReinRaus escribió:Aprovecho el hilo para ver si alguien sabe como solucionar un problemilla con el software orcad layout:
Estoy en el diseño de una placa electrónica bastante compleja (doble cara) y el problema que se me presenta es que al rutear automáticamente el programa me pasa pistas debajo de los circuitos integrados y entre el espaciado de los pines de los integrados. Lo que quiero saber es si hay (y como hacerlo) alguna forma de decirle a Orcad que no me rutee pistas debajo de un integrado ni entre los pines de un integrado.
Os dejo una imagen que aclara más lo que quiero:
MrCell escribió:ReinRaus escribió:Aprovecho el hilo para ver si alguien sabe como solucionar un problemilla con el software orcad layout:
Estoy en el diseño de una placa electrónica bastante compleja (doble cara) y el problema que se me presenta es que al rutear automáticamente el programa me pasa pistas debajo de los circuitos integrados y entre el espaciado de los pines de los integrados. Lo que quiero saber es si hay (y como hacerlo) alguna forma de decirle a Orcad que no me rutee pistas debajo de un integrado ni entre los pines de un integrado.
Os dejo una imagen que aclara más lo que quiero:
¿No te deja modificarlo manualmente? En Eagle Layout te deja...
De todos modos, ¿en dónde está molesta?, como no tengas ahí que puntear las dos caras yo lo dejaría igual.
frankKM escribió:no hay una cosa llamada track to track spacing?
d3snuklao escribió:Hola!
Venia a preguntar... estoy mirando para instalar un chip a una PSOne. Necesito un integrado 12C508A, pero tengo que programarlo con el codigo hex especifico de ese integrado.
El caso es que no tengo forma de programarlo, ni se como. Necesito un programador de microcontroladores pic no? ¿Cual debo utilizar? y ¿Como?
Se que quizas saldria mejor llegar a algun amigo y decir que me lo haga, pero quiero aprender.
Tal vez Usted ya conozca la Ley de Murphy, o tal vez no. Pero aunque jamás haya oído mencionarla, tengo la seguridad que conoce sus efectos.
Prácticamente todo en nuestra vida está bajo la influencia de la ley de Edsel Murphy.
Su estudio es tan importante, que se la incluye en los cursos de oficiales militares, astronautas, pilotos, etc.
La electrónica no escapa a la influencia de esta peculiar ley.
Solo con un profundo dominio de sus principios, estará preparado para enfrentar los imprevistos. Y aunque no podrá evitar que “ciertas cosas” ocurran, al menos estará prevenido, sabrá por que ocurren, aprenderá aceptarlas y tal vez, solo tal vez, logrará reducir sus efectos.
La ley básica de Murphy es: Si algo puede ir mal, irá...
He aquí algunos enunciados de la ley de Murphy (o atribuidos a él), especialmente aplicados al campo de la electrónica.
PROYECTOS y DISEÑO
1. En todo presupuesto el costo final excederá el gasto previsto por un factor de 3.
2. Si el modelo de prueba funciona perfectamente, el producto terminado jamás.
3. En un cálculo matemático, todo error que pueda filtrarse, lo hará. Y será en el sentido que más daño haga en el cálculo.
4. En cualquier cálculo dado, la cifra que obviamente es la correcta, será la raíz del error.
5. Las valores siempre se indicaran en los términos menos usuales. Por ejemplo potencia en WPMPO, etc.
6. Las tolerancias se acumularan unidireccionalmente hacia la máxima dificultad del proyecto.
7. La probabilidad de omisión de un valor en un diagrama, es directamente proporcional a su importancia.
8. Las especificaciones de los fabricantes sobre el rendimiento se deben multiplicar por un factor igual a 0,5.
9. En especificaciones, la Ley de Murphy anula la ley de Ohm.
ENSAMBLADO
1. Si un proyecto requiere de "n" componentes, la disponibilidad será de "n-1".
2. Las partes intercambiables no lo serán.
3. Partes que no deberán ni podrán ser armadas indebidamente, lo serán.
4. La pieza más delicada, siempre se caerá.
5. El manual de armado y/u operación se botará con el material de embalaje. El recolector habrá pasado 5 minutos antes su carrera al deposito de basura.
6. La necesidad de una modificación de diseño de mayor entidad aumenta a medida de irse completando el armado y cableado de la unidad.
7. Un componente seleccionado al azar de un grupo con una confiabilidad del 99%, pertenecerá al 1%.
8. La disponibilidad de un componente es inversamente proporcional a su necesidad.
9. De necesitarse una resistencia (o condensador) de determinado valor, no se encontrará. Más aún, no se podrá lograr mediante ninguna combinación serie o paralelo.
10. Todo cable cortado a la medida será demasiado corto.
11. Si los cables se pueden conectar de dos o más formas diferentes, la primera de ellas es la que causa más daños.
12. Los miliamperimetros serán conectados en paralelo, y los voltímetros en serie con la fuente de poder.
PRUEBAS
1. Componentes idénticos probados bajo condiciones idénticas no lo serán en la prueba final, después de haber sido armado el equipo.
2. Un oscilador auto-oscilante, no lo será.
3. Un oscilador controlado por cristal oscilará en una frecuencia distinta; si oscila.
4. Un circuito amplificador atenuara la señal de entrada.
5. Un transistor PNP se revelará como NPN.
6. Un circuito de seguridad destruirá otros.
7. Si un circuito no puede fallar, fallará.
8. Un circuito costoso protegido por un fusible instantáneo, protegerá al fusible, quemándose primero.
REPARACIONES
1. Una vez quitado el último de los 20 tornillos de la tapa, para revisar el fusible, se descubrirá que el cable de alimentación estaba desconectado.
2. Una vez colocado el último de los 20 tornillos de la tapa; encontrara debajo del diagrama, el fusible que quitó para revisar.
3. La probabilidad de que determinado componente sea la causa del problema aumenta en forma proporcional a la dificultad para reemplazarlo y a su precio; e inversamente a su disponibilidad.
4. Si puede localizar la pieza dañada, no tendrá herramientas para sacarla. Cuando logre sacarla, en la tienda de repuestos le dirán que no la tienen, pero que está pedida. Cuando por fin la consiga, descubrirá que no estaba dañada y no necesitaba cambiarla.
5. Si un trabajo se ha hecho mal, todo lo que haga para mejorarlo sólo lo empeorara.
6. Cualquier pieza al caer rodará al rincón menos accesible del taller.
7. La facilidad de localización de una pieza que ha caído al suelo es directamente proporcional a su tamaño e inversamente a su importancia para la terminación del trabajo.
8. Una herramienta caerá siempre donde pueda hacer mayor daño. (También conocida como "Ley de la Gravedad Selectiva".)
9. Si tiene que comprobar, uno por uno, cierta cantidad de componentes de un circuito para localizar el que está defectuoso; ese será el ultimo de todos, sin importar el orden en que realice la comprobación.
10. Si es necesario retocar un ajuste, será el menos accesible.
11. De ser necesario el manual de servicio, no estará disponible.
12. Si dispone del manual de servicio, no lo necesitará.
13. Si consigue una fotocopia del diagrama, el problema se encuentra en la parte que quedo borrosa.
14. Los trabajos urgentísimos, y muy bien pagados, sólo llegan cuando usted ha aceptado un trabajo urgentísimo, pero mal pagado.
CLIENTES
1. El cliente que paga menos es el que más se queja.
2. El cliente que llama todos los días para preguntar si esta reparado su aparato, tardara 3 semanas en pasar a recogerlo cuando esté terminado.
3. Si hay dos maneras de pronunciar el nombre de un cliente, usted lo pronunciará de la que no es.
4. No importa cuanto les cobre, si no es gratis, siempre les parecerá caro.
5. El 50% de los usuarios de aparatos electrónicos solo lee las instrucciones después de haber estropeado el equipo con su uso indebido, el otro 50% ni aun así las lee.
GENERALIDADES
1. En un instrumento o dispositivo caracterizado por una cierta cantidad de errores en más y en menos, el error total será la suma de cada uno, sumados en el mismo sentido.
2. La probabilidad de un error tal en un circuito es directamente proporcional al daño que puede causar.
3. En todo error dado, la culpa nunca podrá ser determinada si más de una persona ha estado involucrada.
4. Cuando un error ha sido descubierto y corregido, se descubrirá que estaba bien desde el principio.
5. Si Usted es el cliente, una garantía de sesenta días es la promesa de que el aparato dejara de funcionar el día sexagésimo primero.
6. Si Usted es el responsable de la garantía, el aparato dejara de funcionar mucho antes.
CONCLUSION
Si algo puede ir mal, irá !! ....y será en el peor momento.
Si dos cosas pueden salir mal, ocurrirán al mismo tiempo.
Edsel Murphy
El hombre que desarrollo estos profundos conceptos es prácticamente desconocido.
Quizás a sido víctima de su propia ley.
ReinRaus escribió:Aprovecho para hacer un UP y darle un toque de gracia al hilo:
Las leyes de Murphy de la electrónica. Fuente: http://www.comunidadelectronicos.com/ar ... murphy.htm
ReinRaus escribió:Aprovecho el hilo para ver si alguien sabe como solucionar un problemilla con el software orcad layout:
Estoy en el diseño de una placa electrónica bastante compleja (doble cara) y el problema que se me presenta es que al rutear automáticamente el programa me pasa pistas debajo de los circuitos integrados y entre el espaciado de los pines de los integrados. Lo que quiero saber es si hay (y como hacerlo) alguna forma de decirle a Orcad que no me rutee pistas debajo de un integrado ni entre los pines de un integrado.
Os dejo una imagen que aclara más lo que quiero:
DemonR escribió:ReinRaus escribió:Aprovecho el hilo para ver si alguien sabe como solucionar un problemilla con el software orcad layout:
Estoy en el diseño de una placa electrónica bastante compleja (doble cara) y el problema que se me presenta es que al rutear automáticamente el programa me pasa pistas debajo de los circuitos integrados y entre el espaciado de los pines de los integrados. Lo que quiero saber es si hay (y como hacerlo) alguna forma de decirle a Orcad que no me rutee pistas debajo de un integrado ni entre los pines de un integrado.
Os dejo una imagen que aclara más lo que quiero:
No veo porque te tendrían que molestar esas pistas... pero bueno, en todo caso seguro que puedes poner algún rectangulo-dummy para que no se ruten por ahí.