تابع زیر را داشته باشید
تابع بالا مربوط به کتابخانه AT45DB321 میباشد.
در توضیح دسترسی به پیچ و بایت های پیچ در دیتا شیت بدین صورت امده که 13 بیت اول از 24 بیت ارسالی مربوط پیچ انتخابی و 10 بعد مربوط به بایت انتخابی می باشد.قسمتی که توضیح داده شده در دیتا شیت به این صورت است

حال برروی کاغذ 2^13=8192 و 2^10=512 می شود.
ولی برروی عمل و در داخل میکرو می بایست تبع بصورت زیر محتویات اخرین پیچ رو در بافر بریزه ولی در عمل محتویاته پیچ 4096 رو میریزه
کد:
void at45_readPage2(unsigned int page,unsigned int offset,unsigned int len,char * dest) { unsigned char sendspi; DF_CS=1; DF_CS=0; spi(0xe8); //0xD2 sendspi= page >> 6 ; spi(sendspi); sendspi = ((page << 2) | (offset >> 8)) ; spi(sendspi); spi(offset & 0xff); spi(0x00); spi(0x00); spi(0x00); spi(0x00); for(i = 0 ; i < len ; i++ ) dest[ i ] = spi( 0xff ); DF_CS=1; }
تابع بالا مربوط به کتابخانه AT45DB321 میباشد.
در توضیح دسترسی به پیچ و بایت های پیچ در دیتا شیت بدین صورت امده که 13 بیت اول از 24 بیت ارسالی مربوط پیچ انتخابی و 10 بعد مربوط به بایت انتخابی می باشد.قسمتی که توضیح داده شده در دیتا شیت به این صورت است

حال برروی کاغذ 2^13=8192 و 2^10=512 می شود.
ولی برروی عمل و در داخل میکرو می بایست تبع بصورت زیر محتویات اخرین پیچ رو در بافر بریزه ولی در عمل محتویاته پیچ 4096 رو میریزه
at45_readPage2(8191,0,264,Buf2);
ولی با اجرای تابع زیر محتویاته اخرین پیچ ریخته میشهat45_readPage2(16383,0,264,Buf2);
تابع را بصورت زیر تصحیح کردم ولی اصلا نتیجه جالب نبودکد:
spi(0xe8); //0xD2 sendspi= page >> 7 ; spi(sendspi); sendspi = ((page << 1) | (offset >> 7)) ; spi(sendspi); spi(offset & 0xff);
دیدگاه