سلام
من تازه شروع به کار با ARM کردم
میخوام با SPI ایسی ENC28j60 رو راه بندازم. اگه کسی اموزشی , هدری برای راه اندازی SPI میکرو AT91SAM7s64 داره بزاره تا ما هم استفاده کنیم.
سلام
من تازه شروع به کار با ARM کردم
میخوام با SPI ایسی ENC28j60 رو راه بندازم. اگه کسی اموزشی , هدری برای راه اندازی SPI میکرو AT91SAM7s64 داره بزاره تا ما هم استفاده کنیم.
یعنی تو این سایت به این بزرگی (در حال حاظر بزرگ ترین منبع فارسی آموزش arm ) کسی نیست spi این میکرو ها رو راه اندازی کرده باشه ؟
سلام دوست عزیز
اینقدر عصبانی نباشید! الان همه ی مدیرای سایت درگیر کارای سایت هستن. چون بتازگی سرور رو عوض کردیم. هنوز کلی کار مونده. الان کمتر وقت میشه که به سوالات شما جواب بدیم. یکمی سعه صدر داشته باشید.
.
عذر می خوام جواب سوال شما رو نمی دم ولی حقیقتا مگه spi چند تا رجیستر داره که بخواد کتابخونه داشته باشه؟
من احتمال می دم شما بخش spi رو در میکروتون مطالعه نکردید وگر نه می دیدید چیزی نداره و با فقط چند خط می تونید پیکربندی کنید و دیتا باهاش ارسال یا دریافت کنید.
ما در انتظار رویت خورشیدیم ...
اللهم عجل لولیک الفرج
سلام
شما می خواین Ethernet رو با مبدل ENC28j60 راه اندازی کنید ؟میخوام با SPI ایسی ENC28j60 رو راه بندازم. اگه کسی اموزشی , هدری برای راه اندازی SPI میکرو AT91SAM7s64 داره بزاره تا ما هم استفاده کنیم.
شما رو نمی دونم ولی من اگه جای شما بودم یا از can استفاده می کردم (البته به پروژه تون بستگی داره) یا اینکه میکرو رو عوضش می کردم و از سری x به جای s استفاده می کردم .
راه اندازی spi به منظور ارتباط با ENC28j60 مبحث مشکلی هست .
من spi رو برای lpc راه اندازی کردم ولی تا حالا این کار رو برای سری at91sam7 انجام ندادم .
درباره هدر هم من چیزی ندیدم و خودتون مجبورید رجیستری ها (توضیحاتشون تو دیتا شیت به طور کامل اومده) رو مقدار دهی کنید (البته در صورتی که به پروتکل spi آشنایی داشته باشین) یا حتی براش یه هدر بنویسید .
در کل فکر نکنم برای راه اندازی spi مشکل خاصی داشته باشین و موضوع اصلی ارتباط با مبدل جون سخت microchip هستش .
شما شروع کن من سعی می کنم سر بزنم و بت کمک کنم (البته سر زدن های من گاهی اوقات 3 هفته طول می کشه چون واقعا سرم شلوغه) .
پیروز باشید .
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
از جوابتون ممنون.
در مورد Ethernet خود میکرو بگم که منابع آموزشی اون کمه فرصت منم که کمه
در مورد ENC28j60 هم بگم که قبلا با AVR راش انداختم
فقط تنها مشکلی که هست راه اندازی SPI میکرو هست که برای این کار نیاز به یه مثال ایرانی نویس دارم
درضمن میخوام مدارم تو یه شبکه Lan بزارم با can نمیشه دیگه درسته ؟
راستی چرا فایل spi.h ذکر شده تو PMM 8 پیوست نشده ؟
ویرایش توسط amiraliforoozandeh : 29-12-2010 در ساعت 12:46
این خیلی خوبه ، ولی بهتر نیست شما که قبلا این کار رو با avr انجام دادین ، بذاریدش توی سایت تا بقیه هم استفاده کنن؟ خیلی ها مثل شما می خوان یه مثال ایرانی نویس داشته باشن!در مورد enc28j60 هم بگم که قبلا با avr راش انداختم
.
این راه اندازیش تحت کدویژن:
نسخه کدویژنی
اینم تحت WinAVR :
نسخه WINAVR
من خودم اول با اون کدویژنی مدار رو ساختمو ازش جواب گرفتم.
بعدش اونی که با winavr هست رو رو همون سخت افزار پیادش کردم.
اون کدویژنی ترجمه شده برنامه WinAVR هست.
نا گفته نماند اگه با وین ای وی ار پیادش کنی بهتره هم کامل تره هم سرعت اجرای برنامش بالاتره بطور مثال اگه به مداری که برنامش با کدویژنه Ping کنی 4 میلی ثانیه طول میکشه تا جواب بده ولی اگه برنامش با winavr باشه بین 1 تا 2 میلی ثانیه طول میکشه تا جواب بده. راستی یادم رفت بگم اون کدویژنی ترجمه یه ایرانی (کتاب 11 پروژه با AVR) اونی که با winavr خارجی نویس.
هنوزم جوابمو نگرفتم ها (SPI در AT97sam7s64)
ویرایش توسط amiraliforoozandeh : 29-12-2010 در ساعت 15:32
ممنون از لطفت ، انشالله مشکلت با spi هم حل میشه. من خودم arm کرار نکردم وگرنه کمکت می کردم.این راه اندازیش تحت کدویژن:
نسخه کدویژنی
اینم تحت winavr :
نسخه winavr
.
سلام اول از همه ازتون بابت سایت تشکر میکنم. من به یک برنامه کدویژن برای شبکه کردن بدجوری احتیاج دارم می خوام سنسور به adc میکرو وصل بشه مقدار انالوگش به دیجیتال تبدیل بشه بعد enc28j60 اون رو با لن بفرسته دوباره از اون طرف انتن مقدارو به enc بده و سپس میکرو و مقدار انالوگ . پس شد دوتا برنامه یکی فرستادن از avr به encو برعکس . ممنون میشم کمکم کنید.
اگه مشکل شما صرفا SPI هست من یه مثال براتون ضمیمه میکنم برای ارم S64
اگر جواب گرفتید برنامتون رو قرار بدید که بقیه هم استفاده کنن
این برنامه میکرو رو توی مد مستر پیکربندی میکنه و تنظیمات زیر رو برای درگاه SPI اعمال میکنهکد:#include <Atmel/ioat91sam7s64.h> void main () { //--------------------start up-------------------------- AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; // AT91C_WDTC_WDDIS=(1<<15) AT91C_BASE_RSTC->RSTC_RMR=0xA5000001; //--------------------speed up-------------------------- AT91C_BASE_CKGR->CKGR_MOR = 0xF01; AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC; AT91C_BASE_PMC->PMC_MCKR = 0x3; AT91C_BASE_PMC->PMC_SCER = 0x1; //----------------------------------------------------- AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_PIOA ); // AT91C_ID_PIOA=2 AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_SPI); // AT91C_ID_SPI=5 //----------------------------------------------------- AT91C_BASE_PIOA->PIO_PER=(1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7); AT91C_BASE_PIOA->PIO_OER=(1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7); AT91C_BASE_PIOA->PIO_OWER=(1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7); AT91C_BASE_PIOA->PIO_ODSR=0xFF; AT91C_BASE_PIOA->PIO_PDR = (1<<11|1<<12|1<<13|1<<14); AT91C_BASE_PIOA->PIO_MDER = (1<<11|1<<12|1<<13|1<<14); AT91C_BASE_PIOA->PIO_ASR = (1<<11|1<<12|1<<13|1<<14); AT91C_BASE_PIOA->PIO_PPUER = (1<<11|1<<12|1<<13|1<<14); AT91C_BASE_SPI->SPI_MR = 0x0F000091; AT91C_BASE_SPI->SPI_CSR[0] = 0x0F0FFF02; AT91C_BASE_SPI->SPI_CR = 0x1; while (1) { while (!(AT91C_BASE_SPI->SPI_SR&0x2)); AT91C_BASE_SPI->SPI_TDR = 0x55; while (!(AT91C_BASE_SPI->SPI_SR&0x1)); AT91C_BASE_PIOA->PIO_ODSR = AT91C_BASE_SPI->SPI_RDR&0xFF; } }
mode 0 , CLK=MCK/255 , delay befor spck=15/MCK
توی حلقه برنامه هم مدام مقدار 0x55 رو روی SPI میفرسته و مقدار دریافتی رو روی پورت A نشون میده