سلام دوستان
من تصمیم داشتم که وقتی DSP رو خوب یاد گرفتم توی سایت مطرح کنم ولی وقتی دیدم که این یه بحث مفصله ترسیدم که شاید خودم هم وسط کار ولش کنم و یا اگر هم یاد بگیرم دیگه وقت نشه توی سایت مطرح کنم (به دلیل حجم زیاد و زمان) . حالا تصمیم گرفتم که مطالبی رو توی سایت بذارم و اگه اشتباه باشه دوستان اصلاح کنن.
خوب من TMS320F2812 رو برای کارم انتخاب کردم چون به میکرو شبیه تره . پس اینجا منظورم از DSP همون TMS320F2812 است.
اولین چیزی که هست فرق نقشه حافظه DSP با میکروه.
DSP چند تا حافظه داره که شامل RAM ,ROM , FLASH میشه که همگی به صورت WORD سازماندهی شده. کل حافظه DSP از خونه 0 شروع میشه تا خونه 3FFFFF. خوب این حافظه خیلی زیاده و خیلی از قسمتهاش رزرو شده و استفاده نشده.
کل این حافظه به دو قسمت تقسیم شده که قسمت پایینی مربوط به فضای داده است و بخشهای مختلفRAM در این قسمت هستند و قسمت بالایی مربوط به فضای برنامه است که بخشهای FLASH , ROM در این قسمت هستند.
کل RAM در DSP از چند RAM تشکیل شده که هر کدام یه اسمی داره و هر کدام برای یه کار ه (هنوز نمیدونم).
در واقع فلش DSP از مکان 0 در حافظه شروع نمیشه بلکه از مکان 3D8000 شروع میشه. پس ما باید برنامه خودمون رو در این مکان از حافظه لود کنیم.
DSP مثل کامپیوتر می تواننداز چند نقطه بوت شود و به وسیله چند پایه از DSP ما میتونیم تعیین کنیم که DSP از کجا شروع به کار کنه یعنی به صورت سخت افزاری از بیرون تعیین میشه. یکی از این محلها حافظه FLASH است یکی حافظه ROM و .. و در یه حالت هم توسط یک پایه تعیین میشه که DSP از حافظه خارجی بوت شه و در اینجا دیگه میشه پرسسور.
توی حافظه ROM کارخانه یه سری جدولها و برنامه ها گذاشته و مثلا جدولهای استاندارد سینوس و کسینوس رو گذاشته و ما میتونیم موقع محاسبات ریاضی از اونا استفاده کنیم. چند تا برنامه هم گذاشته برای اینکه از یه رابط مثل RS232 یا SPI یا PARALLEL برنامه رو بخونه و توی حافظه فلش لود کنه. هر کدام از این برنامه ها یه الگوریتم واسه خوندن اطلاعات و برنامه ریزی فلش دارن. ساده ترین راه, استفاده از حالت سریال است . یعنی ما اگه بخواهیم DSP رو پروگرام کنیم به پروگرامر نیازی نداریم و میتونیم با تنظیم همون پایه های خارجی که گفتم DSP رو رو حالت بوت از ROM و لود ازطریق RS232 بذاریم و با برنامه SDFLASH یا C200PROG اونو پروگراو کنیم و بعد که پروگرام شد دوباره وضعیت پایه ها رو تغببر بدیم تا DSP از FLASH بوت شه و در واقع برنامه اجرا شه.(به همین سادگی)
برای اتصالات بین کامپیوتر و DSP هم به صورت استاندارد پورت سریال کامپیوتر رو به سریال DSP با یه MAX232 وصل میکنیم. فقط باید دقت کرد که I/O های DSP دارای ولتاژ 3.3 ولت هستند و باید در خروجی MAX232 در طرف DSP یه تقسیم مقاومتی گذاشته شه. خود هسته DSP هم با 1.8 یا 1.9 ولت کار میکنه و در کل دو سطح ولتاژ نیاز داریم.
دوستان کمک کنن این قسمت تکمیل شه. :applause:
من تصمیم داشتم که وقتی DSP رو خوب یاد گرفتم توی سایت مطرح کنم ولی وقتی دیدم که این یه بحث مفصله ترسیدم که شاید خودم هم وسط کار ولش کنم و یا اگر هم یاد بگیرم دیگه وقت نشه توی سایت مطرح کنم (به دلیل حجم زیاد و زمان) . حالا تصمیم گرفتم که مطالبی رو توی سایت بذارم و اگه اشتباه باشه دوستان اصلاح کنن.
خوب من TMS320F2812 رو برای کارم انتخاب کردم چون به میکرو شبیه تره . پس اینجا منظورم از DSP همون TMS320F2812 است.
اولین چیزی که هست فرق نقشه حافظه DSP با میکروه.
DSP چند تا حافظه داره که شامل RAM ,ROM , FLASH میشه که همگی به صورت WORD سازماندهی شده. کل حافظه DSP از خونه 0 شروع میشه تا خونه 3FFFFF. خوب این حافظه خیلی زیاده و خیلی از قسمتهاش رزرو شده و استفاده نشده.
کل این حافظه به دو قسمت تقسیم شده که قسمت پایینی مربوط به فضای داده است و بخشهای مختلفRAM در این قسمت هستند و قسمت بالایی مربوط به فضای برنامه است که بخشهای FLASH , ROM در این قسمت هستند.
کل RAM در DSP از چند RAM تشکیل شده که هر کدام یه اسمی داره و هر کدام برای یه کار ه (هنوز نمیدونم).
در واقع فلش DSP از مکان 0 در حافظه شروع نمیشه بلکه از مکان 3D8000 شروع میشه. پس ما باید برنامه خودمون رو در این مکان از حافظه لود کنیم.
DSP مثل کامپیوتر می تواننداز چند نقطه بوت شود و به وسیله چند پایه از DSP ما میتونیم تعیین کنیم که DSP از کجا شروع به کار کنه یعنی به صورت سخت افزاری از بیرون تعیین میشه. یکی از این محلها حافظه FLASH است یکی حافظه ROM و .. و در یه حالت هم توسط یک پایه تعیین میشه که DSP از حافظه خارجی بوت شه و در اینجا دیگه میشه پرسسور.
توی حافظه ROM کارخانه یه سری جدولها و برنامه ها گذاشته و مثلا جدولهای استاندارد سینوس و کسینوس رو گذاشته و ما میتونیم موقع محاسبات ریاضی از اونا استفاده کنیم. چند تا برنامه هم گذاشته برای اینکه از یه رابط مثل RS232 یا SPI یا PARALLEL برنامه رو بخونه و توی حافظه فلش لود کنه. هر کدام از این برنامه ها یه الگوریتم واسه خوندن اطلاعات و برنامه ریزی فلش دارن. ساده ترین راه, استفاده از حالت سریال است . یعنی ما اگه بخواهیم DSP رو پروگرام کنیم به پروگرامر نیازی نداریم و میتونیم با تنظیم همون پایه های خارجی که گفتم DSP رو رو حالت بوت از ROM و لود ازطریق RS232 بذاریم و با برنامه SDFLASH یا C200PROG اونو پروگراو کنیم و بعد که پروگرام شد دوباره وضعیت پایه ها رو تغببر بدیم تا DSP از FLASH بوت شه و در واقع برنامه اجرا شه.(به همین سادگی)
برای اتصالات بین کامپیوتر و DSP هم به صورت استاندارد پورت سریال کامپیوتر رو به سریال DSP با یه MAX232 وصل میکنیم. فقط باید دقت کرد که I/O های DSP دارای ولتاژ 3.3 ولت هستند و باید در خروجی MAX232 در طرف DSP یه تقسیم مقاومتی گذاشته شه. خود هسته DSP هم با 1.8 یا 1.9 ولت کار میکنه و در کل دو سطح ولتاژ نیاز داریم.
دوستان کمک کنن این قسمت تکمیل شه. :applause:
دیدگاه