سلام دوستان
من می خوام اطلاعات Rom قطعه ام را 8 بیتی (با بیسیک) از آن بخونم و بفرستم به کامپیوتر اما هر کاریش می کنم نمی شه. اگه کسی از دوستان قبلا این کارو تو پروژه هاش داشته و می تونه کمکم کنه ممنونم می شم...
در ضمن از AVR AtMega16 استفاده کردم
فقط خیلی حیاتیه ها...
از چه مدل ROM استفاده کردی .
مدلش رو هم ذکر کن .
راستش نمی دونم...
یعنی این سخت افزارو دوستم طراحی کرده و من فقط می دونم ROM 256 است.
ما فقط می خواهیم بایت به بایت از روی حافظه اون بخونه حالا نمی دونم مدل rom (برای این برنامه) فرق داره یانه
خوب مدل رم خیلی فرق می کنه .
رابط اتصال به میکرو شون هم متفاوت از همه . یکی می بینی از رابط I2C استفاده کرده و دیگری خط آدرس و دیتا با یه عالمه پایه داره .
حالا مطمئن هستش ROM هستش . شاید EEPROM باشه . از سری 24C هستش یا نه از اون قدیمی هاست . چند تا پایه داره ؟ اگه از اون قدیمی هاست شاید EPROM باشه که بالاشون یه قسمت داره برای نور ماورای بنفش و پاک کردن اون .
در هر صورت منظور من اینه که اسمش چیه ؟
این عکسشه ببین متوجه می شی (فکر کنم eeprom باشه)
اين مدل EEPROM از سري 24C هستش كه يه رابط I2C داره ( پايه هاي 5 و 6 ) و توسط بقيه پايه ها آدرس اون مشخص شده است .
اينم دستورات كار تو بسكام
Config Sda = Portx.x
Configures a port pin for use as serial data SDA.
Config Scl = Portx.x
Configures a port pin for use as serial clock SCL.
I2cstart
Sends the start condition.
I2cstop
Sends the stop condition.
I2cwbyte
Writes one byte to an I²Cslave.
I2crbyte
Reads one byte from an I²Cslave.
I2csend
Writes a number of bytes to an I²Cslave.
I2creceive
Reads a number of bytes from an I²Cslave.
--------------------------------------------------------------------------------
اينم يه مثال براي كار با اينجور حافظه ها
کد:
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 19200
Dim I2ctemp As Byte
Config Scl = Portd.1
Config Sda = Portd.3
Const Ds1624wr = &B10010000
Const Ds1624rd = &B10010001
I2cstart
I2cwbyte Ds1624wr
'byte with r/w 0
I2cwbyte &HAC
I2cwbyte &H00
I2cstop
Waitms 25
I2cstart
I2cwbyte Ds1624wr
I2cwbyte &HEE
I2cstop
Waitms 25
Do
I2cstart
I2cwbyte Ds1624wr
I2cwbyte &HAA
I2cstart
I2cwbyte Ds1624rd 'The chip will give register contents
I2crbyte I2ctemp
I2crbyte I2ctemp , Nack
I2cstop
Print "Temperature: " ; Str(i2ctemp) ; " degrees" ; Chr(13);
Waitms 25
Loop
End