با سلام
من یک eeprom خارجی(at24c128) رو در مدار وصل کردم گاهی اوقات به خوبی کار میکنه ولی بعد از گذشت چند دقیقه از کار می افته. بعدش مثلا از هر ده بیست باری که میکرو رو ریست میکنم یکی دو بار درست کار میکنه. کلافم کرده دیگه. به نظر میرسه با ولتاژ 5 ولت احتمال کار کردنش میره بالاتر و هر چی ولتاژ کمتر میشه احتمال کار نکردنش بیشتر میشه. ولی در هر صورت با هر ولتاژی به صورت کامل درست کار نمیکنه و بگیر نگیر داره.
راستی شبیه سازیش با پروتئوس هم درست کار میکنه.
مدار و برنامم رو میذارم پایین دوستان با تجربه لطف کنن ببینن متوجه میشن مشکل از کجاست؟
این مدارمه(البته مدار نسبت به محور y ها باید قرینه بشه) :

این هم فانکشن هام:
من یک eeprom خارجی(at24c128) رو در مدار وصل کردم گاهی اوقات به خوبی کار میکنه ولی بعد از گذشت چند دقیقه از کار می افته. بعدش مثلا از هر ده بیست باری که میکرو رو ریست میکنم یکی دو بار درست کار میکنه. کلافم کرده دیگه. به نظر میرسه با ولتاژ 5 ولت احتمال کار کردنش میره بالاتر و هر چی ولتاژ کمتر میشه احتمال کار نکردنش بیشتر میشه. ولی در هر صورت با هر ولتاژی به صورت کامل درست کار نمیکنه و بگیر نگیر داره.
راستی شبیه سازیش با پروتئوس هم درست کار میکنه.
مدار و برنامم رو میذارم پایین دوستان با تجربه لطف کنن ببینن متوجه میشن مشکل از کجاست؟
این مدارمه(البته مدار نسبت به محور y ها باید قرینه بشه) :

این هم فانکشن هام:
کد:
#define EEPROM_BUS_ADDRESS 0xA0 unsigned char eeprom_read(char address){ unsigned char data,r; i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address>>8); i2c_write(address); i2c_start(); i2c_write(EEPROM_BUS_ADDRESS | 1); data=i2c_read(0); i2c_stop(); delay_ms(5); return data; } ///////////////////////////////////////////////////////////////////////////////////////////////// void eeprom_write(char address , char data){ unsigned char r; i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address>>8); i2c_write(address); i2c_write(data); i2c_stop(); delay_ms(5); }
دیدگاه