NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3329 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 14 از 14

موضوع: مشکل با تاچ و آیسی ads7843

  1. #1
    کاربر علاقه مند morykeys آواتار ها
    تاریخ عضویت
    Oct 2011
    نام
    کیخایی
    نوشته ها
    96
    تشکر
    30
    تشکر شده 45 بار در 41 پست

    پیش فرض مشکل با تاچ و آیسی ads7843

    سلام
    من قبلا در مورد تاچ یه تاپیک زده بودم اما به نتیجه نرسید .
    قبلا میخواستم تاچ رو با ماتریس کالیبره کنم که نشد.اما الان با آیسی ads7843 می خوام کالیبره کنم کسی اگر کار کرده لطفا راهنمایی کنه .کاربر agape این آیسی رو به من معرفی کرد.
    من یه کد می فرستم به آیسی تاچ(0x94) و یه کد ازش میگیرم ولی نمیده
    ورودی های adc آیسی رو هم دادم.
    برنامم به صورت زیره اگر کسی کار کرده بگه کجاش اشکال داره

    (#define NPCS0 (1<<11
    (#define MISO (1<<12
    (#define MOSI (1<<13
    (#define SPCK (1<<14
    }(void main(void
    ;[char str1[1
    ;unsigned int control_byte=0,recieve=0,counter=0
    //spi clock enable
    (*AT91C_PMC_PCER|=AT91C_ID_SPI; // AT91C_ID_SPI=(1<<5
    //configuring spi pins
    ;(AT91C_PIOA_PDR=(NPCS0|MISO|MOSI|SPCK
    ;(AT91C_PIOA_MDER=(NPCS0|MISO|MOSI|SPCK
    AT91C_PIOA_ASR=(NPCS0|MISO|MOSI|SPCK*AT91C_PIOA_PP UER=(NPCS0|MISO|MOSI|SPCK
    //spi setting
    ;AT91C_SPI_MR=0xf000019
    ;AT91C_BASE_SPI->SPI_CSR[0]=0x0f0f9041

    // enable spi0
    ;AT91C_SPI_CR=0x1
    ;()tftlcd_init

    while(1
    ;control_byte=0x94
    ;((while (!(AT91C_BASE_SPI->SPI_SR&0x2
    ; AT91C_BASE_SPI->SPI_TDR=control_byte
    ;((while (!(AT91C_BASE_SPI->SPI_SR&0x1
    ;((recieve=AT91C_BASE_SPI->SPI_RDR&0xFF
    ;(intstr(recieve,str1
    ;(tftlcd_gotoxy(0,0
    ;(tftlcd_putsf("r=",0,WHITE,0
    ;(tftlcd_puts(str1,0,WHITE,0

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    دوست عزيز خودم تا الان از اين آي.سي استفاده نكردم.
    دقيقا كدوم پايه ميكرو به كدوم پايه اين آي.سي وصل كردين.؟
    بقيه پايه هاي آي.سي رو به كجا وصل كردين؟(البته اگه ممكنه شماتيك رو هم بذاريد)
    ميشه بيشتر توضيح بديد كه چرا تو برنامه مقدار 0x94 رو به اين آي.سي ارسال ميكنيد؟
    در پاسخ مقداري كه به ميكرو ارسال ميشه چيو به ما ميده؟
    راستي امكانش هست كه كل برنامه اي كه نوشتيد رو اينجا بذاريد؟
    ميدونم خيلي درخواست داشتم.
    _____________________________________
    _____________________________________

  5. تشکرها از این نوشته :


  6. #3
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    سلام دایی جان ! یه مثال از راه اندازی این آیسی که خودم نوشتم قرار میدم - امیداورم که به کارت بیاد
    در ضمت ال سی دی توی مد 8 بیت درایو شده !
    فايل هاي پيوست شده فايل هاي پيوست شده

  7. کاربران : 4 تشکر کرده اند از شما agape برای ارسال این پست سودمند:


  8. #4
    کاربر علاقه مند morykeys آواتار ها
    تاریخ عضویت
    Oct 2011
    نام
    کیخایی
    نوشته ها
    96
    تشکر
    30
    تشکر شده 45 بار در 41 پست

    پیش فرض

    مهندس دستت درد نکنه که برنامتو گذاشتی
    این برنامه خیلی بهینه و پیشرفتس به سختی یه تازه کار میتونه ازش سر در بیاره
    اما دستت درد نکنه
    ویرایش توسط morykeys : 10-01-2012 در ساعت 12:05

  9. تشکرها از این نوشته :


  10. #5
    کاربر علاقه مند morykeys آواتار ها
    تاریخ عضویت
    Oct 2011
    نام
    کیخایی
    نوشته ها
    96
    تشکر
    30
    تشکر شده 45 بار در 41 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    با سلام
    دوست عزيز خودم تا الان از اين آي.سي استفاده نكردم.
    دقيقا كدوم پايه ميكرو به كدوم پايه اين آي.سي وصل كردين.؟
    بقيه پايه هاي آي.سي رو به كجا وصل كردين؟(البته اگه ممكنه شماتيك رو هم بذاريد)
    ميشه بيشتر توضيح بديد كه چرا تو برنامه مقدار 0x94 رو به اين آي.سي ارسال ميكنيد؟
    در پاسخ مقداري كه به ميكرو ارسال ميشه چيو به ما ميده؟
    راستي امكانش هست كه كل برنامه اي كه نوشتيد رو اينجا بذاريد؟
    ميدونم خيلي درخواست داشتم.
    پایه های miso ,mosi,spck,npcs0 که پایه های PA11 تا PA14 میشه(پایه های پروتکل spi)
    تو عکسی که گذاشتم اتصالات پایه ها هست که از دیتا شیت ه بعضیا شو استفاده نکردم.
    چون باید یه کد به آی سی بدی تا بهت اطلاعات بده از دیتا شیت میشه در آورد
    مقدار کالیبره شده x یا y
    ok
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: ads.PNG
مشاهده: 61
حجم: 22.3 کیلو بایت  
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط morykeys : 10-01-2012 در ساعت 12:41

  11. کاربران : 2 تشکر کرده اند از شما morykeys برای ارسال این پست سودمند:


  12. #6
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط morykeys نمایش پست ها
    تو عکسی که گذاشتم اتصالات پایه ها هست که از دیتا شیت ه بعضیا شو استفاده نکردم.
    با سلام
    دوست عزیز محبت کنید یه بار دیگه عکسو آپلود کنید.
    _____________________________________
    _____________________________________

  13. کاربران : 2 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  14. #7
    کاربر علاقه مند morykeys آواتار ها
    تاریخ عضویت
    Oct 2011
    نام
    کیخایی
    نوشته ها
    96
    تشکر
    30
    تشکر شده 45 بار در 41 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    با سلام
    دوست عزیز محبت کنید یه بار دیگه عکسو آپلود کنید.
    اینم از عکس دوباره اپلود کردم
    تو یه فایل زیپ گذاشتمش
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: ads.PNG
مشاهده: 30
حجم: 22.3 کیلو بایت  
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar ads.rar (21.0 کیلو بایت, 42 نمايش)

  15. تشکرها از این نوشته :


  16. #8
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    منم قبلا این ای سی رو برای یه پروژه راه انداختم که سورسش در اینجا می ذارم فقط اگه چیزهای عجیب دیدی توش ربطی نداشت بدون مال بقیه دم و دستگاه ای پروژه هست که اینجا جا مونده.

    [PHP]/************************************************** *************
    * File: touch.c
    ************************************************** **************/

    #include "lpc214x.h"
    #include "touch.h"
    #include "page.h"
    #include "isd4004.h"
    #include <stdio.h>
    #include <string.h>
    #include "GLCD.h"
    #include "Calibrate.h"

    extern unsigned char location;
    extern unsigned char addr_low,addr_high;
    extern char track_no[10];
    extern POINT coordinate;
    extern char buf[20];

    /************************************************** ************************************
    READ Touch Directly with ADC
    ************************************************** ************************************/
    /*
    void adc_init(unsigned short channel)
    {
    AD0CR=(1<<channel)
    |(0x100<<5)
    |((1<<21));

    }

    void adc_convert(POINT * pADC_point)
    {
    unsigned int x=0,y=0,i;

    FIO0DIR=0x5000FFFF;
    FIO0SET=0x1000FFFF;
    FIO0CLR=0x4000FFFF;
    PINSEL1=1<<26;
    adc_init(2);
    for (i=0;i<10;i++)
    {
    AD0CR|=(1<< 24);
    while(!(AD0DR2 & 0x80000000));
    AD0CR&=0xF8FFFFFF;
    y+=(AD0DR2>>6)&0x3FF;
    }

    PINSEL1=1<<24;

    FIO0DIR=0xA000FFFF;
    FIO0CLR=0x10000000;
    FIO0SET=0x20000000;
    FIO0CLR=0x80000000;

    adc_init(1);
    for (i=0;i<10;i++)
    {
    AD0CR|=(1<< 24);
    while(!(AD0DR1 & 0x80000000));
    AD0CR&=0xF8FFFFFF;
    x+=(AD0DR1>>6)&0x3FF;
    }

    PINSEL1=0;

    pADC_point->x = (x/42.6) ;
    pADC_point->y = 320L-(y/32);
    }

    */
    /************************************************** ************************************
    READ Touch with ADS7843 --
    ************************************************** ************************************/
    void spi_init_touch()
    {
    S0SPCCR=0xF5; // Clock devider = 12
    S0SPCR=0x820; // Master - 8bit transfer - CPOL&CPHA=0 - MSB first
    }


    unsigned char readADC(unsigned char axis)
    {
    S0SPDR = axis; // transfer axis
    while((S0SPSR & 0x80) == 0); // wait for complete
    return (S0SPDR); // get data
    }

    void readTouch(POINT * pADC_point)
    {

    unsigned int x,y;
    unsigned char buf_data[4];
    spi_init_touch();
    // enable touch screen
    PINSEL0=0x1500;
    Touch_Clr; // Enable CS

    buf_data[0] = readADC(0xD0); //Write Command Measure X-Position
    buf_data[0] = readADC(0x00); //Read ADC data X-Position (7-bit byte High) data: 0ddddddd (bit11-bit5)
    buf_data[1] = readADC(0x90); //Write Command Measure Y-Position ; Read ADC data X-Position (5-bit byte Low) data:ddddd000(bit)
    buf_data[2] = readADC(0x00); //Read ADC data Y-Position(7-bit byte High) data: 0ddddddd (bit11-bit5)
    buf_data[3] = readADC(0x00); //Read ADC data Y-Position(5-bit byte Low) data: ddddd000 (bit)

    // disable touch screen
    Touch_Set; // Disable CS
    PINSEL0=0x00;

    x = (unsigned int)buf_data[0] << 5; // Shift 7 bit High
    x |= (unsigned int)buf_data[1] >> 3; // Shift 5 bit low

    y = (unsigned int)buf_data[2] << 5; // Shift 7 bit High
    y |= (unsigned int)buf_data[3] >> 3; // Shift 5 bit low

    pADC_point->x = x/17.06 ;
    pADC_point->y = (4096L-y)/12.8;
    }

    void show_touch()
    {
    delay_ms(12,10);
    GLCD_clrline(19,Black);
    readTouch(&coordinate);
    GLCD_setline(1,19);
    sprintf(buf,"X=%d Y=%d",coordinate.x,coordinate.y);
    GLCD_puts(buf,Red,Black,0);
    }[/PHP]
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  17. تشکرها از این نوشته :


  18. #9
    کاربر علاقه مند morykeys آواتار ها
    تاریخ عضویت
    Oct 2011
    نام
    کیخایی
    نوشته ها
    96
    تشکر
    30
    تشکر شده 45 بار در 41 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ali.aghayifar نمایش پست ها
    منم قبلا این ای سی رو برای یه پروژه راه انداختم که سورسش در اینجا می ذارم فقط اگه چیزهای عجیب دیدی توش ربطی نداشت بدون مال بقیه دم و دستگاه ای پروژه هست که اینجا جا مونده.

    [php]/************************************************** *************
    * file: Touch.c
    ************************************************** **************/

    #include "lpc214x.h"
    #include "touch.h"
    #include "page.h"
    #include "isd4004.h"
    #include <stdio.h>
    #include <string.h>
    #include "glcd.h"
    #include "calibrate.h"

    extern unsigned char location;
    extern unsigned char addr_low,addr_high;
    extern char track_no[10];
    extern point coordinate;
    extern char buf[20];

    /************************************************** ************************************
    read touch directly with adc
    ************************************************** ************************************/
    /*
    void adc_init(unsigned short channel)
    {
    ad0cr=(1<<channel)
    |(0x100<<5)
    |((1<<21));

    }

    void adc_convert(point * padc_point)
    {
    unsigned int x=0,y=0,i;

    fio0dir=0x5000ffff;
    fio0set=0x1000ffff;
    fio0clr=0x4000ffff;
    pinsel1=1<<26;
    adc_init(2);
    for (i=0;i<10;i++)
    {
    ad0cr|=(1<< 24);
    while(!(ad0dr2 & 0x80000000));
    ad0cr&=0xf8ffffff;
    y+=(ad0dr2>>6)&0x3ff;
    }

    pinsel1=1<<24;

    fio0dir=0xa000ffff;
    fio0clr=0x10000000;
    fio0set=0x20000000;
    fio0clr=0x80000000;

    adc_init(1);
    for (i=0;i<10;i++)
    {
    ad0cr|=(1<< 24);
    while(!(ad0dr1 & 0x80000000));
    ad0cr&=0xf8ffffff;
    x+=(ad0dr1>>6)&0x3ff;
    }

    pinsel1=0;

    padc_point->x = (x/42.6) ;
    padc_point->y = 320l-(y/32);
    }

    */
    /************************************************** ************************************
    read touch with ads7843 --
    ************************************************** ************************************/
    void spi_init_touch()
    {
    s0spccr=0xf5; // clock devider = 12
    s0spcr=0x820; // master - 8bit transfer - cpol&cpha=0 - msb first
    }


    unsigned char readadc(unsigned char axis)
    {
    s0spdr = axis; // transfer axis
    while((s0spsr & 0x80) == 0); // wait for complete
    return (s0spdr); // get data
    }

    void readtouch(point * padc_point)
    {

    unsigned int x,y;
    unsigned char buf_data[4];
    spi_init_touch();
    // enable touch screen
    pinsel0=0x1500;
    touch_clr; // enable cs

    buf_data[0] = readadc(0xd0); //write command measure x-position
    buf_data[0] = readadc(0x00); //read adc data x-position (7-bit byte high) data: 0ddddddd (bit11-bit5)
    buf_data[1] = readadc(0x90); //write command measure y-position ; read adc data x-position (5-bit byte low) data:ddddd000(bit)
    buf_data[2] = readadc(0x00); //read adc data y-position(7-bit byte high) data: 0ddddddd (bit11-bit5)
    buf_data[3] = readadc(0x00); //read adc data y-position(5-bit byte low) data: Ddddd000 (bit)

    // disable touch screen
    touch_set; // disable cs
    pinsel0=0x00;

    x = (unsigned int)buf_data[0] << 5; // shift 7 bit high
    x |= (unsigned int)buf_data[1] >> 3; // shift 5 bit low

    y = (unsigned int)buf_data[2] << 5; // shift 7 bit high
    y |= (unsigned int)buf_data[3] >> 3; // shift 5 bit low

    padc_point->x = x/17.06 ;
    padc_point->y = (4096l-y)/12.8;
    }

    void show_touch()
    {
    delay_ms(12,10);
    glcd_clrline(19,black);
    readtouch(&coordinate);
    glcd_setline(1,19);
    sprintf(buf,"x=%d y=%d",coordinate.x,coordinate.y);
    glcd_puts(buf,red,black,0);
    }[/php]
    تشکر ولی مهندس این که واسه فیلیپسه

  19. #10
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    شما مگه هنوز راه ننداختی ! من سورسی رو که برات ضمیمه کردم ، خودم تست کردم و جواب هم گرفتم دایی جان

  20. #11
    کاربر علاقه مند morykeys آواتار ها
    تاریخ عضویت
    Oct 2011
    نام
    کیخایی
    نوشته ها
    96
    تشکر
    30
    تشکر شده 45 بار در 41 پست

    پیش فرض

    مهندس بابت اون برنامه ممنون واقعا ممنون اما زمان میبره تا بفهممش چون خیلی پیشرفتس
    به کاربری هم که کدهای فیلیپس رو گذاشته بود گفتم که ماله فیلیپسه همین
    فعلا دارم با برنامهشما دست و پنجه نرم می کنم.
    البته spi م راه نیفتاده باید تلاش کنم از مثالی هم که گذاشته بودید تو تاپیکای دیگه استفاده کردما اما روی پایه های (MOSI و SPCK ) سیگنال ندارم.
    ویرایش توسط morykeys : 16-01-2012 در ساعت 17:37

  21. #12
    عضو جدید
    تاریخ عضویت
    Jan 2011
    نوشته ها
    5
    تشکر
    3
    تشکر شده 3 بار در 2 پست

    پیش فرض

    سلام خدمت دوستان عزیز،
    من هم همین مشکل رو دارم البته روی برد EKE2 سری Sam7x256 کویر.
    روی برد ال سی دی از Xpt2046 که مشابه ADS7843 هست استفاده شده و وقتی برنامه تاچ رو روش میریزم اصلا جوابی نمی ده
    این سورس هایی که بود ظاهرا با میکروی LPC بود.
    اگه کسی می دونه مشکل از کجاست لطفا راهنمایی کنه.

  22. #13
    عضو جدید
    تاریخ عضویت
    Aug 2012
    نوشته ها
    5
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    سلام به دوستان عزیزم. آیا کسی تا به حال با این مشکل برخورد کرده که مقدار y خونده شده از تاچ توسط آیسی xpt2046 چه به سمت راست و چه به سمت پایین حرکت میکنیم تغییر میکنه (افزایش داره) . در ضمن به دلیل سهل انگاری پایه های تاچ و پایه های آیسی جابحا هستند. (xp و xn باید جابجا شوند و yp وyn هم با هم باید جابجا شوند.) .آیا این جابجایی میتونه خوندن رو دچار اشکال کنه؟؟؟

  23. #14
    عضو جدید
    تاریخ عضویت
    Aug 2012
    نوشته ها
    5
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    با سلام. با بررسی دقیق تر متوجه شدم که جابجایی هیچ تاثیری نداره و فقط تغییرات جابجا میشه دلیلش هم خیلی واضحه چون عملا ولتاژ بین دو پایه ای که در یک صفحه هستن و مثل یک خازن عمل میکنند رو میخونیم.
    خب در صفحه y تغییرات در هردوسمت وجود داره و به نظر میرسه تاچ در این صفحه مشکل داره علی رغم اینکه در صفحه x کاملا درسته؟؟؟
    به نظرتون باید بیخیال این تاچ بشم. تاچ 5 اینچی که تازه از کویرالکترونیک خریدم و خراب هستش. البته همراه با ال سی دی هستش. بدون اینکه استفاده کنم (واقعا زور داره)
    به نظرتون چیکار باید کرد؟؟؟

موضوعات مشابه

  1. پاسخ: 15
    آخرين نوشته: 18-03-2015, 18:21
  2. کتابخانه درایو ADS7843 برای stm
    توسط jonbakhsh در انجمن stm32
    پاسخ: 0
    آخرين نوشته: 13-03-2014, 19:04
  3. تاچ با آیسی ads7843
    توسط majid97 در انجمن LPC series (NXP)
    پاسخ: 7
    آخرين نوشته: 10-07-2013, 09:48
  4. Ads7843
    توسط jik در انجمن LPC series (NXP)
    پاسخ: 1
    آخرين نوشته: 29-04-2013, 22:16
  5. کتابخونه تاچ ads7843 برای 1768
    توسط behnam6500 در انجمن LPC series (NXP)
    پاسخ: 9
    آخرين نوشته: 20-10-2012, 15:30

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •