ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2015/03/21
    7
    0

    مشکل در راه اندازی eeprom 512k با sam7x256

    با عرض سلام خدمت دوستان.
    چند روزه درگیر راه اندازی eeprom 512k هستم.متاسفانه هنوز نتونستم از eeprom جواب بگیرم!! واقعا کلافه شدم :angry: :angry: :angry:
    خواهشا اگه کسی از دوستان کار کرده ممنون میشم راهنماییم کنه.
    با تشکر.
    کدی ک خودم نوشتم جواب نگرفتم!!!!.
    کد:
    #include <AT91SAM7X256.h>	
    #include <lib_AT91SAM7X256.h>
    #include <PIO.h>
    #include <delay.h>
    #include <adc.h> 
    #include <twi.c>
    
    #define PORTRAIT
    #define family_AT91SAM7X
    #define TFTLCD_DATAPORT_B
    #define LCD_OFFSET 0
    #define TFTLCD_CONTROLPORT_A
    #define TFTLCD_CS 22
    #define TFTLCD_RS 23
    #define TFTLCD_WR 24
    #define TFTLCD_RD 25
    #define TFTLCD_RST 26
    #include <lcd.h>
    
    
    int x11,y11;
    char m;
    char lcd_buf[100];
    unsigned char eeprom[30];
    unsigned char str[20];
    char tx =m;
    char data;
    
    
    int main()
    {
    
    LCD_Init();
    	
    	*AT91C_PIOA_PDR = 1<<10 | 1<<11;
    	*AT91C_PIOA_ASR = 1<<10 | 1<<11;
    	*AT91C_PIOA_MDER = 1<<10 | 1<<11;
    	*AT91C_PIOA_PPUER = 1<<10 | 1<<11;
     *AT91C_PMC_PCER = 1<<9;
    	*AT91C_TWI_CWGR = 0X00017676;
    	*AT91C_TWI_CR = 1<2;
    	
    
    	//WIRTE
    	*AT91C_TWI_MMR = 0X00450200;
    *AT91C_TWI_IADR = 3520;
    *AT91C_TWI_THR = a;
    while((*AT91C_TWI_SR & 0X4) == 0 );		
    while((*AT91C_TWI_SR & 0X1) == 0 );		
    		delay_ms(12 );
    
    		//read 
    	*AT91C_TWI_MMR = 0X00451200;
    *AT91C_TWI_IADR = 3520;
    *AT91C_TWI_CR = 0X3;
    		while((*AT91C_TWI_SR & 0X2) == 0 );		
    		data=*AT91C_TWI_RHR;
    		while((*AT91C_TWI_SR & 0X1) == 0 );		
    		delay_ms(10);
    				 sprintf(eeprom,"data=""%d",data);
    			 LCD_ShowString(40,60,eeprom);
    	delay_s(2);
    
    	
    	/*
    	
    		PIO_Periph(PORT_A,1<<10|1<<11,0);	
    PIO_Opendrain(PORT_A,1<<10|1<<1);
    	Pullup(PORT_A,1<<10|1<<11);
    	TWI_Configure(100000);
    TWI_WriteByteIadr (BASE_TWI,0X45,20000,2,&tx);
    	delay_ms(10);
    TWI_ReadByteIadr (BASE_TWI,0X45,20000,2,&rx);
    		LCD_Clear(BLACK);
    		 sprintf(eeprom_buf,"rx=""%d",rx);
    	 LCD_ShowString(40,60,eeprom_buf);
    	delay_s(1);
    	*/
    while(1)
     {
    
    	
    	}
    }
  2. #2
    2011/05/02
    22
    1

    پاسخ : مشکل در راه اندازی eeprom 512k با sam7x256

    سلام.

    لطفا کدها رو که می زارید از قسمت انتخاب کد C رو انتخواب کنید که خواناتر نمایش داده بشه.
    پیشنهاد می کنم یه کتابخانه بهتر انتخاب کنید و البته با نوشتن یه سری توابع در سطح بالاتری از رجیستر کد بزنید.
    در مورد آی سی های سری AT24CXX ، اینها 2 مدل دارن ، یه نمونه آدرس دهی شون با 3 پایه ی آدرس هست. مثل AT24C32 و ... ، این روش هم یه روش قدیمی هست.
    و یه نمونه دیگه از خطوط آدرس سخت افزاری برای آدرس دهی استفاده نمی کنه و این کار رو نرم افزاری انجام می ده. مثل AT24C02 و ... و اکثرا از این دسته هستن.

    در مورد اول برای ارتباط با I2C شما باید با پایه ی های سخت افزاری وارد رنج خاصی از آدرس بشید و بعد از اون با 8بیت آدرسی که با I2C انتقال می دید به خانه مد نظر می رسید.
    در مورد دوم شما 2 تا 8 بیت با I2C به سمت EEPROM می فرستید که حاصل 16 بیتیش مکان آدرس رو تعیین می کنه.
    دیتاشیت AT24C512 رو چک کنید ببینید از کدوم دسته می شه ، احتمال می دم از دسته ی دوم باشه.

    موفق باشید.
    It is what it is

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2015/03/21
    7
    0

    پاسخ : مشکل در راه اندازی eeprom 512k با sam7x256

    سلام.

    لطفا کدها رو که می زارید از قسمت انتخاب کد C رو انتخواب کنید که خواناتر نمایش داده بشه.
    پیشنهاد می کنم یه کتابخانه بهتر انتخاب کنید و البته با نوشتن یه سری توابع در سطح بالاتری از رجیستر کد بزنید.
    در مورد آی سی های سری AT24CXX ، اینها 2 مدل دارن ، یه نمونه آدرس دهی شون با 3 پایه ی آدرس هست. مثل AT24C32 و ... ، این روش هم یه روش قدیمی هست.
    و یه نمونه دیگه از خطوط آدرس سخت افزاری برای آدرس دهی استفاده نمی کنه و این کار رو نرم افزاری انجام می ده. مثل AT24C02 و ... و اکثرا از این دسته هستن.

    در مورد اول برای ارتباط با I2C شما باید با پایه ی های سخت افزاری وارد رنج خاصی از آدرس بشید و بعد از اون با 8بیت آدرسی که با I2C انتقال می دید به خانه مد نظر می رسید.
    در مورد دوم شما 2 تا 8 بیت با I2C به سمت EEPROM می فرستید که حاصل 16 بیتیش مکان آدرس رو تعیین می کنه.
    دیتاشیت AT24C512 رو چک کنید ببینید از کدوم دسته می شه ، احتمال می دم از دسته ی دوم باشه.

    موفق باشید.

    خیلی ممنون از پاسخ شما.
    AT24C512 از نوعی هستش ک از پایه های سخت افزاری برای ادرس دهی استفاده میکنه.
    از کتابخونه TWI.C ک استفاده میکنم هنگامی ک میکرو ب خط کافیگ کردن کلاک TWI میرسه هنگ میکنه ب طوری ک صفحه LCD سفید میشه!!!بعد از هر خط کد یک متن رو روی lcd نمایش دادم تا متوجه بشم ک دقیقا مشکل از کجاست! بعد متوجه شدم ک مشکل از کانفیگ کلاک twi هستش!!!
    [code=c]#include <AT91SAM7X256.h>
    #include <lib_AT91SAM7X256.h>
    #include <PIO.h>
    #include <delay.h>
    #include <adc.h>
    #include <twi.c>
    #define PORTRAIT
    #define family_AT91SAM7X
    #define TFTLCD_DATAPORT_B
    #define LCD_OFFSET 0
    #define TFTLCD_CONTROLPORT_A
    #define TFTLCD_CS 22
    #define TFTLCD_RS 23
    #define TFTLCD_WR 24
    #define TFTLCD_RD 25
    #define TFTLCD_RST 26
    #include <lcd.h>

    int x11,y11;
    char a;
    char lcd_buf[100];
    unsigned char eeprom[30];
    unsigned char str[20];
    char tx = 0xff;
    char sa = 0xff;
    char data;
    const unsigned char str1[] =
    {
    0x44, 0x06, 0x37, 0x06, 0x41, 0x06, 0x27, 0x06, 0x20, 0x00, 0x31, 0x06, 0x45, 0x06,
    0x32, 0x06, 0x20, 0x00, 0x2E, 0x06, 0x48, 0x06, 0x2F, 0x06, 0x20, 0x00, 0x31, 0x06, 0x27, 0x06,
    0x20, 0x00, 0x48, 0x06, 0x27, 0x06, 0x31, 0x06, 0x2F, 0x06, 0x20, 0x00, 0x46, 0x06, 0x45, 0x06,
    0x27, 0x06, 0xCC, 0x06, 0xCC, 0x06, 0x2F, 0x06,0x00,0x00
    } ;


    int x1 (void)
    {
    int b;
    config_adc(0x04);
    Output(PORT_B,PB_28|PB_30);
    Input(PORT_B,PB_27|PB_29);
    Set_Out(PORT_B,PB_30);
    Clr_Out(PORT_B,PB_28);

    start_adc();
    b = read_adc(2);
    delay_us(100);
    return b;
    };
    int y1 (void)
    {
    int a;
    config_adc(0x02);
    Output(PORT_B,PB_27|PB_29);
    Input(PORT_B,PB_28|PB_30);
    Set_Out(PORT_B,PB_29);
    Clr_Out(PORT_B,PB_27);

    start_adc();
    a = read_adc(1);
    delay_us(100);
    return a;

    };

    int main()
    {

    LCD_Init();

    PIO_Periph(PORT_A,1<<10|1<<11,0);
    LCD_Clear(BLACK);
    tftlcd_putsf_mix((unsigned char*)"aa",2);
    delay_ms(500);

    PIO_Opendrain(PORT_A,1<<10|1<<11);
    LCD_Clear(BLACK);
    tftlcd_putsf_mix((unsigned char*)"bb",2);
    delay_ms(500);

    Pullup(PORT_A,1<<10|1<<11);
    LCD_Clear(BLACK);
    tftlcd_putsf_mix((unsigned char*)"cc",2);
    delay_ms(500);
    TWI_Configure(100000);
    LCD_Clear(BLACK);
    tftlcd_putsf_mix((unsigned char*)"dd",2);
    delay_ms(500);


    while(1)
    {


    TWI_WriteByteIadr (BASE_TWI,0XA0,20000,2,&tx);
    LCD_Clear(BLACK);
    tftlcd_putsf_mix((unsigned char*)"O",2);
    delay_ms(500);

    delay_ms(10);
    TWI_ReadByteIadr (BASE_TWI,0XA1,20000,2,&data);
    LCD_Clear(BLACK);
    tftlcd_putsf_mix((unsigned char*)"OO",2);
    delay_ms(500);

    delay_ms(10);
    LCD_Clear(BLACK);
    if(data == sa)
    tftlcd_putsf_mix((unsigned char*)"yes",2);
    else
    tftlcd_putsf_mix((unsigned char*)"no",2);

    delay_s(1);


    x11=x1();
    sprintf(str,"x=""%d",x11);
    POINT_COLOR=Yellow;
    LCD_Clear(RED);
    LCD_ShowString(40,60,str);
    y11=y1();
    sprintf(str,"y=""%d",y11);
    LCD_ShowString(40,80,str);
    delay_ms(500);



    }
    }
    [/code]
  4. #4
    2011/05/02
    22
    1

    پاسخ : مشکل در راه اندازی eeprom 512k با sam7x256

    چند سال پیش از سری sam7x استفاده می کردم و الان ذهنیتی از این کتابخانه ندارم. اما شما چک کنید ورودی تابع TWI_Configure چی هست و آیا رقمی که بر حسب Hz بهش دادید درست هست یا نه ، اگر هم مثالی براش دارید می تونید در مثال چک کنید.
    یه سرچ از تابع تو گوگل زدم لینک زیر به چشم خورد که احتمالا با کتابخانه ی شما متفاوته ، اما می تونید توابع مورد استفاده تون رو باهاش چک کنید و یا مستقیم از همین استفاده کنید.

    http://elk.informatik.fh-augsburg.de/da/da-42/Quellcode/ELUA/bearbeitet/elua-0.5/src/platform/at91sam7x/twi.c
    It is what it is

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

نمایش نتایج: از 1 به 4 از 4

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

  1. مشکل در راه اندازی AT24C01 EEPROM با STM32F103RBT6
    توسط کنجکاو! در انجمن STM
    پاسخ: 9
    آخرين نوشته: 2015/08/04, 18:09
  2. راه اندازی UART مجازی در Sam7x256
    توسط silentshot در انجمن ATMEL
    پاسخ: 0
    آخرين نوشته: 2015/02/17, 09:20
  3. مشکل با sam7x256
    توسط مصطفی مقدم در انجمن ATMEL
    پاسخ: 3
    آخرين نوشته: 2013/06/16, 21:30
  4. راه اندازی SD CARD در SAM7X256
    توسط s_gholamrezaee69 در انجمن ATMEL
    پاسخ: 3
    آخرين نوشته: 2013/04/10, 15:24
  5. مشکل راه اندازی lcd n96 با sam7x256
    توسط m.vosooghi در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 1
    آخرين نوشته: 2012/06/07, 13:42

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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