5 Replies Latest reply on Mar 11, 2013 12:24 PM by Fredy Klammsteiner

    Ask the Expert: Fredy Klammsteiner - Sensor Application Expert

      Pis-Small.jpgFredy Klammsteiner is Custom Product Manager at Innovative Sensor Technology

       

      Fredy Klammsteiner is Custom Product Manager at Innovative Sensor Technology, consulting customers with special sensor application requirements in temperature, flow, humidity and conductivity. With a background as El. Eng. FH, Fredy joined IST in 2006 as Area Sales Manager for Eastern Europe, East Germany, Scandinavia and Russia and as Product Manager for TSic. In 2009 he became Head of Custom Products at IST.

       

      Your title at IST?
      Custom product manager

      What is your education background?
      El. Eng. FH

      What are the areas of expertise within IST?
      Consultancy of customers with special sensor application requirements, sales in several countries, product management of TSic sensor series, project management of custom sensors for temperature, flow, humidity, conductivity

      And a short description of your work history?
      2006 - 2009: Area Sales Manager Eastern Europe, East Germany, Scandinavia, Russia
      2009 to date: Head of custom products

       

      To ask Fredy a question reply to this discussion thread. Don't forget you will need to login or register to post your question

        • Re: Ask the Expert: Fredy Klammsteiner - Sensor Application Expert
          Eavesdropper

          Mr. Klammsteiner,

           

          I need a small pressure sensor to use internally on a gas pressure system. Suggestions?

           

          Due to the sealed system, how could I pass the data from the sensor to an external system?

           

          E

          • Re: Ask the Expert: Fredy Klammsteiner - Sensor Application Expert
            karan294

            i have msp430fg4618 controller. i want to read hyt-221 sensor useing i2c.i interfaced sensor and useing IAR develop following code but its not work.NACK is coming from sensor.

            //******************************************************************************

            //   MSP430xG461x Demo - USCI_B0 I2C Master TX multiple bytes to MSP430 Slave

            //

            //   Description: This demo connects two MSP430's via the I2C bus. The master

            //   transmits to the slave. This is the master code. It continuously

            //   transmits an array of data and demonstrates how to implement an I2C

            //   master transmitter sending multiple bytes using the USCI_B0 TX interrupt.

            //   ACLK = 32kHz, MCLK = SMCLK = TACLK = BRCLK = 1MHz

            //

            //                                 /|\  /|\

            //                MSP430xG461x     10k  10k    MSP430xG461x

            //                    slave         |    |        master

            //              -----------------   |    |  -----------------

            //            -|XIN  P3.1/UCB0SDA|<-|---+->|P3.1/UCB0SDA  XIN|-

            //       32kHz |                 |  |      |                 | 32kHz

            //            -|XOUT             |  |      |             XOUT|-

            //             |     P3.2/UCB0SCL|<-+----->|P3.2/UCB0SCL     |

            //             |                 |         |                 |

            //

            //   Andreas Dannenberg/ M. Mitchell

            //   Texas Instruments Inc.

            //   October 2006

            //   Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A

            //******************************************************************************

            #include "msp430xG46x.h"

             

             

            volatile unsigned char k,d,t,*prxdata,s,txdatactr;                    

            volatile unsigned char data,rxdatactr,rxdata[5]={0,0,0,0,0},sdatactr;

            int i;

             

             

            void delay(int i)

            {

              while(i!=0)

              {

                i--;

              }

            }

            void main(void)

            {

              WDTCTL = WDTPW + WDTHOLD;

                             

            delay(60000);

             

             

              P3SEL |= 0x06;

              P2SEL |=0x00;

              P5SEL =0x00;

              P5DIR =0x02;

              P2DIR |= 0x06;

              P5OUT=0x00;

               UCB0CTL1 |= UCSWRST;                     

              UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;    

              UCB0CTL1 = UCSSEL_2 + UCSWRST;           

              UCB0BR0 = 10;                           

              UCB0BR1 = 0;

              UCB0I2CSA = 0x29;

            UCB0I2CIE =0x09;                        

              UCB0CTL1 &= ~UCSWRST;    

              P5OUT |=0x02;                                  

                

              while (1)

              {

                 P2OUT=0x04;

                delay(60000);

                P2OUT=0x00;

                delay(60000);

                txdatactr=1;

                IE2 |= UCB0TXIE;

                k=1;

                __bis_SR_register(GIE);

                UCB0CTL1 |= UCTR + UCTXSTT;           

                  while(k);    

                  while (UCB0CTL1 & UCTXSTP);  

              

                P2OUT=0x04;

                delay(60000);

                P2OUT=0x00;

                delay(60000);

                t=1;

                rxdatactr=3;

                prxdata= &rxdata[0];

               

                IE2 |= UCB0RXIE;

                 UCB0CTL1 &= ~UCTR;        

                UCB0CTL1 |= UCTXSTT;

                __bis_SR_register(CPUOFF + GIE);

               

                 while (UCB0CTL1 & UCTXSTP);

                 

            //UCB0CTL1 &= ~UCTXSTP;

              }

            }

             

             

            //------------------------------------------------------------------------------

            // The USCIAB0TX_ISR is structured such that it can be used to transmit any

            // number of bytes by pre-loading TXByteCtr with the byte count. Also, TXData

            // points to the next byte to transmit.

            //------------------------------------------------------------------------------

            #pragma vector = USCIAB0TX_VECTOR

            __interrupt void USCIAB0TX_ISR(void)

            {

              if(k==1)

              {

                        if(txdatactr)

                      {

                        UCB0TXBUF=0x28;

                        txdatactr--;

                      }

                    else

                      {

              

                           UCB0CTL1 |= UCTXSTP;

                           //UCB0CTL1 &= ~UCTXSTT;

                           IFG2 &= ~UCB0TXIFG;

                           IE2 &= ~UCB0TXIE;

                           k=0;

                            //__bic_SR_register_on_exit(CPUOFF);

                      }

             

              }

             

             

               if(t==1)

              {

              if (rxdatactr)                           

              {

              

               *prxdata=UCB0RXBUF;

               if((IFG2 & UCB0RXIFG)==0)

                {

                  P5OUT |=0x02;

                }

             

               if(rxdatactr==1)

               {

                UCB0CTL1 |= UCTXSTP;

               }

                rxdatactr--;

                prxdata++;

              }

              else

              {

                *prxdata=UCB0RXBUF;

                // UCB0CTL1 |= UCTXSTP;          

               IE2 &= ~UCB0RXIE;

                t=0;

                __bic_SR_register_on_exit(CPUOFF);     

              }

              }

             

             

             

             

             

            }

             

             

            #pragma vector=USCIAB0RX_VECTOR

            __interrupt void USCIA0RX_ISR (void)

            {

              if((UCB0STAT && UCNACKIFG)==1)

              {

                P5OUT =0x00;

                UCB0STAT &=~UCNACKIFG;

              }

             

              if((UCB0STAT & UCALIFG)==1)

              {

                P5OUT |=0x00;

              }

            }         

             

             

             

             

             

            so plz help me///////