نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
محرم
Avatar

کتابخانه راه اندازی eeprom خارجی با stm32

انجمن های تخصصی برق و الکترونیک ECA

سلام : از اونجایی که سری های محدودی از ARM های ساخت STM ایپیرام داخلی دارن و اکثر این میکروکنترلر ها ایپیرام داخلی ندارن تصمیم گرفتم که کتابخونه ای برای کار با ایسی های ایپیرام رو بزارم ایسی های سری AT24CXX توسط این کتابخونه پشتیبانی میشن؛ این سری ایپیرام ها هم قیمت ارزونی دارن و رابطشون I2C هستش؛ یک پین هم دارن که تعیین میکنه تا اطلاعای روی ایسی قفل بشه یا نه (در صورت قفل کردن دیتاهای ایسی امکان نوشتن روی ایسی وجود نداره و و فقط میشه دیتا ها رو از رو ایسی خوند )؛ ( کتابخانه راه اندازی eeprom خارجی با stm32 )
کتابخانه راه اندازی eeprom خارجی با stm32

کتابخانه راه اندازی eeprom خارجی با stm32

چندتا نکته راجب این ایسی :
1) عدد بعد از C در شماره ایسی نشان دهنده ضرفیت حافظه ایسی هست مثلا
AT24C02 دارای دو کیلوبایت ایپیرام
AT24C32 دارای 32 کیلو بایت ایپیرام هستش
2) از اونجایی که رابط این ایسی I2C هستش باید برای دوتا پین SDA (دیتای I2C ) و SCL (کلاک I2C) مقاومت پول اپ بزارید و از اونجایی که سطح ولتاژ ما در کار با این ایسی 3.3 ولت هستش مقدار این مقاومت ها باید 1 کیلواهم باشد.
3) لزومی به اتصال پین WP ایسی به میکروکنترلر ضرورری نیستش ( در صورت متصل نشدن به میکرو باید در سخت افزار به عنوان زمین تعریف شود ) (توضیحات صفحه 3 دیتاشیت )
Write Protect (WP): The Write Protect input, when connected to GND, allows normal write operations. When WP is connected directly to VCC, all Write operations to the memory are inhibited. If the pin is left floating, the WP pin will be internally pulled down to GND; however, due to capacitive coupling that may appear during customer applications, Atmel recommends always connecting the WP pins to a known state. When using a pull-up resistor, Atmel recommends using 10kΩ or less
خب میریم سراغ فایل ها کتابخونه :
پس برای استفاده از کتابخانه دو فایل i2c.c و i2c.h رو به محل پروژه مون کپی میکنیم و به پروژه اضافه میکنیم.
خب حالا وارد فایل i2c.h میشیم توابع زیر رو داریم
بترتیب توابع رو توضیح میدیم
از این تابع برای ایشنال کردن ایسی و میکرو استفاده میشه …
برای نوشتن بایت در ادرس خاصی از حافظه استفاده میشه … ارگومان اول مقدار و ارگومان دوم ادرس هستش
برای خوندن مقدار بایت ایپیرام استفاده میشه ورودی یک ارگومان داره که ادرس هست و خروجی هم مقدار خونده شده از اون بایت
این تابع هم برای نوشتن متغیر های 16 بیتی روی ایپیرام استفاده میشه این تابع از دو بایت متوالی برای نوشتن متغیر 16 بیتی استفاده میکنه؛ ارگومان اول مقدار متغیر هست و ارگومان دوم ادرس نوشتن
نکته : برای مثال اگر در ادرس 0 یک متغیر 16 بیتی رو توی ایپیرام بریزیم این تابع از ادرس 0+1 هم برای نوشتن 8 بیت دوم متغیر 16 بیتی استفاده میکنه و در عمل دوبایت از ایپیرام رو اشغال میکنه.
از این تابع هم برای خوندن مقدار متغیر 16 بیتی از ایپیرام استفاده میشه ارگومان اول برای ادرس هست و تابع مقدار 16 بیتی خونده شده از ادرس رو توی خروجی برمیگردونه؛ خب بریم سراغ i2c.c توی این فایل هم دوتا دیفاین مهم داریم
مشخص کننده i2c متصل به ایپیرام هست
حالا کتابخونه ما رو پیشفرض ایپیرام رو به i2c1 متصل هست ( نیازی به تغیر نیست )؛ ولیکن برای اتصال به i2c دوم یک مثال میارم ….
باید توی این تابع دستکاری کنیم اولین ادیت اینه که
این خط اومده کلاک رو برای i2c1 وصل کرده ولی ما باید کلاک رو به i2c2 وصل کنیم؛ پس اینجوری ادیت میکنیم
دومین ادیت ابنه که پینای i2c2 رو دیفاین کنیم
این خط رو اینجوری تغیر میدیم؛ اینجا توی استراکچر i2c هم نیازی به تغیر نیست ولی میتونید سرعت ارتباط رو تعیین کنید
الان سرعت i2c روی 100 کیلوهرتز تنظیم هست (100000هرتز)
حالا کل تابع کانفیگ ما برای i2c2 میشه اینجوری
حالا فقط باید این تابع رو توی main اجرا کنیم تا میکرو و ایپیرام ایشنال بشن تا بتونیم توی بقیه برنامه با توابعی که بالا توضیح دادم کار کنیم و دیتا بنویسم و بخونیم؛ این خط هم توی تابع main مینویسیم
به همین سادگی smile برام دعا کنید … با ارزوی موفقت  heart
تعداد مطالب : 20 تا
Avatar مهدی زمانی هستم متنفر از کلیشه های تکراری پادگان انجام پروژه های التیوم و برنامه نویسی میکروکنترلر پذیرفته میشود تلگرام : @stm32f اینستاگرام:zamanimahdi77 ایمیل:timahdizamani@gmail.com
بقیه جلسات : ???
این مطلب هیچ طبقه بندی یی ندارد!
ارسال دیدگاه

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) پسورد فایل های سایت : www.dmf313.ir

4) نظرات حاوی کد برنامه نویسی تایید نمیشوند ( قالب سایت بهم میریزه )

  1. Avatar

    مهمان

    داود

    سلام
    I2C_EVENT_MASTER_BYTE_TRANSMITTED
    این متغیر کجا تعریف شده؟هیچ کجا آدرسی ازش نیست
    I2C_CheckEvent این یکی هم تابعی من ازش پیدا نکردم
    ممنون میشم راهنمایی کنید
    اگر به ایمیل ارسال کنید

  2. Avatar

    مهمان

    مقصودی

    سلام من اصلا نمیتونم یه پروژه STM با کد ویژن درست کنم از کجا شروع کنم من میخوام برنامه نویسی STM8 رو تو کد ویژن انجام بدم چی کار کنم از کجا شروع کنم . من قبلا با بیس کام کار میکردم ولی کد ویژن تولیست چیپ هاش STM8 رو نمی بینم

    • مهدی دمیرچیلو

      مدیر سایت

      مهدی دمیرچیلو

      سلام – کدویژن مگه فقط مخصوص میکروهای AVR نیست؟

  3. Avatar

    مهمان

    mammad

    دادا دمت گرم آموزش زیبایی بود اما لاقل کتابخانه rcc.h داخل برنامرو هم میزاشتی که کار بده ..

  4. Avatar

    مهمان

    key

    با سلام
    من با stm32f1xx.h توابع رو میخوام بنویسم، یک سری متغیر ها برای مثال I2C_InitStructure.I2C_Ack و I2C_InitStructure.I2C_AcknowledgedAddress رو نمیتونم پیدا کنم که جایگزین کنم و کدها رو بر او اساس تغییر بدهم. توضیح میفرمایین برای اینکه کتابخانه ارتباط eeprom خارجی رو براساس i2c و با میکرو stm32f103 بتونم بنویسم چه کار باید کنم و چه تغییراتی نیازه؟

  5. Avatar

    مهمان

    کشاورزی

    سلام ممنون مطالبی که ارائه دادین.
    توالع تعهریف شده بر اساس stm32f10x.h هستند، توضیح میدین همین توابع بر اساس توابع هال و stm32f1xx.h به چه صورت تغییر میکنند؟

  6. Avatar

    مهمان

    مجتبی

    سلام این کتابخونه که نوشتی توی قسمت. C برای include کردن نوشتی stm32f10x_i2c.h در صورتی که نام فایل i2c هست و موقع کامپایل ارور میده که فایل. Hرو نمیتونه پیدا کنه

  7. Avatar

    مهمان

    حسین

    با سلام و سپاس. این کتابخانه برای stm32f1 است یا برای همه خانواده stm32 می شود استفاده کرد؟ در صورت نیاز به تغییر کتابخانه، به منظور استفاده با میکرو stm32f030f4p6 چه تغییراتی نیاز است؟ ممنون

  8. Avatar

    مهمان

    محمد

    سلام آقای زمانی خسته نباشد در کتابخانه های spl کتابخانه usb نیست نظر شما برای استفادا از usb چیه کتابخانه های hal بهتر نیست ؟❤

    • Avatar

      نویسنده این مطلب

      مهدی زمانی

      سلام
      نمیدونم چرا کتابخونه USB نیست ولی با اندک جستجویی که من کردم میشه جدا بهش اضافه کرد …
      من USB رو به دلیل اینکه 48 مگ از کلاک میکرو رو میگیره نیازم نشده راه بندازم تا حالا ….