Shop OBEX P1 Docs P2 Docs Learn Events
MAX Address limit? — Parallax Forums

MAX Address limit?

RinksCustomsRinksCustoms Posts: 531
edited 2006-08-13 05:46 in Propeller 1
Hi all,
·In another thread, I have a link to an end stackable 1024bit I2C compatible EEPROM. My question, what would the theoretical internal HEX addressing limit be with the propeller?· With a "long" variable (32bits), calculated max value is 7FFF FFFF, and·with the 1024bit version,·
Reads may be
sequential within address boundaries 0000h to FFFFh
and 10000h to 1FFFFh. Functional address lines allow
up to four devices on the same data bus. This allows for
up to 4 Mbits total system EEPROM memory.
Now i'm new to understanding exactly how memory and addressing is "laid out" and how the two interact. I thought HEX only goes from 0 to F and begins a new cycle at 10 to 1F, what's that "h" for?
Does the theoretical max address have to include the three bytes for control and addressing w/a data array that is used for a page write opperation? The "h" in the memory address "FFFFh" and "1FFFFh" is as clear as mud to me as i never came across something like this. And i may have answered my own question, but I'd still like some clarifacation/vindication to my questions/statements, if anyone may shed a lil light on the subject, i'd much appreciate their help.
The only conclusion that I arive at right now is that a LONG would have no trouble with three bytes worth of control/chip address/memory address, and i realize you could split the control/chip address/read-write byte into a byte sized variable, but that's not the point here.· I've been eye'in up an NVRAM w/16M·on one chip. It sports 21 address lines and a similar·number of·datalines (parallel datalogging possible?)

Thanks again for all the help· guys,
Michael

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Definetly a E3 (Electronics Engineer Extrodinare!)
"I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2006-08-06 15:38
    Usually when you talk about "internal" addressing, you're referring to memory on the chip or somehow included in the packaging. Usually, addressing is limited by the size of the internal registers. In the case of the Propeller, the registers are 32 bit and the addressing theoretically available is from $00000000 to $FFFFFFFF. A lot of microcontrollers have 8 or 16 bit arithmetic and data paths on the chip. In some of those cases, special registers are provided in the design that are larger, say 12 or 24 bit that are connected to the address pins (and to external memory). These special registers are accessed in pieces with more than one instruction to supply the larger address. Look at Parallax's SX or Microchip's PIC documentation for examples of this. Serial EEPROMs are also good examples in that they assume a native 8-bit byte for the basic unit of data and allow for addresses as large as 19 or 22 bits, delivered in pieces.

    For your general question, a long is more than large enough to conveniently handle addresses up into 2GB range. Usually you construct the actual sequence of bytes needed to address the device "on the fly" from the long used to hold the address, but
    you could hold a four byte control sequence in a long. I wouldn't recommend using a parallel memory. You'd use up all your I/O pins for address, data, and control lines and still not be able to address more than a megabyte. There is a 4MBit serial EEPROM (the AT45DB041) that uses SPI and maybe a 16MBit version as well. You could put maybe 4 of these on a piggyback board that would use only 8 I/O lines for access.

    The "h" (or "H") stands for hexadecimal. Some programming languages use the convention of "d" for decimal and "b" for binary as well rather than using prefixes of nothing for decimal, "$" for hexadecimal, and "%" for binary.
  • HarleyHarley Posts: 997
    edited 2006-08-06 16:09
    The 'h' suffix simply implies 'hex' so the reader knows that 1000h is in hexadecimal and not to be 'one thousand' decimal. Once an A - F character appears in a value, the reader then would know it is hex. But without A - F a value such as 1234 wouldn't be clearly defined.

    Hope this clears the 'h' matter for you. idea.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Harley Shanko
    h.a.s. designn
  • hammerhead74000hammerhead74000 Posts: 58
    edited 2006-08-06 17:47
    ...and in c, it's a 0x prefix for hex: 0x123abc
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-07 22:30
    ahh, thank you for the clarifacation/suggestions guys, i'll look into the AT45DB041, and i'm guessing that SPI stands for serial port interface...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2006-08-10 20:39
    Hello,

    ·· Actually it should be Serial Peripheral Interface and refers to a synchronous serial interface having anywhere from 2 to 5 wires.· I hope this helps.· Take care.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Tech Support
    csavage@parallax.com
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-10 23:03
    ah, i see, thank you. Also, i've discovered/remembered that there are 4 bits to a BYTE, 2 BYTES to a word, & 2 WORDS to a LONG. So correcting myself above the 1024 Kbit memory noted above holds 256Kbytes not 512KB. Thanks for the corrections/suggestions guys!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2006-08-10 23:15
    Rinks,

    ·· Correction...4 bits to a NIBBLE, 8 bits to a BYTE.· =)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Tech Support
    csavage@parallax.com
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-13 05:46
    woops, lol. wrong again! bits, bytes nibbles, words, longs, functions, calling, methods,.... it's alot to take in comming from using IC chips @ dc frequencies and analog, lol, but it sure is easier & faster to change a lil bit of code than finding data sheets, re-breadboarding the whole design, and conducting a religious ritual to shoe away evil spirits that impose on all these chips syncronizing and working in the Hz range, lol. Not that i'm talking from expierience or anything.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
Sign In or Register to comment.