3 Replies Latest reply on Aug 18, 2014 7:07 AM by user_14586677

    DAC

    manuel.julian.moron

      I input a 6bits_code_min=0dec or 6b_code_max=62dec value into the DAC6 by means WriteStall API and I get unexpected Voutput value.

         

      Theoretically the DAC6 datasheets told us:

         

      Vout=(Vrefhi-AGND)*ACap/FCap+AGND

         

      Taking into account my reference Vdd/2+/-BandGap I must to have:

         

      Vout(max)=3.76V

         

      Vout(min)=2.5V

         

      Instead of this I obtain a more or less a  Vout=3.7 V  and after that the value is going down until reach

         

      aproximattely 2.5V. I put the analog outputs in High Z.

         

      The C code is simple:

         

       

         

       

         

       

         

      "PSoCAPI.h" // PSoC API definitions for all User Modules

         

      #define

         

       

       

          DAC_MAX (    62    )     // Define max DAC value as 62    

      unsigned

       

      unsigned

       

      int

       

       

      void

      {

      DAC6_Start(DAC6_HIGHPOWER);

       

      BUFFER_Start(BUFFER_HIGHPOWER);

       

       

      {

       

       

      DAC6_WriteStall(bDACValue);

       

      for(i = 0xFF; i != 0; i--); // Delay loop

       

       

       

       }/*while*/

          char    bDACValue = DAC_MAX;     // Variable for the DAC value     char    j;     // Variable for an index     i;        main()     // Start DAC6 in HIGH power mode     while    (    1    )     // Repeat forever     //for(j=0; j<62; j++){     for    (i =     0xFF    ; i !=     0    ; i--);     // Delay loop     for    (i =     0xFF    ; i !=     0    ; i--);     // Delay loop       

      } /*main*/

         

      Anyone could tell me what's going on?  Thanks

         

       

         

       

         

       

         

       

         

       

         

      #include

        • 1. Re: DAC
          devendra.gajjar

          i have same problem if you get any hint please help me also

             

          i dont get perfect 3.3 and 0 voltage on analog pin by using DAC 
          actually when i enter 0 offset i its function { DAC8_1_WriteBlind(BYTE bOutputValue);} it should give me 0 volt output but it give 0.38 volt and when i set 254 offset it gives me 2.95 volts,it should give me 3.3 volt
           i am using this chip on 3.3 voltage..

          • 2. Re: DAC
            devendra.gajjar

            i think you need to select

               

            ref mux =(Vdd/2)+/-(Vdd/2)

            • 3. Re: DAC
              user_14586677

              Do you have OpAmp Bias andA_Buff_Power, global resources, set

                 

              to high power ? The CM range of analog amps is affected by their

                 

              bias. Datasheet covers this in specs.

                 

               

                 

              Also depends on what part you are using. See V swing analog buffer

                 

              below.

                 

               

                 

                  

                 

                       

                 

              http://www.cypress.com/?rID=2746     AN13666

                 

               

                 

               

                 

              Regards, Dana.