CPLD, är det rätt val för detta?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Johan.o
EF Sponsor
Inlägg: 2392
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

CPLD, är det rätt val för detta?

Inlägg av Johan.o »

Hej!

Jag har ett problem som jag behöver lösa.
Uppgiften är att övervaka en signal, som är en 50KHz digital signal, med 50% Dutycycle.
Jag vill kunna detektera om signalen avviker mer än uppsatta gränsvärden, vad gäller ton resp. toff.
Tänken är om detta händer behöver en logisk utgång aktiveras, så snabbt som möjligt.
typ inom 50ns från det att avvikelsen upptäcktes.

Önskvärt är att den har internt minne, robust (Får inte "hänga" upp sig utan måste alltid fungera) ,
kräver så lite kringkretsar som möjligt. Och är billig (<10kr).

Skulle en CPLD vara ett passande val för detta?
Användarvisningsbild
adent
Inlägg: 4293
Blev medlem: 27 november 2008, 22:56:23
Ort: Utanför Jönköping
Kontakt:

Re: CPLD, är det rätt val för detta?

Inlägg av adent »

Jaaa, det tror jag nog. Tiderna låter klart rimliga för en CPLD. En liten MCU får ju tufft
med 50ns-kravet.

//Mikael
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: CPLD, är det rätt val för detta?

Inlägg av Andax »

Definitivt skulle det funka med en CPLD. Det blir nog mindre än 30 rader vhdl kod (under förutsättning att toleransgränserna är konstanta och inte behöver uppdateras dynamiskt).

Vet inte om priser dock. 10 kr är inte mycket. Gissar att det är totalkostnaden du menar.
guckrum
Inlägg: 1989
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: CPLD, är det rätt val för detta?

Inlägg av guckrum »

50kHz med 50% duty cycle blir 10us per halvperiod.
Samplar du detta i till exempel 20MHz har du en
samplingsperiod på 50ns, dvs 200 sampel per halvperiod.
Det är den upplösningen du har att spela med om du inte
väljer att klocka fortare (vilket i och för sig är helt rimligt.)

Det låter som en eller ett par räknare med komparator,
en typisk CPLD applikation. Skicka insignalen genom några
extra flipflopar för att minimera risken för latch-up om du
latchar en asynkron signal.

10:- är inte mycket pengar, du måste ha oscillator osv också?
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: CPLD, är det rätt val för detta?

Inlägg av victor_passe »

En liten µC borde väll klara detta tror jag.
Anta 20-30MIPS och att man pollar sina räknare så man slipper interrupt overheaden.
Lär räcka med ca 5st asm instruktioner eller så för att avgöra om pulsen är inom intervall eller inte.
Det blir iof en stund. 5/25MIPS=0.2µS. Det är ju faktiskt 4 gånger ifrån dina krav.
Så 50nS blir nog svårt. Men en CPLD/FPGA lär det inte vara några problem med.
Johan.o
EF Sponsor
Inlägg: 2392
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Re: CPLD, är det rätt val för detta?

Inlägg av Johan.o »

Andax: Du verkar ha insikt, har du sysslat mycket med CPLD'er?
Med kostnaden menar jag vad själva CPLD'en får kosta. Den ska in på ett större kort med andra saker på..
Sedan är jag inte så medveten vad som behöver finnas runt den, bortsett från bra reglerad matningsspänning.
Brukar enklare CPLD'er ha mer än en spännings-rail, startar dom upp av sig själva utan krångel?

guckrum: Jag antar att dom flesta modernare CPLD'er har en inbyggd oscillator?
Användarvisningsbild
13th.Marine
EF Sponsor
Inlägg: 7311
Blev medlem: 31 december 2004, 16:26:37
Ort: Trelleborg

Re: CPLD, är det rätt val för detta?

Inlägg av 13th.Marine »

En räknare som nollas varje gång du går från hög till låg, och hinner den räkna tillräckligt långt så hissar den en flagga?
Johan.o
EF Sponsor
Inlägg: 2392
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Re: CPLD, är det rätt val för detta?

Inlägg av Johan.o »

13th.Marine: Jag har redan byggt upp en "diskret" lösning med 10ns komperatorer och en hög grindar, för att testa principen som fungerar. Men det blir väldigt stort och dyrt. Dessutom är det svårt att realisera uppgiften till 100% med "diskreta"
grindar, för det blir väldigt komplext, och timingproblem då 74HCT inte alltid är så snabba.

Men din ide var lite annorlunda än min, fast den upptäcker inte för korta pulser..(?)

Så någon form av programmerbar logik är det som gäller.
Får man ner något på en så liten yta blir det även mer robust och störtåligt.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: CPLD, är det rätt val för detta?

Inlägg av Andax »

Mycket är ett mycket relativt ord. Jag har gjort projekt med CPLDer (Xilinx). Nu är det några år sedan, och jag håller inte på med så extremt kostnadskänsliga konstruktioner, så priset vet jag inte.

Ansätt att du kör en CPLD på 40 MHz => 25 ns cykeltid
Du har en insignal: "input"
en signal prev_input
en signalvektor counter (9 bitar borde räcka)
en utsignal error

(sedan ska du kanske ha kört input genom några vippor så att man blivit av med ev metastabilitet)
Koden blir ju väldigt enkel, här i vhdl kod. (obs har inte syntat den så det kan finnas syntaktiska fel mm)

Kod: Markera allt

process (clk)
begin
  if rising_edge(clk) then
    if reset = '1' then
      prev_input <= input;
      error <= '0';
      counter <= 0;
    else
      if prev_input = input then
        if counter > MAX_ALLOWED
          error <= '1';
        else
          counter <= counter + 1;
        end if;
      else      --prev_input != input
        if counter < MIN_ALLOWED or counter > MAX_ALLOWED then
          error <= '1';
        else
          error <= '0';
        end if;

        counter <= 0;
      end if;  --if prev_input = input then

      prev_input <= input;

    end if;  --if reset = '1' then
  end if;  --if rising_edge(clk) then
end process;
Första if-satsen med MAX_ALLOWED kan tas bort om man vet att räknaren alltid räcker till, dvs att man aldrig riskerar få överslag i räknaren.

EDIT: kompletterade koden med lite process och clk grejer
Johan.o
EF Sponsor
Inlägg: 2392
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Re: CPLD, är det rätt val för detta?

Inlägg av Johan.o »

Intressant, tack för tipsen! :)

Det blir en CPLD. Men jag måste nog undersöka prisbilden lite mer.
Visade sig att en på jobbet också hade lite koll på VHDL programmering.
ds77
Inlägg: 2484
Blev medlem: 24 juli 2008, 09:38:07
Ort: småland

Re: CPLD, är det rätt val för detta?

Inlägg av ds77 »

De mindre coolrunner II kommer (precis) under din gräns, iaf på digikey.
Skriv svar