ماژول W25Q32B حافظه فلش با رابط SPI
ماژول W25Q32B حافظه فلش با رابط SPI
ماژول W25Q32B یک حافظه فلش فوقالعاده سریع با ظرفیت 32 مگابایت است که به وسیله پروتکل SPI قابل دسترسی است. این ماژول برای ذخیره سازی و بارگذاری فایلهای مختلف در پروژههای الکترونیکی مورد استفاده قرار میگیرد. یکی از کاربردهای اصلی این ماژول، ذخیره سازی کد های برنامهنویسی برای میکروکنترلرها و بردهای توسعه است. همچنین در برخی پروژههای اینترنت اشیاء (IoT)، از این ماژول برای ذخیرهی دادههای حسگرها و دستگاههای اینترنتی استفاده میشود.
همچنین میتوان از این ماژول برای ذخیرهی تصاویر، صداها و فیلمها در پروژههای الکترونیکی استفاده کرد. با توجه به حجم ذخیرهسازی بالا، ماژول W25Q32B به عنوان یک جایگزین عالی برای ماژولهای EEPROM کوچکتر مانند 24C32 استفاده میشود. W25Q32B یک حافظه فلش NOR با ظرفیت 32 مگابیت است. برخلاف حافظه فلش NAND، در حافظه فلش NOR هر بخش از حافظه به صورت مستقل خوانده و نوشته میشود. این حافظه فلش برای ذخیرهسازی دائمی دادهها و برنامههای کاربردی در دستگاههای الکترونیکی مورد استفاده قرار میگیرد.
مشخصات فنی و ویژگی های کلی ماژول W25Q32B
دارای پورت سریال SPI
دارای حافظه 4 مگابایتی
دارای ولتاژ کاری 2.7 الی 3.6
دارای جریان مصرفی 4 میلی آمپری
ظرفیت 32 مگابیت
سرعت بالای خواندن و نوشتن
پشتیبانی از ولتاژهای 1.8 و 3.3 ولت
پشتیبانی از رابط SPI
قابلیت حذف بلوکی و صفحهای دادهها
مصرف کم انرژی در حالت Standby
این حافظه فلش در بسیاری از بردها و ماژولهای الکترونیکی مانند آردوینو و رزبری پای مورد استفاده قرار میگیرد.
بررسی پایه های pinout ماژول W25Q32B
پایه یک (Pin 1) - CLK: این پایه مربوط به ساعت سریال SPI است و برای هماهنگی بین دستگاه و میکروکنترلر استفاده میشود.
پایه دو (Pin 2) - /CS: این پایه برای کنترل میکروکنترلر بر روی ماژول W25Q32B استفاده میشود. هنگامی که میکروکنترلر این پایه را به حالت فعال (LOW) تغییر میدهد، ارتباط با حافظه فلش برقرار میشود.
پایه سه (Pin 3) - DO: این پایه برای خروجی داده از ماژول W25Q32B استفاده میشود. برای خواندن دادههای ذخیره شده در حافظه، این پایه به وسیله میکروکنترلر خوانده میشود.
پایه چهار (Pin 4) - /WP: این پایه برای محافظت از دادههای ذخیره شده در حافظه استفاده میشود. هنگامی که این پایه به حالت فعال (LOW) تغییر میدهد، حافظه فلش به حالت خواندن نوشتن مجاز نمیشود.
پایه پنج (Pin 5) - GND: این پایه به منظور اتصال به زمین و منفی منبع تغذیه است.
پایه شش (Pin 6) - DI: این پایه برای ورودی داده به ماژول W25Q32B استفاده میشود. برای نوشتن دادهها به حافظه، این پایه از طریق میکروکنترلر پر شده است.
پایه هفت (Pin 7) - HOLD: این پایه برای تعلیق کردن حافظه فلش استفاده میشود. هنگامی که این پایه به حالت فعال (LOW) تغییر میدهد، حافظه فلش در حالت تعلیق قرار میگیرد.
پایه هشت (pin 8) - VCC: این پایه به منظور اتصال به ولتاژ مثبت است.
به همراه ماژول W25Q32B چه اقلامی باید خریداری شود؟
برای استفاده از ماژول W25Q32B، علاوه بر خود ماژول، نیاز به تجهیزات و ابزارهای دیگری است. در ادامه به برخی از این تجهیزات اشاره میکنیم.
میکروکنترلر: برای ارتباط با ماژول W25Q32B و کنترل آن، نیاز به یک میکروکنترلر است. میکروکنترلرهای مختلفی وجود دارند که با ماژول W25Q32B سازگار هستند. برخی از میکروکنترلرهای رایج شامل آردوینو، رزبریپای، پایکوب، STM32 و میکروکنترلرهای AVR است.
منبع تغذیه: برای تأمین برق مورد نیاز ماژول W25Q32B، نیاز به یک منبع تغذیه خارجی است. برای این منظور میتوان از بردهای تغذیه ثابت یا قابل تنظیم و یا منابع تغذیه سوئیچینگ استفاده کرد.
کابلهای ارتباطی: برای اتصال ماژول W25Q32B به میکروکنترلر و برقراری ارتباط بین آنها، نیاز به کابلهای ارتباطی است. بسته به نوع میکروکنترلر و رابط ارتباطی مورد استفاده، ممکن است نیاز به کابل USB، SPI یا UART باشد.
بردهای توسعه: برای توسعه و آزمایش برنامههای مختلف برای ماژول W25Q32B، میتوان از بردهای توسعه مختلفی مانند بردهای آردوینو، بردهای STM32، بردهای ESP32 و... استفاده کرد.
کاربرد ماژول W25Q32B چیست؟
ماژول W25Q32B یک حافظه فلش برای دستگاههای الکترونیکی است. این حافظه فلش از رابط SPI برای ارتباط با میکروکنترلرها و دستگاههای الکترونیکی استفاده میکند و با ظرفیت 32 مگابایت، برای ذخیره سازی اطلاعات و برنامههای کاربردی استفاده میشود. ماژول W25Q32B در بسیاری از دستگاههای الکترونیکی مورد استفاده قرار میگیرد، از جمله:
محصولات صنعتی: این ماژول در دستگاههای صنعتی مورد استفاده قرار میگیرد، از جمله دستگاههای پزشکی، دستگاههای اندازهگیری و دستگاههای اتوماسیون صنعتی
دستگاههای الکترونیکی خانگی: ماژول W25Q32B در بسیاری از دستگاههای الکترونیکی خانگی، از جمله تلویزیونها، دستگاههای پخش DVD و بلو ری، دستگاههای بازی و دستگاههای اتصال به اینترنت مورد استفاده قرار میگیرد.
دستگاههای تجاری: این ماژول در دستگاههای تجاری مورد استفاده قرار میگیرد، از جمله دستگاههای POS، دستگاههای پرداخت الکترونیکی و دستگاههای پرینتر.
دستگاههای پردازش تصویر: این ماژول در دستگاههای پردازش تصویر مورد استفاده قرار میگیرد، از جمله دوربینهای دیجیتال، دستگاههای پردازش تصویر پزشکی و دستگاههای تصویربرداری صنعتی
راه اندازی ماژول W25Q32B با آردوینو
برای راه اندازی ماژول W25Q32B با آردوینو، مراحل زیر را دنبال کنید.
اتصال مدار: ابتدا ماژول W25Q32B را به آردوینو متصل کنید. برای این کار پایه CS ماژول را به پایه 10 آردوینو، پایه MOSI ماژول را به پایه 11 آردوینو، پایه MISO ماژول را به پایه 12 آردوینو و پایه CLK ماژول را به پایه 13 آردوینو متصل کنید. همچنین باید پایه VCC و GND ماژول را به منبع تغذیه خارجی متصل کنید.
نصب کتابخانه SPI: برای استفاده از رابط SPI برای ارتباط با ماژول W25Q32B، باید کتابخانه SPI را در آردوینو نصب کنید. برای نصب کتابخانه، از منوی Sketch > Include Library > Manage Libraries... در آردوینو IDE باز شده، کتابخانه SPI را جستجو کرده و نصب کنید.
برنامهریزی آردوینو: حالا باید کد برنامه را برای آردوینو بنویسید. برای این کار میتوانید از کد زیر استفاده کنید که به شما کمک میکند تا اطلاعات را از حافظه فلش خوانده و روی سریال مانیتور آردوینو نمایش میدهد.
#include <SPI.h>
#include <W25Q32BV.h>
W25Q32BV flash;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // منتظر شدن برای اتصال پورت سریال.
}
SPI.begin();
flash.begin(); // فعال کردن حافظه فلش.
}
void loop() {
byte data[256];
uint32_t address = 0x00;
uint32_t size = sizeof(data);
flash.read(address, data, size); // خواندن دادهها از حافظه فلش.
for (uint16_t i = 0; i < size; i++) {
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.println("");
delay(1000); // تاخیر یک ثانیه.
}
راه اندازی ماژول W25Q32B با میکروپایتون و esp32
برای راه اندازی ماژول W25Q32B با میکروپایتون و ESP32، ابتدا باید کتابخانه MicroPython SPI را نصب کنید. برای این کار میتوانید از ابزار pip استفاده کنید. به عنوان مثال، با استفاده از دستور pip install adafruit-ampy میتوانید کتابخانه را نصب کنید. سپس به کمک یک USB-to-serial converter، ESP32 را به کامپیوتر متصل کنید. برنامه MicroPython را روی ESP32 نصب کرده و REPL را با کمک یک ترمینال سریال با ESP32 اتصال دهید. در ادامه باید کتابخانه W25QXX را نصب کنید. برای این کار میتوانید از دستور زیر استفاده کنید:
import upip
upip.install('micropython-w25qxx')
سپس با استفاده از کد زیر، ماژول W25Q32B را میتوانید با ESP32 راهاندازی کنید.
import machine
import time
from micropython_w25qxx import W25QXX
# تعریف پینهای SPI
spi_sck = 18
spi_mosi = 23
spi_miso = 19
spi_cs = 5
# ایجاد اتصال SPI با پینهای مشخص شده
spi = machine.SPI(1, baudrate=10000000, sck=machine.Pin(spi_sck), mosi=machine.Pin(spi_mosi), miso=machine.Pin(spi_miso))
# ایجاد یک شی از کلاس W25QXX برای مدیریت حافظه فلش
flash = W25QXX(spi, machine.Pin(spi_cs))
# خواندن دادههای موجود در آدرس 0x00 و به اندازه 256 بایت
data = flash.read_bytes(0x00, 256)
# چاپ دادهها
print(data)
در این کد، ابتدا پینهای SPI تعریف شده و سپس اتصال SPI با استفاده از این پینها ایجاد میشود. در ادامه با استفاده از کلاس W25QXX، شی flash برای مدیریت حافظه فلش ایجاد میشود. در نهایت، با استفاده از تابع read_bytes شی ایجاد شده، ۲۵۶ بایت داده از حافظه فلش در آدرس 0x00 خوانده شده و در متغیر data ذخیره شده است. سپس این دادهها با دستور print چاپ شدهاند.
راه اندازی ماژول W25Q32B با میکروپایتون و rp2040
برای راه اندازی ماژول W25Q32B با میکروپایتون و میکروکنترلر Raspberry Pi Pico (EP2040) میتوانید از کتابخانهی micropython-w25qxx استفاده کنید. این کتابخانه برای کار با حافظههای فلش W25Qxx و W25Xxx در میکروکنترلرهای مبتنی بر میکروپایتون طراحی شده است. نصب کتابخانه: ابتدا کتابخانهی micropython-w25qxx را برای میکروکنترلر خود نصب کنید. برای این کار میتوانید از دستورات زیر در REPL میکروکنترلر استفاده کنید.
import upip
upip.install('micropython-w25qxx')
اتصال ماژول W25Q32B: پس از نصب کتابخانه و قرار دادن ماژول W25Q32B در برد میکروکنترلر، باید به پایههای آن متصل شوید. پایههای SPI ماژول به پایههای SPI برد میکروکنترلر وصل شوند. در این مثال از پایههای GP14، GP15 و GP16 به ترتیب برای SCK، MOSI و MISO استفاده میشود. همچنین پایهی GP17 به عنوان پایه CS برای انتخاب ماژول فلش استفاده میشود. حال میتوانید کد زیر را برای خواندن دادههای موجود در آدرس 0x00 از ماژول W25Q32B اجرا کنید.
import machine
from micropython_w25qxx import W25Qxx
spi = machine.SPI(0, baudrate=1000000, polarity=0, phase=0, sck=machine.Pin(14), mosi=machine.Pin(15), miso=machine.Pin(16))
cs = machine.Pin(17, machine.Pin.OUT)
flash = W25Qxx(spi, cs)
data = bytearray(256)
address = 0x00
flash.read_bytes(address, data)
print(data)
در این کد، ابتدا یک شی از کلاس SPI با فرکانس baudrate=1MHz و حالت polarity و phase صفر ایجاد میشود.
مشخصات
- ابعاد
- 22x11mm
- ولتاژ مورد نياز
- 2.6 الی 3.7
- کشور سازنده
- چین
- پروتکل ارتباطی
- SPI
- جریان مصرفی درحالت فعال
- 4 میلی آمپر
- جریان مصرفی درحالت خواب
- 1 میکرو آمپر
- اندازه
- 4 مگابایت
- نوع مبدل
- پروتکل SPI
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.