اطلاعیه

Collapse
No announcement yet.

کتابخانهآ‌ای برای چیپ AD7780-AD7730

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

    نوشته اصلی توسط adelavr110
    در صورتی که پارامترهای ورودی رو درست وارد کرده باشید بایستی با اعمال فشار عدد خروجی 7730 بیشتر بشه (اگه سیمهای + و - رو اشتباه وصل کرده باشید کمتر میشه)
    و عدد 65535 رو زمانی از 7730 میگیرید که به حداکثر وزن قابل اعمال به لودسل برسید
    حالا اینکه شما توی خروجی نوسان دارید دو دلیل میتونه داشته باشه یکی اینکه با توجه به مشخصات لودسل مقادیر رو درست وارد نکردید و یا نوسان طبیعی خروجی 7730 هست که بسته به طراحی PCB و مسائل رفع نویز هست
    شما برای اطمینان از صحت تنظیمات 7730 میتونید خروجی این آی سی که عددی در حدود 32768 هست رو بخونید و بدون تغییر در اون این عدد رو روی LCD نمایش بدید
    7730 رو صفر کنید و وزنی رو روی اون قرار ندید
    اگر از مدار PCB با طراحی مناسب استفاده کنید و از رجیستر های 16 بیتی این آی سی اطلاعات رو بخونید باید نهایتا تنها یک بیت نوسان داشته باشید یعنی دامنه نوسان شما بین 32767 تا 32768 تغییر کنه اگه از فیبر سوراخدار یا بردبورد استفاده میکنید احتمالا بیشتر از 12 بیست دقت دریافت نخواهید کرد
    تغییرات کوچک در حدود 32768 برای من قابل قبول و منطقیه , حتی در حدود 1000 تا بالا و پایین :mrgreen: . ولی مشکل اصلی من در اینه که هر چند باری که عددی در حدود 32768 را نشون میده به طرز عجیبی ! عدد 65535 را نشون میده !!! :cry: درضمن نمایش این عدد 65535 دارای ریتم منظمی نیست که بتونم احتمال بدم مشکل از کجاست!!!!!
    مثلا" یکبار از هر 10 نمونه 1 بار عدد 65535 را نشون میده و گاهی در هر 10 نمونه 3 بار . . . :cry2: :cry2: :angry:
    حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

    دیدگاه


      پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

      دلیل نمایش عدد 65535 احتمالا به دلیل سرریز شدن میباشد که احتمالا پارامترهای ورودی درست تنظیم نشده از اتصال کامل سیمهای لودسل هم اطمینان حاصل کنید و برنامه و مدارتون رو بیشتر بررسی کنید از برنامه نمونه گذاشته شده استفاده کنید یک اشتباه کوچک در مدارمیتونه چنین مشکلی رو به وجود بیاره
      [br /][hr]http://pcenter.ir[hr][br /]

      دیدگاه


        پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

        با عرض سلام خدمت اساتید AD7730
        من هم با AD7730 به مشکل برخوردم. ریجسترها رو درست میخونم قبل و بعد از مقداردهی ولی DATA REGISTER همواره 65355 برمی گردونه از لودسل استفاده نمی کنم و فقط چهارتا مقاومتو سری کردم و ولتاز سر دوتای داخلی رو می خونم.
        ممنون میشم راهنمای کنید.

        دیدگاه


          پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

          سلام. اگه براتون مقدور بود در مورد تبدیل عدد AD7730 به وزن بیشتر توضیح بدین. ممنون میشم.
          اینجا ماس ماست

          دیدگاه


            پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

            ماسفت مناسب برای حالت AC چی معرفی میکنید؟؟؟
            حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

            دیدگاه


              پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

              دوستان در مورد لودسل های تناژ بالا و همچنین طول کابل لودسل تا برد کنترلر کسی تجربه ای داره
              کاری دارم نزدیک 20 متر کابل داره
              سوال دارم مشکلی هست با خوندن،ایا کابل خاصی باید استفاده بشه؟
              در نهایت برای افزایش کانال ها جهت خواندن تعدادی لودسل غیر رله چی پیشنهاد میکنید
              مالتی پلکس انالوگ مناسبی پیدا میشه؟
              البته ای سی مورد استفاده 7714 هست که خودش 3 ورودی داره
              هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
              بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
              میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

              تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

              دیدگاه


                پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                من لودسلهایی رو با طول کابل تقریبا 10 متری تست کردم و مشکلی نداشتن تنها مشکلی که دارن اینه که اگه گوشی موبایل رو که در حال زنگ زدن هست روش بذاری کلا همه چی بهم میریزه البته این مورد کمتر پیش مییاد و توی مدلهای صنعتی موجود در بازار هم این مسئله وجود داره چون مهم نیست توجهی بهش نمیشه اما من یه راههایی برای برطرف کردن این مشکل پیدا کردم البته هنوز تست نکردم
                اما در مورد اتصال چند لودسل هم توجه داشته باشید که اگه همه لودسل ها مال یه ب***** باشه به راحتی میتونید اونا رو موازی هم ببندید تا درنهایت یه لودسل بشه اما برای کنترل تک تک لودسلها بحث فرق میکنه
                [br /][hr]http://pcenter.ir[hr][br /]

                دیدگاه


                  پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                  بله در مورد موازی کردن
                  با همین مدار میشه خوند؟
                  هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                  بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                  میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                  تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                  دیدگاه


                    پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                    [glow=red,2,300]این کد رو پیدا کردم
                    اینجا قرار میدمش ، شاید بکار کسی بیاد[/glow]
                    کد:
                    ////////////////////////////////////////////////////////////////////////////////////
                    // Basic, minimal demo code for interfacing the AD7190 to the mbed
                    // by Tom Kreyche tkreyche@well.com
                    // for anyone to use or redistribute - use at your own risk!
                    ////////////////////////////////////////////////////////////////////////////////////
                    
                    #include "mbed.h"
                    
                    // for ADC
                    #define STATUS_REG   0x00
                    #define MODE_REG    0x08
                    #define CONFIG_REG   0x10
                    #define DATA_REG    0x18
                    #define ID_REG     0x20
                    #define GPOCON_REG   0x28
                    #define OFFSET_REG   0x30
                    #define FULLSCALE_REG  0x38
                    
                    void drSub();
                    void ADC_Reset();
                    uint32_t ADC_ReadReg( uint32_t reg );
                    void ADC_WriteReg( uint32_t reg, uint32_t val );
                    uint32_t ADC_ReadData( void );
                    
                    SPI spi(p5, p6, p7); // mosi, miso, sclk
                    Serial pc(USBTX, USBRX); // tx, rx
                    InterruptIn dr(p8);
                    uint32_t drFlag;
                    
                    
                    int main() {
                    
                      uint32_t reg = 0;
                      uint32_t sta = 0;
                    
                      // set up interrupts
                      __disable_irq();
                    
                      // set up ADC data ready
                      drFlag = 0;
                      dr.mode(PullUp);
                      dr.fall(&drSub);
                    
                      // set up SPI interface
                      spi.format(8,3);
                      spi.frequency(500000);
                    
                      // reset the ADC and read the status registers
                      ADC_Reset();
                    
                      reg = ADC_ReadReg(STATUS_REG);
                      pc.printf("Status: 0x%X\n",reg);
                    
                      reg = ADC_ReadReg(MODE_REG);
                      pc.printf("Mode: 0x%X\n",reg);
                    
                      reg = ADC_ReadReg(CONFIG_REG);
                      pc.printf("Config: 0x%X\n",reg);
                    
                      reg = ADC_ReadReg(ID_REG);
                      pc.printf("ID: 0x%X\n",reg);
                    
                      reg = ADC_ReadReg(GPOCON_REG);
                      pc.printf("GPOCON: 0x%X\n",reg);
                    
                      reg = ADC_ReadReg(OFFSET_REG);
                      pc.printf("Offset: 0x%X\n",reg);
                    
                      reg = ADC_ReadReg(FULLSCALE_REG);
                      pc.printf("Fullscale: 0x%X\n",reg);
                    
                      // modify default configuration
                      // Some config options, incomplete list, see data sheet for details
                      //ADC_WriteReg(CONFIG_REG, 0x80C008); //ain3, ain4 to aincom, no buf
                      //ADC_WriteReg(CONFIG_REG, 0x804008); //ain3 only no buf
                      ADC_WriteReg(CONFIG_REG, 0x804018);  //ain3 only yes buf, use for big input caps, no single
                      //ADC_WriteReg(CONFIG_REG, 0x804818); //ain3 only yes buf, use for big input caps, single  
                      reg = ADC_ReadReg(CONFIG_REG);
                      pc.printf("Config: 0x%X\n",reg);
                    
                    
                      // More incomplete config options
                      // ADC_WriteReg(MODE_REG, 0x188050);  //no single,10 Hz /2 = 5 Hz/ch, SINC3
                      // single channel, no status
                      //ADC_WriteReg(MODE_REG, 0x0880A0);  //no single,10 Hz SINC3
                      ADC_WriteReg(MODE_REG, 0x088050);   //no single,20 Hz SINC3
                    
                      reg = ADC_ReadReg(MODE_REG);
                      pc.printf("Mode: 0x%X\n",reg);
                    
                    
                      // Put ADC in continuous read mode
                      // can't get to work properly, see p. 32 data sheet
                      //spi.write(0x5C);
                    
                    
                      // ready for ADC data processing
                      __enable_irq();
                    
                      // mbed runs continuous loop, services interrupt as required
                      while (1) {
                    
                        // handle ADC data ready flag
                        if (drFlag) {
                          // disable interrupts so read data doesn't trigger more interrupts, pins are muxed
                          __disable_irq();
                          reg = ADC_ReadData();
                          __enable_irq();
                          sta = 0x0000000F & reg;
                          reg >>= 15;
                    
                          pc.printf("0x%X %d ",sta, reg);
                    
                          }
                          drFlag = 0;
                        }
                      }
                    }
                    
                    ////////////////////////////////////////////////////////////////////////////////////
                    // handle data ready interrupt, ust sets data ready flag
                    ////////////////////////////////////////////////////////////////////////////////////
                    
                    void drSub() {
                      drFlag = 1;
                    }
                    
                    ////////////////////////////////////////////////////////////////////////////////////
                    // reset the AD7190
                    ////////////////////////////////////////////////////////////////////////////////////
                    
                    void ADC_Reset() {
                      for (int i = 0; i < 10; i++) {
                        spi.write(0xFF);
                      }
                      wait_ms(100);
                    }
                    
                    ////////////////////////////////////////////////////////////////////////////////////
                    // read an AD7190 register
                    // reads 8 or 24 bit registers only, not 32
                    // won't work for data reads
                    ////////////////////////////////////////////////////////////////////////////////////
                    
                    uint32_t ADC_ReadReg( uint32_t reg ) {
                      uint32_t data_length = 0;
                      uint32_t register_value = 0;
                      uint32_t rx_data[3] = {0, 0, 0};
                    
                      // determine data length
                      switch (reg) {
                        // 8 bit result
                        case STATUS_REG:
                        case ID_REG:
                        case GPOCON_REG:
                          data_length = 1;
                          break;
                    
                        // 24 bit result
                        case MODE_REG:
                        case CONFIG_REG:
                        case DATA_REG:
                        case OFFSET_REG:
                        case FULLSCALE_REG:
                          data_length = 3;
                          break;
                      }
                    
                      // convert write address to read address
                      reg |= 0x40;
                    
                      // send location to comm register
                      spi.write(reg);
                    
                      // get the data
                      if (data_length == 3) {
                        rx_data[0] = spi.write(0xFF);
                        rx_data[0] <<= 16;
                        rx_data[1] = spi.write(0xFF);
                        rx_data[1] <<= 8;
                        rx_data[2] = spi.write(0xFF);
                        register_value = rx_data[2] | rx_data[1] | rx_data[0];
                      } else {
                        register_value = spi.write(0xFF);
                      }
                      return (register_value);
                    }
                    
                    ////////////////////////////////////////////////////////////////////////////////////
                    // read AD7190 data, 32 bits
                    // just streamlined version of read register routine
                    // use this becuase I can't get continuous read to work
                    // also returns status register for channel information
                    ////////////////////////////////////////////////////////////////////////////////////
                    
                    uint32_t ADC_ReadData( void ) {
                    
                      uint32_t rx_data[4] = {0, 0, 0, 0};
                    
                      // send location to comm register
                      // shouldn't have to use this for continuous read
                      spi.write(DATA_REG | 0x40);
                    
                      // get the data
                      rx_data[0] = spi.write(0xFF);  // data
                      rx_data[1] = spi.write(0xFF);  // data
                      rx_data[2] = spi.write(0xFF);  // data
                      rx_data[3] = spi.write(0xFF);  // status
                    
                      rx_data[0] <<= 24;
                      rx_data[1] <<= 16;
                      rx_data[2] <<= 8;
                    
                      return (rx_data[3] | rx_data[2] | rx_data[1] | rx_data[0]);
                    }
                    
                    ////////////////////////////////////////////////////////////////////////////////////
                    // write to AD7190 register
                    // handles 8 and 24 bit registers
                    ////////////////////////////////////////////////////////////////////////////////////
                    
                    void ADC_WriteReg( uint32_t reg, uint32_t val ) {
                    
                      uint32_t data_length = 0;
                    
                      // determine data length
                      switch (reg) {
                        // 8 bit
                        case ID_REG:
                        case GPOCON_REG:
                          data_length = 1;
                          break;
                    
                        // 24 bit
                        case MODE_REG:
                        case CONFIG_REG:
                        case OFFSET_REG:
                        case FULLSCALE_REG:
                          data_length = 3;
                          break;
                      }
                    
                      // send location to comm register
                      spi.write(reg);
                    
                      // send the data
                      if (data_length == 3) {
                        spi.write ((val & 0x00FF0000) >> 16);
                        spi.write((val & 0x0000FF00) >> 8);
                      }
                      spi.write(val & 0x000000FF);
                    
                      return;
                    }

                    دیدگاه


                      پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                      نوشته اصلی توسط n340
                      بله در مورد موازی کردن
                      با همین مدار میشه خوند؟
                      بله که میشه البته مقدار ماکزیمم وزن که بایستی در فرمول لحاظ شود رو چند برابر(بسته به تعداد لودسلها ) قرار میدید
                      [br /][hr]http://pcenter.ir[hr][br /]

                      دیدگاه


                        پاسخ : کتابخانه‌ای برای چیپ AD7780-AD7730

                        سلام بچها
                        من مدار زیر رو که یکی از دوستان در یکی از پستها پیشنهاد داده بودن با mega8 بستم .

                        شماتیکشم گذاشتم :
                        http://uplod.ir/va3av1kqd4wy/loadcell.pdf.htm

                        مدل لودسلم هم l6d 50کیلویی هس با output 2.039mv ...
                        تا چقدر دقت میتونم اندازگیری کنم ؟ منظورم به گرم چقد میشه؟
                        اینم کدی هس که استفاده کردم ، با کمی تغییرات به جای lcd با سریال میفرستم به کامپیوتر
                        کد:
                        #include <mega8.h>
                        #include <spi.h>
                        #define xtal 8000000
                        #include <delay.h> 
                        #include <stdlib.h> 
                        #include <Serial_Init.c>
                        
                        #define SYS_ZERO_MODE  0b11001000//zero dakheli vurudi sefr mishavad
                        #define SELF_CALB_MODE 0b10100000//calibre dakheli khod be khod
                        #define CONT_CNV_MODE  0b00101000//mode peyvaste ersal 
                        //inha be adc_mode_bh dade mishavad 
                        unsigned char ADC_MODE_BH;
                                    
                        #define UPDATE_RATE   150
                        #define ADC_Vin     1 //0=10mv,1=20mv,2=40mv,3=80mv
                        #define MODE_LOW    0b10000000|(16*ADC_Vin)
                        
                        flash int xxx=0;//32768;
                        
                                    
                        #define ADC_RDY     PINC.0             
                        #define DDR_RDY()    DDRC.0=0;
                        #define ADC_CS     PORTC.1             
                        #define DDR_CS()    DDRC.1=1;
                        bit CHP;
                        char str[9];
                        unsigned int ADC_GAIN0;
                        unsigned int ADC_GAIN1;
                        unsigned int ADC_GAIN2;
                        
                        //********************************************************
                        void RESET_AD7730(void)
                          { 
                        putchar('.'); 
                          ADC_CS=0;
                        putchar('.'); 
                          spi(255);
                        putchar('.'); 
                          spi(255); 
                        putchar('.'); 
                          spi(255);
                        putchar('.'); 
                          spi(255); 
                        putchar('.'); 
                          ADC_CS=1;
                        putchar('.'); 
                          }    
                        //********************************************************
                        void ADC_FILTER_SET(void)
                          {
                          unsigned int filter;
                          unsigned char filterL,filterH,byte3;
                          putchar('.');
                          if(CHP)
                            {
                        putschar("CHP");
                            filter=102400/UPDATE_RATE;
                            byte3=0b00010000;
                            }
                          else
                            {
                        putschar("!CHP");
                            filter=307200/UPDATE_RATE;
                            byte3=0;
                            }
                          if(filter>2048) filter=2048; 
                        putchar('.');  
                        itoa(filter,str);
                        putschar(str); 
                        putchar('_');
                          filterL=filter % 16;
                        strcpy(str,"    "); 
                        putchar('_'); 
                        itoa(filterL,str); 
                        putschar(str);
                          filterL=filterL*16;
                        strcpy(str,"    "); 
                        putchar('_'); 
                        itoa(filterL,str); 
                        putschar(str);
                          filterH=filter / 16; 
                        strcpy(str,"    "); 
                        putchar('_'); 
                        itoa(filterH,str); 
                        putschar(str);    
                          ADC_CS=0; 
                          spi(0b00000011); //be comunication reg mige halate badi neveshtane tu filter reg
                        putschar("0b00000011");
                          spi(filterH); 
                        putschar("filterH");
                          spi(filterL); 
                        putschar("filterL");
                          spi(byte3); 
                        putschar("byte3");
                          ADC_CS=1;
                          }    
                        //********************************************************
                        void ADC_MODE_SET(void)
                          {   
                          ADC_CS=0;
                          spi(0b00000010);//be comunication reg mige halate badi neveshtane tu mode reg
                          spi(ADC_MODE_BH);
                          spi(MODE_LOW);
                          ADC_CS=1;
                          } 
                        //********************************************************
                        void ADC_GAIN_SET(void)
                          {
                          ADC_CS=0;    
                          spi(0b00000110);
                          spi(ADC_GAIN2);
                          spi(ADC_GAIN1);
                          spi(ADC_GAIN0); 
                          ADC_CS=1; 
                          } 
                        //********************************************************
                        void ADC_GAIN_READ(void)
                          { 
                        // default value of gain= 593CEA Hex   
                          ADC_CS=0;   
                          spi(0b00010110);
                          ADC_GAIN2=spi(255);
                          ADC_GAIN1=spi(255);
                          ADC_GAIN0=spi(255); 
                          ADC_CS=1; 
                          }
                        //********************************************************
                        unsigned int ADC_READ_DATA(void)
                          {
                          unsigned int adc_val;
                          ADC_CS=0;
                          spi(0b00010001); //be comunication reg mige halate badi khundane az data reg va 1 bar
                          adc_val=(unsigned int) spi(255)*256 + spi(255);
                          ADC_CS=1;
                          return(adc_val);
                          } 
                        //********************************************************
                        void main(void)
                        {
                        unsigned int ADC,temp,temp2; 
                        bit ADC_SEL,ZERO_ADC;
                        unsigned char sum_cntr;
                        unsigned long int sum;
                        // SPI initialization
                        // SPI Type: Master
                        // SPI Clock Rate: 250.000 kHz
                        // SPI Clock Phase: Cycle Half
                        // SPI Clock Polarity: High
                        // SPI Data Order: MSB First
                        SPCR=0x58;
                        SPSR=0x00; 
                        CHP=0;
                        DDRB=0x28;
                        SerialInit();
                        DDR_RDY()
                        DDR_CS()
                        putschar("hello !!");
                        delay_ms(1000);
                        RESET_AD7730();
                        putschar("RESET_AD7730");
                        ADC_FILTER_SET(); 
                        putschar("ADC_FILTER_SET");
                        ZERO_ADC=0;
                        ADC_SEL=1;
                        sum_cntr=0;
                        sum=0;                   
                        while (1) 
                          {      
                            putchar('*');    
                            if(ADC_RDY==0)
                            { 
                              putschar("ADC_RDY");
                              if(ZERO_ADC)
                              {
                                putschar("ZERO_ADC");  
                                ADC_MODE_BH=SYS_ZERO_MODE;
                                ADC_MODE_SET();
                                putschar("ADC_MODE_SET");
                                ZERO_ADC=0;
                                ADC_SEL=1;
                              }
                              else
                              {
                                if(ADC_SEL)
                                {
                                  putschar("ADC_SEL"); 
                                   ADC_SEL=0;   
                                   ADC_MODE_BH=CONT_CNV_MODE;
                                   ADC_MODE_SET(); 
                                  putschar("ADC_MODE_SET");       
                                }
                              else
                              {
                                     temp=ADC_READ_DATA();
                                     putschar("ADC_READ_DATA"); 
                                     sum=sum+temp;
                                     if(++sum_cntr==50)
                                      {          
                                        sum_cntr=0;
                                        ADC=sum/50;
                                        sum=0;
                                        ftoa(2,(ADC-xxx)/100,str);
                                        putschar(str);
                                        strcpy(str,"    ");         
                                      } 
                              }
                           }
                            //******************************************************************** 
                          };
                        }
                         }
                        این putchar هایی که میبینید واسه اینکه برنامم رو توی کامپیوترم دنبال کنم
                        حالا گاهی وسط تابع RESET_AD7730 گیر میکنه یا اگه هم گیر هم نکنه تو main توی حلقه while گیر میکنه و rdy کلا صفر نمیشه...
                        یکبار rdy رو خودم دستی زمین کردم ولی تو زیر روال تابع بعدی بعد از ارسال داده گیر کرد...
                        مشکل کجاس ؟چرا ارتباطش با spi درس انجام نمیشه...
                        یه مشکل دیگه هم هس:
                        پایه های +exc -exc به ref+ ref- وصل میکنم و +signal -signal به in+ in- ....
                        ولتاژ بین ref+ ref- توی مدارم هم 1.6 ولته وقتی لودسل بهش وصل میشه 0.26 میشه !.... لودسل هم سالمه مقاومتشو چک کردم با کاتالوگش همخونی داره...

                        دیدگاه


                          پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                          اینکه چقدر دقت داشته باشید بستگی به تعداد بیتی هست که از 7730 میخونید و همینطور ماکزیمم وزن لودسل
                          اینکه یه بار توی تابع هنگ کنه یه بار نکنه به احتمال زیاد اشکالاتی در اتصالات و تنظیمات برنامه هست که بایستی به دقت بررسی کنید
                          برای اطمینان از صحت برنامه نمونه برنامه گذاشته شده رو استفاده کنید
                          برای ولتاژ ref هم از 5 ولت استفاده کنید و مقاومتهای 10 اهم رو حذف کن
                          [br /][hr]http://pcenter.ir[hr][br /]

                          دیدگاه


                            پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                            نوشته اصلی توسط adelavr110
                            اینکه چقدر دقت داشته باشید بستگی به تعداد بیتی هست که از 7730 میخونید و همینطور ماکزیمم وزن لودسل
                            اینکه یه بار توی تابع هنگ کنه یه بار نکنه به احتمال زیاد اشکالاتی در اتصالات و تنظیمات برنامه هست که بایستی به دقت بررسی کنید
                            برای اطمینان از صحت برنامه نمونه برنامه گذاشته شده رو استفاده کنید
                            برای ولتاژ ref هم از 5 ولت استفاده کنید و مقاومتهای 10 اهم رو حذف کن
                            برنامه همون برنامست فقط قسمت سریال بهش اضافه شده...
                            اتصالات درسته....پایه rdy 0 نمیشه...
                            فقط مقاومت 10اهم رو حذف کنم؟بقیش درسته؟
                            -----------------------------------------
                            با حذف مقاومت ها تغییری توی ولتاژ ref ها نشد...من به جای فریت هم از سلف 10میکروهانری استفاده کردم...

                            دیدگاه


                              پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                              در صورت حذف مقاومت بایستی پایه های ref مستقیما به تغذیه 5 ولت اتصال یابند و ولتاژ 5 ولت روی این پایه ها قرار گیرد
                              [br /][hr]http://pcenter.ir[hr][br /]

                              دیدگاه


                                پاسخ : کتابخانهآ‌ای برای چیپ AD7780-AD7730

                                نوشته اصلی توسط adelavr110
                                در صورت حذف مقاومت بایستی پایه های ref مستقیما به تغذیه 5 ولت اتصال یابند و ولتاژ 5 ولت روی این پایه ها قرار گیرد
                                من یه تاپیک دیگه باز کردم و کامل نوشتم
                                الان ولتاژ ref درس شده و 5 ولت هس...با اعمال فشار ملتی متر 2 میلی ولتی رو توی خروجی نشون میده...ولب نمیدونم چرا ارتباطم با ad7730 برقرار نمیشه...اتصالات چک شده...

                                تنظیمات
                                کد:
                                DDRB=0x28;
                                
                                // SPI initialization
                                // SPI Type: Master
                                // SPI Clock Rate: 250.000 kHz
                                // SPI Clock Phase: Cycle Half
                                // SPI Clock Polarity: High
                                // SPI Data Order: MSB First
                                SPCR=0x58;
                                SPSR=0x00;
                                درسه ؟ واسه مگا 8

                                دیدگاه

                                لطفا صبر کنید...
                                X