<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Tak jsem vyrobil vlastni cidlo, jak
      jsem nasel v odborne literature tak Halluv snimac s vychylenym
      efektem, proste jsem vzal linearni snimac a k nemu dal magnet, to
      podlozil sroubem (vse ve vytistenem pouzdru) a pro sichr je ta
      dutina zalita epoxidem.</div>
    <div class="moz-cite-prefix">Cekal jsem vic, signal ma rozsah 1-4V,
      uzitecny je cca 100mV.</div>
    <div class="moz-cite-prefix">Udelal jsem prvni verzi s prostym
      komparatorem, to nejak fungovalo a nastaveni dost kriticke...</div>
    <div class="moz-cite-prefix">Takze jsem se nebal jit do chytreho
      snimace, kdyz jsem nasel kit ATTINY416, aby se to automaticky
      adaptovalo, jen kousek chybi k umele inteligenci ale do 4kB flash
      se zase uplne zazraky nevejdou, prekvapilo me uz, ze tam je
      printf, adc, seriak a 64bitova aritmetika i kdyz uz musi byt
      optimalizace na velikost kodu.</div>
    <div class="moz-cite-prefix">Zatim 2 pokusne jizdy OK, uvidime, co
      udela teplota.Zatim trosku dost bastl ;-) Puvodni snimac a
      chladici sprej vozim s sebou, da se to za par minut vymenit a
      studeny jeste funguje, jak jsem psal, staci nastartovat a pak uz
      neni potreba.<br>
    </div>
    <div class="moz-cite-prefix"><a class="moz-txt-link-freetext" href="https://www.hascomp.cz/snimac2.jpg">https://www.hascomp.cz/snimac2.jpg</a></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">a kod:</div>
    <div class="moz-cite-prefix">#include <atmel_start.h><br>
      #include <stdio.h><br>
      <br>
      adc_result_t adc;<br>
      uint16_t adc_cnt;<br>
      uint64_t max_v;<br>
      uint64_t min_v;<br>
      bool adc_initialized = false;<br>
      bool pulse_st = false;<br>
      <br>
      #define FILT_UP    10<br>
      #define FILT_DN    300<br>
      <br>
      void adc_service ()<br>
      {<br>
          adc = ADC_0_get_conversion(ADC_MUXPOS_AIN11_gc) >> 6;<br>
          adc_cnt++;<br>
          uint64_t adc_curr = adc;<br>
          adc_curr <<= 32;<br>
          adc_curr |= 0x80000000;    // 32.32 fixed point extension<br>
          if (!adc_initialized)<br>
          {<br>
              max_v = adc_curr;<br>
              min_v = adc_curr;<br>
              adc_initialized = true;<br>
          }<br>
          if (adc_curr > max_v)<br>
          {<br>
              max_v = (max_v*(FILT_UP-1) + adc_curr)/FILT_UP;        <br>
          }    <br>
          else<br>
          {<br>
              max_v = (max_v*(FILT_DN-1) + adc_curr)/FILT_DN;<br>
          }<br>
          if (adc_curr < min_v)<br>
          {<br>
              min_v = (min_v*(FILT_UP-1) + adc_curr)/FILT_UP;<br>
          }<br>
          else<br>
          {<br>
              min_v = (min_v*(FILT_DN-1) + adc_curr)/FILT_DN;<br>
          }<br>
          if (max_v - min_v > 10*(1ULL << 32))<br>
          {<br>
              if (pulse_st)<br>
              {<br>
                  if (adc_curr < min_v + (max_v - min_v)/3)<br>
                  {<br>
                      GPIO_PULSE_set_level(false);<br>
                      pulse_st = false;<br>
                  }<br>
              }<br>
              else<br>
              {<br>
                  if (adc_curr > max_v - (max_v - min_v)/3)<br>
                  {<br>
                      GPIO_PULSE_set_level(true);<br>
                      pulse_st = true;<br>
                  }<br>
              }<br>
              <br>
          }<br>
          else<br>
          {<br>
              GPIO_PULSE_set_level(false);<br>
              pulse_st = false;<br>
          }<br>
          <br>
          <br>
      }<br>
      <br>
      <br>
      void delay()<br>
      {<br>
          volatile uint16_t i;<br>
          for (i=0; i<200; i++)<br>
          {<br>
              adc_service();<br>
          }<br>
      }<br>
      <br>
      int i;<br>
      <br>
      int main(void)<br>
      {<br>
          /* Initializes MCU, drivers and middleware */<br>
      //    memset (0x3f00, 0xaa, 256);<br>
          atmel_start_init();<br>
      <br>
          /* Replace with your application code */<br>
          while (1) {<br>
              GPIO_LED_set_level(true);<br>
              delay();<br>
              GPIO_LED_set_level(false);<br>
              delay();<br>
              <br>
              printf ("ADC %04x %04x %04x\r\n", adc,
      (uint16_t)(min_v>>32), (uint16_t)(max_v>>32));<br>
      //        USART_0_write('x');<br>
          }<br>
      }<br>
      <br>
    </div>
    <div class="moz-cite-prefix">Dne 04.11.2024 v 20:49 Jaroslav Buchta
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:50344203-7846-4b69-9554-2d157b5afe53@hascomp.cz">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div class="moz-cite-prefix">Tak dnes jsem si s tim hral, kryt
        rozvodu jsem sundal a snima to bokem, kolo ma na pulce obvodu
        dovnitr vystupek, asi 2mm. <br>
      </div>
      <div class="moz-cite-prefix">Cidlo skutecne selhava, bud tam je
        symetricky 0/12V obdelnik nebo stabilne nejakych 8V, reaguje na
        poklep.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Objednal jsem za par stovek 2
        vizualne zpusobila cidla, ktera by se snad dala nejak znasilnit
        a pro sichr linearni hallovu sondu, ke ktere dam komparator,
        magnet a podlozim to plechem. To by asi mohlo fungovat po
        vhodnem nastaveni prahu trimrem?</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Dne 12.10.2024 v 20:30 Jaroslav
        Buchta napsal(a):<br>
      </div>
      <blockquote type="cite"
        cite="mid:cd9cf704-23d2-4ec8-833e-fdc19d50822f@hascomp.cz">
        <meta http-equiv="Content-Type"
          content="text/html; charset=UTF-8">
        <div class="moz-cite-prefix">Dik za postrehy,</div>
        <div class="moz-cite-prefix">signal a piny muzu omerit, jen ted
          doma nemam osciloskop, to cidlo vetsinou funguje.</div>
        <div class="moz-cite-prefix">Jak to je mechanicky zatim nevim,
          musel bych podlozit motor a sundat drzak, aby sel sundat kryt
          rozvodu a kola vacky. <br>
        </div>
        <div class="moz-cite-prefix">Aktualne by me asi nejvic zajimalo,
          jak rychle reaguji na zmeny bezne indukcni snimace za par
          stovek, to by asi byla nejjednodussi cesta, vytisknout nejaky
          mechanicky adapter, udelat prizpusobeni polarity a urovni a
          hotovo...</div>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix">Dne 12.10.2024 v 19:52 Jiří Majzlík
          Nemeček napsal(a):<br>
        </div>
        <blockquote type="cite"
          cite="mid:10931363-8993-4a6b-bc88-295014826a53@centrum.cz">
          <meta http-equiv="Content-Type"
            content="text/html; charset=UTF-8">
          <p>U mého Nissanu je tam hallovka + nějaká elektronika. Na
            špičce magnet. Všechno zalité v pryskyřici, netečné k mně
            dostupným rozpouštědlům. Vadný snímač na vačkovce se mi
            choval přesně jak popisujete. Bez něj nešlo nastartovat,
            jeho odpojení za běhu pak už nemělo vliv.</p>
          <p>Zkuste najít dílenský manuál k tomu motoru, měl by tam být
            pinout a očekávaný správný průběh signálu z čidla. <br>
          </p>
          <p>Já jsem se s tím dost natrápil, přestože ty moje čidla se
            dají normálně koupit. V průběhu let jsem je měnil
            několikrát, ale ať jsem koupil originál Denso, nebo to
            nejlevnější z Ali (např. <a class="moz-txt-link-freetext"
href="https://vi.aliexpress.com/item/1005004054605529.html"
              moz-do-not-send="true">https://vi.aliexpress.com/item/1005004054605529.html</a>),
            ke všem jsem musel dobastlit invertor. A žádné mi nevydrželo
            déle než pár let. Teď o prázdninách to zdechlo zase, ale
            protože to auto už má i další problémy, které nemám sílu
            řešit, půjde zřejmě do šrotu. <br>
          </p>
          <p>No ale zpět. Co jsem tak zkoumal průběhy, výstup čidla u
            toho Nissanu je pravoúhlý signál s amplitudou 12 V a
            odpovídá tomu, jak se před čidlem míhají výstupky na kódovém
            kolečku vačkovky. Když jsem to kdysi zkoumal, dospěl jsem k
            závěru, že to je standardní řešení napříč mnoha výrobci. 2
            piny - indukční čidlo, 3 piny - napájení, zem, signál. S
            tím, že některá čidla mají napájení jen 5V (čemuž odpovídá i
            výstupní amplituda) a některá čidla mají výstup aktivní v L,
            jiná v H.</p>
          <p>Tolik má nepříliš objevná zjištění.</p>
          <p>Kdybych to čidlo nemohl koupit, zkusil bych sehnat takové,
            které mi tam bude mechanicky pasovat a případné detaily (12
            vs 5 V, inverze signálu) bych dořešil pár tranzistory na
            univerzální DPS.</p>
          <p>Mimochodem, jaký je rok výroby toho Vašeho Meganu?<br>
          </p>
          <p>JMN<br>
          </p>
          <p><br>
          </p>
          <div class="moz-cite-prefix">Dne 12.10.2024 v 17:46 Jaroslav
            Buchta napsal(a):<br>
          </div>
          <blockquote type="cite"
            cite="mid:cac00607-671a-491d-8405-fcbbeacf1501@hascomp.cz">
            <meta http-equiv="content-type"
              content="text/html; charset=UTF-8">
            <p>Vi nekdo, jak je to obvykle udelane, kdyz se ruzne pise,
              ze je tam Hall sensor?</p>
            <p>Je to tento <a
href="https://eurofrance.cz/senzor-impulsu-original-renault-megane-laguna-20-ide-8200156362.html"
                moz-do-not-send="true">Czujnik Położenia Wału Megane 2.0
                IDE 8200156362 Oryginał Renault - Kupte si nyní!
                (eurofrance.cz)</a> a sehnat se asi uz neda (Megane
              cabrio 2.0 IDE)</p>
            <p>On normalne funguje ale nekdy proste auto nejde
              nastartovat a pak zase za cca pul hodiny jde ale vcera
              stavkovalo pres noc u Billy coz uz mi trosku vadi.
              Samozrejme nevim jiste, ze je to timhle snimacem ale na
              klikovce uz jsem vymenil druhy (puvodne byl opravdu
              spatny) a tady se to chova tak, ze kdyz ho odpojim v
              klidu, nenastartuju, kdyz za behu, tak motor v klidu bezi
              dal, takze se to chova podobne jako v pripade poruch, za
              jizdy to nikdy nezdechlo, ale nekam prijedu, vypnu a uz
              nenastartuju... Taky to uz parkrat chytlo asi nejak se
              spatnym casovanim, motor si nejak kuckal ale nejel, az po
              restartu.<br>
            </p>
            <p>Jde mi o to, ze bude asi jedina moznost snimac vyrobit,
              je tam na konci u te plosky nejaky magnet, tak
              predpokladam, ze je tam nejaky magneticky okruh a v nem
              hall sensor? Kuchat se mi zatim nechce, vetsinu casu
              funguje. <br>
            </p>
            <p>Jeste me napadlo nahradit to normalnim indukcakem, ale
              ten bude asi pomaly? To by ale pri startu nemuselo vadit a
              pak uz to asi nema vliv a casuje se podle klikovky, ten
              snimac je tam zrejme jen proto, aby se sesynchronizoval
              cyklus 4 taktu.<br>
            </p>
            <p>A nakonec vzit signal ze snimace klikovky (to je ale
              osklive analogove, jen civka a magnet, 2 piny) a simulovat
              snimac vacky, s tim, ze by se to pri kazdem startu nahodne
              nastavilo na prvni nebo druhy pulz a tim padem by to melo
              jit na par pokusu nastartovat...</p>
            <p><br>
            </p>
            <p>Je to auto, co pujde v lete do srotu ale v zime bych ho
              rad jeste dojezdil...<br>
            </p>
            <br>
            <fieldset class="moz-mime-attachment-header"></fieldset>
            <pre wrap="" class="moz-quote-pre">_______________________________________________
HW-list mailing list  -  sponsored by <a
            class="moz-txt-link-abbreviated" href="http://www.HW.cz"
            moz-do-not-send="true">www.HW.cz</a>
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
            href="mailto:Hw-list@list.hw.cz" moz-do-not-send="true">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext"
            href="http://list.hw.cz/mailman/listinfo/hw-list"
            moz-do-not-send="true">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
          </blockquote>
          <br>
          <fieldset class="moz-mime-attachment-header"></fieldset>
          <pre wrap="" class="moz-quote-pre">_______________________________________________
HW-list mailing list  -  sponsored by <a
          class="moz-txt-link-abbreviated" href="http://www.HW.cz"
          moz-do-not-send="true">www.HW.cz</a>
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
          href="mailto:Hw-list@list.hw.cz" moz-do-not-send="true">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext"
          href="http://list.hw.cz/mailman/listinfo/hw-list"
          moz-do-not-send="true">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
        </blockquote>
        <p><br>
        </p>
      </blockquote>
      <p><br>
      </p>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre wrap="" class="moz-quote-pre">_______________________________________________
HW-list mailing list  -  sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>