Gå til innhold

kurant

Medlemmer
  • Innlegg

    65
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av kurant

  1. Det finnes en del raskere adder-arkitekturer enn den tree-lookahead utgaven du har valgt nå, men jeg har ikke boken som beskriver disse foran meg for øyeblikket. jeg kan ta en titt når jeg kommer på skolen i morgen.

     

    Bruker dere boken "CMOS VLSI design" på ntnu? isåfall kan du slå det opp der.

  2. Ja kan selvsagt være av en noe høyere sortering men det vil ikke være noen stor forskjell! :)

    Eneste forskjell er vel ett hakk eller ett halvt hakk høyere MP :)

    6459107[/snapback]

    Kvalitéten på kjernen er høyere så det blir mindre varmeutvikling ved samme frekvens som med "dårligere" kjerner. Forskjellen er ikke så veldig stor.

    6459206[/snapback]

     

    Jeg må nok korrigere deg litt der. Årsaken til at prosessorer har individuelle avvik er ikke hvor mye varme de utvikler. Varmeutvikling er i hovedsak en funksjon av frekvens og forsyningsspenning, ikke av prosessparametre.

     

    Årsaken til at prosessorene får forskjellige hastigheter er at man har lokale prosessvariasjoner som fører til at de individuelle transistorene får varierende styrke, som et resultat av at kanalresistansen varierer.

    Dette fører igjen til at ankomsttidene til de forskjellige signalene internt i prosessoren varierer. Hvis ankomsttiden til to signaler varierer tilstrekkelig, kan man oppleve at registre antar en ugyldig tilstand, en såkalt race condition, og pcen krasjer.

  3. hvis du bare skal regenerere en bitstrøm er det meningsløst å bruke schmitt-triggere. det enkleste (og beste) er å bare bruke invertere. Mener å huske at det finnes buffer-invertere spesielt til dette formålet. Du må selvfølgelig sjekke at hastigheten er god nok.

    Nå skriver du ikke hvilke frekvenser du opererer på, men delta sigma modulatorer har som regel ganske høy frekvens. hvis det er et audio-signal du holder på med, er det vanlig å ha en bitrate på godt over 1MHz. Tror ikke vanlige 74xx kretser klarer dette.

     

    Alternativt kan du lage en komparator med en rask opamp med tilstrekkelige driveregenskaper. legg VDD/2 V på negativ inngang, og bitstrømmen på positiv.

     

    edit: ok leste resten av postene dine nå.

    hvis du bare har bipolare transistorer kan du bare koble de som en inverter, felles base på NPN og PNP, med PNP mot vcc og NPN mot gnd. igjen må du få tak i datablader for å undersøke om de er raske nok.vær obs på at bipolare transistorer er strømstyrt og ikke spenningsstyrt, så de vil belaste modulatoren din. husk å bruke seriemotstand på gate.

  4. Du kan seriekoble kondensatoren med en motstand, og påføre denne seriekoblingen en likespenning. så setter du et voltmeter over kondensatoren og noterer hvor lang tid det går før spenningen over denne er 63% av full spenning du påtrykker.

     

    Verdien på kondensatoren er da gitt av C=T/Rs hvor T er tiden du målte og Rs er motstanden i serie. Tar det for kort tid til å måle tiden nøyaktig kan du bruke en større Rs, men pass på at den ligger mye lavere enn den indre resistansen i voltmeteret.

  5.  

    å lage en diskret regulator som dette er jo fult mulig, men jeg har et problem og det er med hvordan jeg laga viftekontrollen... Jeg lager PWM til viftene i software (fordi jeg ville ha flere PWM kanaler enn den hadde i HW), men den bruker MYE CPU-tid på å lage denne PWMen (ca 2/3). Pga dette kan det hende at min T (samplingstid) blir for lang til at jeg kan lage en regulator som fungerer bra nok... men temperaturvariasjonene er jo ikke så raske så det trenger ikke være noe problem. Har ikke regna noe på det...

    Hvilken samplingstid bruker du?

     

    6285251[/snapback]

     

    Software PWM høres ikke videre praktisk ut, ser for meg at du får store problemer med timingen når du skal kjøre andre tasks i tillegg.

     

    har enda ikke fått målt dynamikken i systemet som skal kjøles, så vet ikke nøyaktig hvilken sampletid jeg ender opp på. Regner med det blir i størrelsesorden 100ms.

  6. Jeg laget en frekvensteller med visning på to 7-segmentdisplayer en gang. den består av to 74190 som teller fra 0-9, en 74373 som databuffer, og to 74247 som displaydrivere. Kretsen ble opprinnelig laget for å måle pulsfrekvensen på en laser.

    signalet clk som kommer inn fra høyre må du legge høy hvert sekund for at displayene skal vise frekvens i Hz

     

    Tellepulsene slenger du inn på port 14 på U7.

     

    frekvensteller.png

  7. Regner med dere bruker balchen sin bok i reguleringsteknikk? han har en god beskrivelse av diskrete regulatorer i kapittel 11.

     

    Jeg holder for øyeblikket på med en PID regulator for et TEC-element. Du må gjerne ta en titt på koden hvis du ønsker.

     

    
    void TEC_control() {
    
     //---  parameter and variable assignment ----
    const static volatile uint16_t *Ti = (uint16_t *) (PARAM_BASE_ADR + TCTRL_TI); //integrator time constant
    const static volatile uint16_t *Td = (uint16_t *) (PARAM_BASE_ADR + TCTRL_TD); //derivator time constant
    const static volatile uint16_t *Kp = (uint16_t *) (PARAM_BASE_ADR + TCTRL_KP); //gain
    const static volatile uint16_t *Ts = (uint16_t *) (PARAM_BASE_ADR + TCTRL_TS); //sampletime
    
    
    const uint16_t *SHTempSet  = (uint16_t *) (PARAM_BASE_ADR + SHTEMP_SET);
    uint16_t       *SHTempRead = (uint16_t *) (PARAM_BASE_ADR + SHTEMP_READ);
    
    int *LastControllerOutput = (int *) (PARAM_BASE_ADR + CTRL_OUT); 
    
    short int       *TEC_Out = (short int *) (PARAM_BASE_ADR + TEC_OUT);
    
    int            TempError[3];
    
       
       TempError[0] = ( SHTempRead[0] - *SHTempSet) >> 2;
       TempError[1] = ( SHTempRead[1] - *SHTempSet) >> 2;
       TempError[2] = ( SHTempRead[2] - *SHTempSet) >> 2;
       
      
                           
    
    //  ------------ begin control algorithm ----------------------
    
    int ControllerOutput = *LastControllerOutput;
          
    //proportional term
     ControllerOutput += (TempError[0] * *Kp >> 8);   
     ControllerOutput -= (TempError[1] * *Kp >> 8);
      
          
    //integral term
     if((*Ti < INTEGRATOR_TC_MAX) && (*Ti > 0))               
       if( !((ControllerOutput > 254) && (TempError[0] > 0)) && 
           !((ControllerOutput < 1) && (TempError[0] < 0)) ) 
         ControllerOutput +=  (TempError[0] * *Kp >> 8) * (*Ts)/(*Ti);    
    
    //derivative term       
     if(*Td > 0) 
     {
      ControllerOutput += (TempError[0] * *Kp >> 8) * (*Td)/(*Ts);
      ControllerOutput -= (TempError[1] * *Kp >> 8) * (2 * (*Td)/(*Ts));
      ControllerOutput += (TempError[2] * *Kp >> 8) * (*Td)/(*Ts);
      }
          
     *LastControllerOutput = ControllerOutput;
    
    //  ------------ end control algorithm ----------------------   
           
     
    //shift the temperature readings
     SHTempRead[2] = SHTempRead[1];
     SHTempRead[1] = SHTempRead[0];
           
     
     
     /*clamping output between 0 and 255 */
     if(ControllerOutput > 254)  *TEC_Out = 255;
     else if(ControllerOutput < 1) *TEC_Out = 0;
     else *TEC_Out = ControllerOutput;
    
    
     printf("Time: %u, Output: %d, TEC out:%d\n",clock(), ControllerOutput, *TEC_Out);  
    
    
    }
    

     

     

    En pingpong-regulator fungerer som en termostat (blir omvendt da). Fullt pådrag ved for høy temperatur, og null ved for lav temperatur.

     

    Vet forøvrig hvordan det er med ufullførte prosjekter, jeg har harddisken full av dem selv :)

  8. peltier-elementer er notorisk vanskelig å regne på, siden de er, som sagt av flere her, svært ulineære. Et peltier-element har hovedsak 3 varmetransportmekanismer:

     

    peltier-effekten:

    Det er denne som transporterer varme fra den kalde til den varme siden når elementene blir påtrykt spenning. dette er gitt av a*I, hvor a er seebeck konstanten, som for å gjøre det hele vanskeligere, er sterkt avhengig av temperatur, og I er strøm.

     

    konduksjon:

    i likhet med alle andre materialer, vil varme transporteres fra den varme til den kalde siden av elementet. Dette gjør naturligvis elementet mindre effektivt.

     

    selvvarming:

    det går som regel høy strøm gjennom peltier-elementet, og dette fører til oppvarming. effekten er gitt av P=U^2/R hvor R er resistansen i elementet. denne er også avhengig av temperatur.

     

    For å oppnå optimal varmetransport må man balansere alle disse tre transportmekanismene slik at peltier-effekten blir maksimal, og de to andre minimale. siden alle varmetransportmekanismene er funksjoner av temperaturen, i en grad som er vanskelig å modellere helt eksakt, får vi noen stygge differensialligninger jeg ikke unner noen hverken å sette opp eller å løse.

     

    Det beste er nok å høre på erfaringene fra folk som har gjort dette tidligere, og eksperimentere litt selv for å maksimere varmetransporten.

  9. Hmm ineressant. Der ut til at du har mer inngående innsikt i emnet, men derfor vil jeg gjerne også spørre deg om noe: Slik som du forklarer det her så burde vi se økende spenning på ktympede chips, men minket effektforbruk ikke sant? Men er ikke trenden i praksis heller vært at lavere nm har hatt lavere standard spenninger?

     

    -Stigma

    6275950[/snapback]

     

     

    Det er mulig jeg uttrykte meg litt uklart, men poenget mitt var at lavere pitch (færre nm om du vil) gjør at kretsen tåler lavere spenning. man skal altså forvente å se en lavere spenning etterhvert som pitchen blir mindre, noe som også er tilfelle som du sier.

     

    Du hadde mye rett i det du sa opprinnelig, jeg ville bare påpeke at lavere pitch ikke gjør det mulig å bruke lavere spenninger som du sa, men gjør det nødvendig. det er ikke noe problem å kjøre lavere spenning i større prosesser, men det har ikke noe for seg siden kretsen blir treig og følsom for støy.

  10. Grunnen til at lavere nm som regel betyr lavere temperaturer er at du på lavere nm prosesser kan gjøre det samme i en integrert krets som du gjorde tidligere, men med en lavere spenning. Og siden spenning*strøm=effekt så betyr jo dette at du kan lage en chip som er like bra, men samtidig trekker mindre effekt.

     

    6268159[/snapback]

     

    Nå er det ikke slik at en prosess med mindre pitch tillater en å "gjøre det samme" som en ved en større pitch, bare med lavere spenning.

     

    Lavere spenning gir lavere hastighet, og man skrur denne opp så mye som er praktisk. Problemet med prosesser med mindre pitch, er at de tåler mindre spenning før gateoksidet bryter sammen, siden feltstyrken naturlig nok blir høyere. Man bruker altså så mye spenning som man kan uten å skade prosessoren.

     

    det dynamiske effektforbruket er forøvrig proporsjonalt med u^2*f*C hvor u er spenning, f er frekvens, og C er parasittisk kapasitans.

     

    men, i tillegg har vi det statiske strømforbruket, som er strømforbruket når prosessoren ikke gjør noe. Dette øker ganske dramatisk med synkende spenning.

    i tillegg til dette får man større problemer med støyfølsomhet når spenningen går ned.

    Lavere spenning er altså ikke noe man er ute etter, selv om det gir lavere dynamisk effektforbruk.

     

    Grunnen til at mindre pitch er assosiert med mindre effektforbruk er at de parasittiske kapasitansene blir mindre, noe som i tillegg til å minke dynamisk effektforbruk også gir en kortere tidskonstant, noe som tillater høyere frekvenser. Arealet blir også mindre for samme funksjonalitet, noe som gjør kretsen billigere å produsere så snart alle maskene som brukes i produksjonen er laget. Høye engangskostnader for produksjon av disse maskene er stort sett det som gjør at de fleste nøler med å gå over til mer avanserte prosesser. man skal ha et veldig stort marked og/eller mulighet for å ta seg veldig godt betalt for chipene man lager for at det skal lønne seg.

  11. Ja det der høres tullete ut. Jeg vil heller tro at det er snakk om elektromagnetisk interferens i forforsterkeren. Dyre forsterkere har kraftige kondensatorer som bør ha mer enn nok strømreserver til å utligne en eventuell transient i strømtilførselen. spoler "glatter" heller ikke strøm på samme måte som kondensatorer.

     

    Spoler motsetter seg endring i spenning, ikke strøm, i motsetning til kondensatoren.

  12. "men det er ikke en grunn til at den ikke skal kunne brukes i et design. "

     

    la oss heller snu på det: Det er ingen grunn til at den SKAL brukes i et design.

     

    JK-vipper ble skapt i digitalteknikkens barndom, og er kun interessante dersom man ønsker å bygge en teller fra bunnen bit for bit. Dette er helt irrelevant med dagens teknologi, og de vil aldri inngå i designs laget utenfor sparsomt utrustede hobbyrom og skoler.

     

    Funksjonelt er en JK vippe ekvivalent med en D-vippe med noe ekstralogikk. Å heller lære dette designet vil være mye mer relevant og like pedagogisk. Syntetiseringen du nevner vil generere grunnleggende logiske funksjoner som AND, OR, XOR, NOT, og D-vipper, eventuelt høynivåfunksjoner fra diverse biblioteker. JK-vipper er en abstraksjon som er fullstendig irrelevant i dag. Å lære den er derfor like meningsløst når man like lett kan lære den asynkrone telleren realisert vha D-vipper.

     

    Det er ikke verdens undergang å lære JK såklart, det er bare fullstendig meningsløst, er vel mer en indikasjon på hvor foreldet undervisningen er mange steder.

  13. Jeg foreslår at du først og fremst går til læreren din og ber ham om å oppdatere pensum littegrann, siden JK-vipper overhodet ikke blir brukt i industrien i dag. skal man ha en teller, bruker man ganske enkelt en integrert tellekrets for enkle designs, evt programmerbare krester eller prosessorer for mer kompliserte designs.

     

    Når det er sagt er virkemåten til en asynkron teller at utgangen på hver bit (JK vippe eller D-vippe med negativ tilbakekobling) flipper hver gang den får en klokkepuls (toggle-funksjon), og videre at utgangen på hver bit er koblet til klokkeinngangen på den neste vippen. på denne måten halveres frekvensen for hver bit, og du har en binær tellesekvens.

     

    Det er bare å legge til så mange bits man vil ja. Telleren vil telle til 2^n-1 med n bits, som du skrev.

  14. LED som kjører på 5V har innebygget motstand.

    Formålet med motstand er å begrense strømmen til en LED, spenningen bestemmer den selv. Men er klar over at dette poenget er vanskelig å forstå når man er uvant med elektronikk.

    6208732[/snapback]

     

    Nå finnes det mange lysdioder (de blå) som har et spenningsfall på godt over 3.3V som det er snakk om her, og som altså ikke vil fungere skikkelig på denne spenningen. Dioder med innebygd motstand har jeg aldri hørt om, men skal ikke si skråsikkert at det ikke finnes.

  15. slik at man får 12v men masse strøm tilgjengelig. sikter da til en vanlig atx psu, de fleste har vel to 12v rails.

     

    og er det ikke vanlig med en kabel/et kabelsett ut fra psuen per rail? slik at det er naturlig å anta at de kommer fra hver sin rail?

    6186379[/snapback]

     

    Jeg ville vært litt forsiktig med det. De to spenningene vil aldri være like, og følgelig vil de belaste hverandre. Det vil nok fungere en stund, men jeg vil regne med at strømforsyningene dør en unaturlig tidlig død.

×
×
  • Opprett ny...