Monza Classic 500 EF Turbo Legalizado

Fotos e Vídeos de Monza! Envie imagens do seu carro!
Rafaelo
MODERADOR
Mensagens: 10170
Registrado em: 13 Jan 2007, 10:32
Cidade: serra gaúcha
Estado: Rio Grande do Sul-RS
Modelo: Monza Hatch
Motor: 2.0
Ano: 1982
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por Rafaelo »

500EF escreveu: 24 Mai 2017, 13:38 Mas eu já escrevi de todo tipo de programas, desde todo o sistema aqui da empresa (DOS/Delphi/banco de dados SQL, PHP, etc), até montar e configurar os servidores (já passei por DOS/Lantastic, Win for workgroups, Win NT e depois fui para o linux, em 1998 - e fiquei nele, porque é o que eu gosto mais), com shell scripts para automatizar algumas tarefas, etc.
posso dizer que ja tenho alguma experiencia em programação, em 1995 quando tinha 15 anos quando a populaçao brasileira nem saiba oque era computador e essa febre toda que é hoje poluída e sem sentido, eu ja programava em DOS, em um XT e disquetao bolação, nao me lembro a linguagem talvez era COBOL ou BASIC mas pra mim era BASIC, o curso na epoca era super novidade ate mesmo o PC, imagina programar. me formei em 2002 algo mais realista e com logica intelectual ja formada, ae sim ja programava pra valer PASCAL, depois Delphi onde aprendi muito linguagem em alto nivel muito completa por sinal. alias vo usa-lo novamente pra montar o sofware <-> ECU. tambem aprendi Php,JScript,MSQL,etc, fiz redes tb mas nunca fui fundo nisso, ficou no curso técnico MEC de 2 anos em 2000

to gostando de linguagem de media nivel logico. C puro sem frescura com float da vida, so tem inteiro. fui aprender C agora, uns 5 anos pra cá com uso da eletronica ou C ou ASM e falta muito ainda, mas ja sei fazer alguma coisa.

linguagem em baixo nivel logico, eu me curvo pra um cara desse! vai ver oque é um ASM dae tu pode chamar ele de programador de verdade. uma vez tentei e desisti nao tem logica alguma aquilo puramente siglas e uma IF é uma tarefa complicado de fazer rsrsrsrs. hoje nos com essas IDE mastigado nao podemos reclamar. :oops:
500EF escreveu: 24 Mai 2017, 13:38 Só ainda não tinha tido tempo de me arriscar com programação voltada para microcontroladores. Já tinha tentado, uns 15 anos atrás, começar a estudar PIC, mas na época não era tão fácil como hoje achar informação na internet e tal...

E o arduino, como plataforma de desenvolvimento, simplifica bem as coisas. Claro que se for para algo profissional, é bom pensar em soluções mais robustas e confiáveis.
IDE mastigada essa do arduino que foi feito de proposito mesmo, os comando sao interpretadores do C puro, oque tu usou ali pra chamar a função ISR em C diretamente compilado e upado no MCU é cheio de instruçoes vetores e end de memoria, da uma olhada. ali tem atalhos pra memoria que nao estao nesse exemplo. os define por exemplo. define EEPROM_ATTR acessa um end da memoria do MCU tipo 0x250;

Código: Selecionar todos

#ifdef GCC_BUILD
#define EEPROM_ATTR __attribute__ ((section (".eeprom")))
#define INTERRUPT
#define ENABLE_INTERRUPTS __asm__ __volatile__ ("cli");
#define DISABLE_INTERRUPTS __asm__ __volatile__ ("sei");

void ISR_TimerOverflow(void) __attribute__((interrupt));
void ISR_Timer_Clock(void) __attribute__((interrupt));

#else
#define EEPROM_ATTR
#define INTERRUPT interrupt
#define ENABLE_INTERRUPTS asm cli;
#define DISABLE_INTERRUPTS asm sei;
#pragma CODE_SEG NON_BANKED /* Interrupt section for this module. 
                          Placement will be in NON_BANKED area. */

extern void near _Startup(void);       /* Startup routine */
interrupt void UnimplementedISR(void);

interrupt void ISR_VSS_TimerIn(void);
interrupt void ISR_TimerOverflow(void);
interrupt void ISR_Timer_Clock(void);
interrupt void ISR_Inj1_TimerOut(void);


typedef void (*near tIsrFunc)(void);
const tIsrFunc _vect[] @0xFF80 = {     /* Interrupt table */
        UnimplementedISR,                 /* vector 63 */
        UnimplementedISR,                 /* vector 62 */
        UnimplementedISR,                 /* vector 61 */
        UnimplementedISR,                 /* vector 60 */
        UnimplementedISR,                 /* vector 59 */
        UnimplementedISR,                 /* vector 58 */
        UnimplementedISR,                 /* vector 57 */
        UnimplementedISR,                 /* vector 56 */
        UnimplementedISR,                 /* vector 55 */
        UnimplementedISR,                 /* vector 54 */
        UnimplementedISR,                 /* vector 53 */
        UnimplementedISR,                 /* vector 52 */
        UnimplementedISR,                 /* vector 51 */
        UnimplementedISR,                 /* vector 50 */
        UnimplementedISR,                 /* vector 49 */
        UnimplementedISR,                 /* vector 48 */
        UnimplementedISR,                 /* vector 47 */
        UnimplementedISR,                 /* vector 46 */
        UnimplementedISR,                 /* vector 45 */
        UnimplementedISR,                 /* vector 44 */
        UnimplementedISR,                 /* vector 43 */
        UnimplementedISR,                 /* vector 42 */
        UnimplementedISR,                 /* vector 41 */
        UnimplementedISR,                 /* vector 40 */
        UnimplementedISR,                 /* vector 39 */
        UnimplementedISR,                 /* vector 38 */
        UnimplementedISR,                 /* vector 37 */
        UnimplementedISR,                 /* vector 36 */
        UnimplementedISR,                 /* vector 35 */
        UnimplementedISR,                 /* vector 34 */
        UnimplementedISR,                 /* vector 33 */
        UnimplementedISR,                 /* vector 32 */
        UnimplementedISR,                 /* vector 31 */
        UnimplementedISR,                 /* vector 30 */
        UnimplementedISR,                 /* vector 29 */
        UnimplementedISR,                 /* vector 28 */
        UnimplementedISR,                 /* vector 27 */
        UnimplementedISR,                 /* vector 26 */
        UnimplementedISR,                 /* vector 25 */
        UnimplementedISR,                 /* vector 24 */
        UnimplementedISR,                 /* vector 23 */
        UnimplementedISR,                 /* vector 22 */
        UnimplementedISR,                 /* vector 21 */
        UnimplementedISR,                  /* vector 20 */
        UnimplementedISR,                 /* vector 19 */
        UnimplementedISR,                 /* vector 18 */
        UnimplementedISR,                 /* vector 17 */
        ISR_TimerOverflow,                /* vector 16 */
        UnimplementedISR,                 /* vector 15 */
        UnimplementedISR,                 /* vector 14 */
        UnimplementedISR,                /* vector 13 */
        UnimplementedISR,                  /* vector 12*/
        UnimplementedISR,                 /* vector 11 */
        ISR_VSS_TimerIn,                 /* vector 10 ch 2*/
        ISR_Inj1_TimerOut,             /* vector 09 ch 1*/
        UnimplementedISR,             /* vector 08 ch 0*/
        ISR_Timer_Clock,                  /* vector 07 */
        UnimplementedISR,                 /* vector 06 */
        UnimplementedISR,                 /* vector 05 */
        UnimplementedISR,                 /* vector 04 */
        UnimplementedISR,                 /* vector 03 */
        UnimplementedISR,                 /* vector 02 */
        UnimplementedISR,                 /* vector 01 */
        _Startup                          /* Reset vector */
   };
#pragma CODE_SEG DEFAULT
   
#endif
ISR_VSS_TimerIn é a funçao que é chamada toda vez que acontece uma ISR igual teu arduino que tu fez mas sem esses blocos ae. ja vem prontinho.

programaçao de medio nivel é legal, mas tem que estudar e testar bastante. vale apena.

500EF escreveu: 24 Mai 2017, 13:38 Por exemplo, estes dias eu o usei para gerar sinais de disparo para testar umas bobinas de ignição na bancada. Se ele ficar muito perto da centelha, trava e você tem que apertar o reset...

Ambiente de desenvolvimento é uma coisa. Ambiente de produção, cheio de ruídos e interferências, temperatura, vibração, o buraco é beeeeeeeeeem mais embaixo. E tenho consciência disso...
EMI é oque mata qualquer projeto... lembro quando fiz o painel prototipo liguei ignição e a interferencia eletromagnetica vinha pelo ar e pelo condutor esses protoboard nao estao preparados pra isso. isolava com papel aluminio criando uma gaiola de faraday, melhorava mas vinha pelo condutor ainda... so criando PCB real pra isso.eu tenho como criar no lab, mas muitas vezes tem que mandar fazer e rezar que tuas tecnicas que estudou vao funcionar. e ai que entra as Versões e Revisões de PCB

Eng eletrica é algo bem complexo especialmente quando se trata desse tema em especial, eu uso o Saturn um CAD que ja te envia todos as formulas prontas. negocio da ate medo so mestrado,doutorado pra entender aquelas formulas. impedancia da trilha, resistencia, capacitancia de trilha, freq, isolamento, é muita regra e muita das vezes as regras nao da pra fazer 100%, é virtualmente impossivel. sem uma quebra de regra ao fazer uma PCB profissional. agora imagina um prototipo board cheio de antenas! resistencias! é natural dar problema, nem esquenta.

oque tu pode fazer é minimizar, limpar o sinal antes de entrar no MCU. existe algumas tecnicas pra isso mas precisa de um PCB pra acoplar o arduino. dae limpa muiiiiiittto o sinal. os fiozinho jumper é um emissor/ receptor de ruidos em potencia.

é por isso que os scope tem as ponta de prova desmontavel, quando queremos verificar um sinal de precisao, tira o born, deixa na agulha, e usar a perninha ground, que encurta o laço da antena ao minimo. o teu venho com isso, acredito que nao tenha usado pq so em PCB se usa. eu ja usei e continuo usando muito... é gritante a reduçao de ruidos fakes
PROecu - Injeções eletronica para monzas.
Avatar do usuário
500EF
MODERADOR
Mensagens: 6031
Registrado em: 24 Ago 2007, 17:13
Cidade: BH
Estado: Minas Gerais-MG
Modelo: Monza 500 EF
Motor: 2.0
Ano: 1990
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por 500EF »

Ali no teste foi só afastar um pouco o arduino que já resolveu. A interferência eletromagnética estava vindo pelo ar mesmo...

É que eu estava brincando de Tesla, abrindo o arco no ar, afastando o terra da ponta da vela, para testar.

Isso torna todo o ambiente próximo à centelha um verdadeiro inferno eletromagnético...

Eu estava filmando para documentar e até a câmera do meu celular despirocou também... quando ela não travava de vez, ficava cheio de "linhas horizontais" na imagem.

Tive que filmar mais de longe e depois dar um 'zoom' no PC... hehehe

Imagem
Eduardo Rettore
Monza Classic 500 EF - 2.0i MPFi
Turbo@ 1 bar-Legalizado.
Rafaelo
MODERADOR
Mensagens: 10170
Registrado em: 13 Jan 2007, 10:32
Cidade: serra gaúcha
Estado: Rio Grande do Sul-RS
Modelo: Monza Hatch
Motor: 2.0
Ano: 1982
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por Rafaelo »

nesse ambiente so com gaiola de faraday mesmo.

achei que tu tava captando um sinal de alta tensao do chaveamento, rpm via bobina. esse precisa fazer varios processos ate ter um sinal digital
PROecu - Injeções eletronica para monzas.
Avatar do usuário
500EF
MODERADOR
Mensagens: 6031
Registrado em: 24 Ago 2007, 17:13
Cidade: BH
Estado: Minas Gerais-MG
Modelo: Monza 500 EF
Motor: 2.0
Ano: 1990
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por 500EF »

Este era outro teste. Estava medindo os primários de diversas bobinas, com algumas opções de módulos.

E eu precisava de algo para gerar os pulsos com exatidão.

Até que o arduino se saiu bem na tarefa, tanto em manter a frequencia, quanto em manter o tempo de carga da bobina bem certinhos no osciloscópio.

Aqui um dos testes, gerando pulso (ondas quadradas de 5v) com frequência que corresponde a aproximadamente 2500rpm num 4 cilindros e com 2ms de duração (tempo de carga).

Depois eu fiquei variando os tempos de carga e observando o que acontecia em cada bobina.

Mais como oportunidade de aprendizado mesmo.

Imagem
Eduardo Rettore
Monza Classic 500 EF - 2.0i MPFi
Turbo@ 1 bar-Legalizado.
Rafaelo
MODERADOR
Mensagens: 10170
Registrado em: 13 Jan 2007, 10:32
Cidade: serra gaúcha
Estado: Rio Grande do Sul-RS
Modelo: Monza Hatch
Motor: 2.0
Ano: 1982
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por Rafaelo »

funciona, mas so pra coisas simples como essa. eu ja usei quando nao tinha meu gerador de ondas arbitraria. é minha melhor ferramenta ate antes que o scope. so pra ter uma ideia eu gero sinal fonico 60-2 tanto hall(sinal digital), quanto senoide(analogico). é um BK 4052 hj mesmo to usando ele pra gerar um sinal com exatos 100.000usec onda quadrada

sem isso eu nao tenho como trabalhar, uso muito ele. alias, se tu quer te aventurar em MCU comece a pensar em comprar um. mexer nisso sem um gerador digital é praticamente impossivel ter bons resultados.

--------------

a titulo de curiosidade minha bobina e dos clientes ele roda a 4ms DIS fulltime ate o corte, nao esquenta, nao pipoca,nao esquenta(anormal) os IGBTS muito longe do limite, e fase arranque 8ms é o maximo apartir desse ponto acontece acontece um fenomeno que esqueci qual era rsrsrs viu so, o cara esquece... a bobina tem um limite de carga apartir dele ela passa a ficar estavel nao ganha mais potencia de saida e começa a decair inclusive.

cara! meu sonho de consumo é ter uma prova indutiva e acoplar no scope mas ta longe do meu orçamento e eu muitas vezes preciso disso.
PROecu - Injeções eletronica para monzas.
Avatar do usuário
500EF
MODERADOR
Mensagens: 6031
Registrado em: 24 Ago 2007, 17:13
Cidade: BH
Estado: Minas Gerais-MG
Modelo: Monza 500 EF
Motor: 2.0
Ano: 1990
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por 500EF »

Saturação... hehehe.

Eu andei paquerando uma ponta indutiva dozoios puxadinhos... Marca hantek. Obiviamente não é uma tektronix, mas é bem acessível.

https://pt.aliexpress.com/item/Hantek-H ... 27a3d6e87c

Tenho uma ponta comum, X100, (uso para ler primário de bobina com módulo mais forte, poque senão o pico passa da tela) da mesma marca e funciona bem direitinho.

Um gerador de sinais também está na minha lista... Realmente é algo que ajuda muito nos testes em bancada. Mas ando meio sem tempo ($$$) para isso ultimamente... kkkkkk
Eduardo Rettore
Monza Classic 500 EF - 2.0i MPFi
Turbo@ 1 bar-Legalizado.
Rafaelo
MODERADOR
Mensagens: 10170
Registrado em: 13 Jan 2007, 10:32
Cidade: serra gaúcha
Estado: Rio Grande do Sul-RS
Modelo: Monza Hatch
Motor: 2.0
Ano: 1982
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por Rafaelo »

500EF escreveu: 25 Mai 2017, 14:45 Saturação... hehehe.
isso, o campo magnetico satura. achei
http://www.useasydocs.com/theory/setdwell.htm

ja viu prova indutiva da tektronix? custa mais caro que o scope rsrsrsrs. nao sei pq mas tudo bem... ate ja me acostumei, se fosse la fora ja teria uma na gaveta. essa nao conhecia, eu vi da mesma marca pra PCB e uso geral ate fiquei interessado mas nao tive vontade de comprar e nao prestar.


hj ta tudo caro, a dois anos atras paguei 1750,00 esse arbitrário... hoje deve ta bem mais que isso.


------------------------------------


meu sistema está operando e funcionando com exatidão precisa!
* distancia
* velocidade

tudo em escala decimal, ficou muito bom. nao tem erro algum na distancia, vo ve se faço algum video disso e posto aqui.

o unico problema que tenho é que meu DEBUG e o BDM nao esta coperando, nao consigo fazer breakpoint e esta tendo um conflito, eu queria por um cronometro interno pra mostrar a precisao, consegui fazer na mao e dedao bateu certinho com o calculo. mas isso nao tem nada a ver com o codigo e a ECU. tive que pedir ajuda aos universitarios da NXP rsrsrsrs. em modo simulado MCU nao da problema vai saber...
PROecu - Injeções eletronica para monzas.
Rafaelo
MODERADOR
Mensagens: 10170
Registrado em: 13 Jan 2007, 10:32
Cidade: serra gaúcha
Estado: Rio Grande do Sul-RS
Modelo: Monza Hatch
Motor: 2.0
Ano: 1982
Combustível:: Etanol
Injeção: MPFi

Re: Monza Classic 500 EF Turbo Legalizado

Mensagem não lida por Rafaelo »

terminei as filmagem essa semana, ali explico tudo como é o sistema funcionando via tempo e acumulação de pulsos.
o sistema consegue capturar diferenças de incriveis 1mm. isso é muito preciso. tu vai entender pq falei em usar tempo junto em vez de contagem de pulsos apenas.

vale apena ver tudo. tem 1h de filmagem acumulada.
https://www.youtube.com/watch?v=T8AUEtXuncQ
PROecu - Injeções eletronica para monzas.
Responder