مضى على الشبكة و يوم من العطاء.

[ غير مُجاب ] استخدام الميكروبايثون لقراءة بيانات الإيبروم إعتمادا على تقنية Microwire

Hichm19956

./عضو جديد

السمعة:

سلام عليكم ورحمة الله تعالى وبركاته، أنا عضو جديد وهذا أول مشاركة،
أود أن أعرف كيفية قراءة معلومات EEPROM رقم 93C46 ربطتها ب Raspberry Pi Pico

وأنا في مرحلة السوفتوير، وطبعا أنا جديد في الغة Micro-python و أود جلب و طباعة محتويات الإبروم على الكونسل
وهذا الكود الذي بدئت بإنشائه


كود:
from machine import SPI, Pin
import ustruct
import time
import sys

### Variables
SK = 2
DI = 3
DO = 4
CS = Pin(5, Pin.OUT, value = 1)

REG_READ = 0x02
REG_WRITE = 0x01
REG_WREN = 0x00

### Initialize spi protocole
spi = SPI(0, baudrate = 2000000, polarity = 1, phase = 1, bits = 8, firstbit = SPI.MSB, sck=Pin(SK), mosi=Pin(DI), miso=Pin(DO))

### read data
data = bytearray()
#spi.write_readinto(b'\x00\x00\x00', data)
print(data) # output bytearray(b'')

لو حد يعرف الفرق بين SPI و Microwire أو 3-wire ، لأني أجد معلومات قليقة جدا عن الميكرو واير لقراءة الذواكر حتى في المحتوى الأجنبي، و قد أشارك معكم حل المشكل بارك الله فيكم
 
التعديل الأخير بواسطة المشرف:
بعد البحث وقراءة المصادر عن بروتكول Microwire تمكنت من عرض المراحل و كتابة الكود على الميكروبيثون لقراءة الإبروم 93C46
Python:
from machine import Pin, SoftSPI
import utime, machine, random
CS=Pin(5, Pin.OUT, value=True)
DI=Pin(3, Pin.OUT)
CK=Pin(2, Pin.OUT)
DO=Pin(4, Pin.IN)

spi = SoftSPI(baudrate=9600,polarity=0,phase=0,sck=Pin(2),mosi=Pin(3),miso=Pin(4))

n=0
X = random.getrandbits(0<=n<=1)

def read():
# Instruction Read
    utime.sleep(1)          # 1 Sec
    DI.on()                 # Start bit
    utime.sleep(1)          # 1 Sec
    DI.on()                 # OpCode 1
    utime.sleep(1)          # 1 Sec
    DI.off()                # OpCode 0
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A5 = X
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A4 = X
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A3 = X
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A2 = X
    utime.sleep_ms(15)      # 15 mSec
    DI.value(X)             # A1 = X
    utime.sleep(1)          # 1 Sec
    buf = spi.read(16, 0x00)
    print(buf)
    i=0
while i<64:
    i=i+1
    for j in range(0,65,10):
        print("Ligne0000",i)
        print("--------------------------------")
        utime.sleep(1)
        CK.on()
        utime.sleep(1)
        CK.off()
        read()
print("finish")
لكن مع ذلك يبدوا لي الكود ركيك و يحتاج لمجهود لتحسينه
مصدر: https://www.ti.com/lit/an/snoa743/snoa743.pdf
 
  • Love
التفاعلات: STORM
بعد البحث وقراءة المصادر عن بروتكول Microwire تمكنت من عرض المراحل و كتابة الكود على الميكروبيثون لقراءة الإبروم 93C46
Python:
from machine import Pin, SoftSPI
import utime, machine, random
CS=Pin(5, Pin.OUT, value=True)
DI=Pin(3, Pin.OUT)
CK=Pin(2, Pin.OUT)
DO=Pin(4, Pin.IN)

spi = SoftSPI(baudrate=9600,polarity=0,phase=0,sck=Pin(2),mosi=Pin(3),miso=Pin(4))

n=0
X = random.getrandbits(0<=n<=1)

def read():
# Instruction Read
    utime.sleep(1)          # 1 Sec
    DI.on()                 # Start bit
    utime.sleep(1)          # 1 Sec
    DI.on()                 # OpCode 1
    utime.sleep(1)          # 1 Sec
    DI.off()                # OpCode 0
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A5 = X
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A4 = X
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A3 = X
    utime.sleep(1)          # 1 Sec
    DI.value(X)             # A2 = X
    utime.sleep_ms(15)      # 15 mSec
    DI.value(X)             # A1 = X
    utime.sleep(1)          # 1 Sec
    buf = spi.read(16, 0x00)
    print(buf)
    i=0
while i<64:
    i=i+1
    for j in range(0,65,10):
        print("Ligne0000",i)
        print("--------------------------------")
        utime.sleep(1)
        CK.on()
        utime.sleep(1)
        CK.off()
        read()
print("finish")
لكن مع ذلك يبدوا لي الكود ركيك و يحتاج لمجهود لتحسينه
مصدر: https://www.ti.com/lit/an/snoa743/snoa743.pdf
ياليت تطرحه ك موضوع في قسم لغات البرمجة علشان الكل يستفيد وبارك الله فيك <3
 
ياليت تطرحه ك موضوع في قسم لغات البرمجة علشان الكل يستفيد وبارك الله فيك <3
هذا ليس لغة python لمن نموذج مشتق من اللغة لبرمجة الميكروكنترولر MicroPython
 
هذا ليس لغة python لمن نموذج مشتق من اللغة لبرمجة الميكروكنترولر MicroPython
اعلم والله لكن مش موجود قسم هناك متخصص :(
 

آخر المشاركات

عودة
أعلى