2 Replies Latest reply on Nov 15, 2019 3:46 AM by VasanthR_91

    PSoC 4200 Amux Electrical Characteristics Additional Information

    ShHo_2768971

      I am planning to design Multi Channel Audio Mixer + Summing unit which will take audio tracks/signals from different sources/instruments and mix/sum/block some or all the signals to outputs with PSoC Amux (into 2 Channel mixed audio outputs)

       

      I would appreciate if someone can share some additional electrical characteristics of Amux, what I am looking for is not available on this datasheet

      https://www.cypress.com/file/127201/download

      It says only this :

      DC and AC Electrical Characteristics The AMux operates at all valid supply voltages.

       

       

      Here are my queries -

      1. How much current can Amux paths carry ?

      2. Can Amux route isolated signals ? ( signal sharing no common ground with PSoC Chip, kind of like EM relay )

      3. What is the trace resistance from input to output through Amux ?

      4. Does Amux switching cause audio level noise ?

      5. What is the Parasitic Capacitance of Amux circuits ? (to avoid unwanted RC filters)

      6. Can Amux carry AC audio signal below PSoC Vss Voltage (Gnd) ?

       

      I have been trying this with two different audio sources (laptop and phone) playing two songs

      psoc aud sum.png

      It somewhat worked with few issues as follows :

      1. Signal bleeding/cross-talk from some of the channels

      2. Signal Attenuation/Loss of gain

       

      Otherwise, the audio mixing and blocking did worked

       

      Analog pins are set as Strong Drive

      Amux is set with Maximum Isolation

      Opamp is set for High BW/Power, Medium Cap Compensation

      SW is an Input switch for enabling/disabling one or all input audio lines

      LED blinks to indicate input combinations

      #include <project.h>
      
      
      int main()
      {
          AMux_Init();
          Pre_Amp_Init();
          CyDelay(200);
          
      for(;;)
          {
              while(SW_Read()){LED_Write(1);}
              AMux_DisconnectAll();
              while(!SW_Read())
              {LED_Write(1); CyDelay(50);LED_Write(0);CyDelay(50);}
              
              if(SW_Read()==0)
              {
                  for(int j=0;j<2;j++)
                  {
                LED_Write(1); CyDelay(200);LED_Write(0);CyDelay(200);
                  }
                AMux_Disconnect(1);AMux_Connect(0);
              
              }
              while(SW_Read()){LED_Write(1);}
              
              if(SW_Read()==0)
              {
                  for(int j=0;j<4;j++)
                  {
                LED_Write(1); CyDelay(200);LED_Write(0);CyDelay(200);
                  }
                AMux_Disconnect(0);AMux_Connect(1);
              }
               while(SW_Read()){LED_Write(1);}
              
              if(SW_Read()==0)
              {
                  for(int j=0;j<6;j++)
                  {
                LED_Write(1); CyDelay(200);LED_Write(0);CyDelay(200);
                  }
                AMux_Connect(0);AMux_Connect(1);
              }
               while(SW_Read()){LED_Write(1);}
              
              if(SW_Read()==0)
              {
                  for(int j=0;j<10;j++)
                  {
                LED_Write(1); CyDelay(200);LED_Write(0);CyDelay(200);
                  }
                AMux_Connect(2);AMux_Disconnect(1);AMux_Disconnect(3);
              }
               while(SW_Read()){LED_Write(1);}
              
               if(SW_Read()==0)
              {
                  for(int j=0;j<12;j++)
                  {
                LED_Write(1); CyDelay(200);LED_Write(0);CyDelay(200);
                  }
                AMux_Connect(3);AMux_Disconnect(0);AMux_Disconnect(2);
              }
               while(SW_Read()){LED_Write(1);}
              
              if(!SW_Read())
              {
                for(int j=0;j<8;j++)
                  {
                LED_Write(1); CyDelay(200);LED_Write(0);CyDelay(200);
                  }
              AMux_DisconnectAll();  
              }
               while(SW_Read()){LED_Write(1);}
              
              
          }
      }
      

       

      Message was edited by: ShHo PSoC Sch added and some of the experimental finding are listed.

        • 2. Re: PSoC 4200 Amux Electrical Characteristics Additional Information
          VasanthR_91

          Hi Hossain,

          1. How much current can Amux paths carry ?

               This is not characterized. Could you let us know your requirements ?

          2. Can Amux route isolated signals ? ( signal sharing no common ground with PSoC Chip, kind of like EM relay )

              Amux switches will be defined with respect to PSoC VSS and VDD

          3. What is the trace resistance from input to output through Amux ?

               Kindly use the ohm meter tool in PSoC Creator(CYDWR-> Anlog tab). Search in help for more details.

          4. Does Amux switching cause audio level noise ?

              Amux switching is done using connecting and disconnecting

          5. What is the Parasitic Capacitance of Amux circuits ? (to avoid unwanted RC filters)

                   This also we might not have characterized. Are you facing any specific issues with your design ? Kindly let us know.

          6. Can Amux carry AC audio signal below PSoC Vss Voltage (Gnd) ?

               This will not be possible as the device is not expected to work on this range.

           

          Best Regards,
          Vasanth R S