Hot answers tagged

32

If the frequency/rise time and distance is high enough to cause issues, then yes, you need termination. Transmission-Line Model At 97mm longest trace I think you will probably get away without them (given results of calculations below) If you have a PCB package that handles IBIS models and board level simulation (e.g. Altium and other expensive packages), ...


20

Most 8 bit CPUs have 16 bit address buses allowing them to address 64kbytes, precisely because 256 bytes really isn't enough to do very much! It just means they need to load two bytes instead of one, each time they need to load an address. Slightly slower but tolerable considering their size. (And yes there are many exceptions, mostly developed when 64k ...


10

That's a lousy stackup. Your cores should be 0.2 mm and the balance of your thickness should be in the prepreg between layers 3 and 4 (Inner 1 and Inner 2). The reason for this is that, for any signal on a trace, there needs to be a return current path on the plane right under it. The return current in the plane will try to minimize inductance (i.e. loop ...


9

Memory cells are arranged in a matrix This is a 16-bit memory, 1 bit wide, so it needs 4 address lines to address each individual bit. That's the a3..a0 lines at the left. a0 and a1 enter the green 2-to-4 demultiplexer. An N-input demultiplexer can have 2\$^N\$ output lines, and the binary input indicates which of those will be active. That's the row ...


8

DRAM, as you said, basically consists of a storage capacitor and a transistor to access the voltage stored on that capacitor. Ideally, the charge stored on that capacitor would never decrease, but there are leakage components that allow the charge to bleed off. If enough charge bleeds off the capacitor, then the data cannot be recovered. In normal operation, ...


8

The address bus and data bus are separated so they may have different sizes. For any specific address bus sizes there are a lot of techniques to address more memory than the register bit width The most common way is increasing the address bus width somehow by using multiple registers for the address AVR has R26..R31 that can be paired into 16-bit X, Y and ...


7

It's not like a powerdown deliberately erases data, so it's mainly leakage currents through which a bit's value is lost over time. That can be minutes, but you can't rely on that; it may also be seconds, and depending on your data, a couple of changed bits can render all of it worthless, for instance if they're looking for encryption keys. The police will ...


7

Nearly all 8-bit processors have some ability to form a 16-bit address from a low-order part and a high-order part. On some processors including the original 8080, there are registers dedicated to holding the upper and lower part of an address (although from a programmer's standpoint there may be some registers like the 8080's stack pointer which don't ...


7

16k x 9 means that the memory chip has a total of 16k locations in which it can store a binary number that consists of 9 bits. It will have a 14 bit address structure (14 bit gives you 16,384 locations in decimal). It may be a serial device but the address lines will still be there but internal to the device.


7

To put the comments into the form of an answer so that the question can get closed... The SDRAM part linked to is a 512Mx16 device, 512M addresses, 16 bits wide giving a total of 8Gbits. The DIMM linked has a capacity of 8GBytes, 8 times the capacity of the individual memory chip. The DIMM also lists its speed as PC1600 with timings of 10-10-10. For the ...


6

Altera recommends their use with some types of SDRAM in this document, but says that they can be avoided by using internal termination for the FPGA and SDRAM, if it is offered. Neither of the FPGA boards I have with SDRAM have any external termination on the connections and the devices don't have internal termination. It looks like they should be used, ...


6

Perhaps I can add a little simple information. As I understand it, POD (Pseudo Open Drain) drivers, have a strong pulldown strength but a weak pullup strength. A pure open-drain driver, by comparison, has no pullup strength except for leakage current; this is why the term "pseudo" is used. The remaining pullup strength is provided by parallel-terminating the ...


6

No fundamental reason why not. Synchronous SRAM is truly random access, fairly inexpensive, and easy to interface to. Its downside in that it occupies a fairly narrow niche between the on-chip BlockRam (not much smaller, free until it forces you to select a larger chip, massively parallel and more flexible) and external DRAM (massive storage capacity at a ...


6

Some single data rate (SDR) SDRAM can be run at slower rates - check the Clock Period (max) spec. However, you have to issues refresh commands on a regular basis, and if you clock at 1MHz you might find you have no time for anything else! DDR SDRAM typically has a minimum (yes, minimum) clock frequency in the high tens of MHz... and the physical interface ...


6

Databus lines (pins) and address lines (pins) are completely separate. Simply put, databus lines determine maximum number of bits that can be transferred one at a time (and stored on the memory) whereas address lines determine maximum number of memory "cells" that can be selected. It was mostly a marketing thing that 32-bit x86 CPUs couldn't address more ...


6

256K x 8 means 256 kibi-locations, each location holding 8 bits. There are 18 address lines (218 = 256 * 1024) and 8 data lines.


6

If we have a classical flip flop (like this image from wikipedia): You can see that depending on the state this is in, there is constantly some current flowing (and "stealing" current through the R3/R4 path, thus shutting that one off). The result then is never changing again, as long as VCC is active, thus the state of the whole apparatus is static. If you ...


6

Inside the SDRAM chip, the actual CAS latency requirement is a combinatorial time delay, independent of the external interface's clock period. It may help to think of it as an old-fashioned asynchronous DRAM chip "wrapped" in a synchronous interface. Since the bus master (CPU) can choose the interface clock speed, it makes sense to also allow it to ...


5

... get a better VLSI book? It's possible; it's just not optimal. Logic processes are designed for speed; they go to great lengths to avoid stored charge, adjusting doping, bias voltages etc to clear it away as fast as possible. Since stored charge is rather important to DRAM, the DRAM process is tuned in a different way! Thus while a fast logic process ...


5

Unless your microcontroller has a direct bus support for interfacing to DDR/DDR2/DDR3 type RAM or your microcontroller is interfaced through an FPGA which has been programmmed to provide the RAM interface then it is likely that futzing around with DIMMs is not a useful exercise. There are several strong reasons why this is the case.... 1) DDR memory chips ...


5

The type of memory you need is SDRAM. It is not the same as DDR SDRAM. I don't think I've seen a Cortex-M device that supports DDR memory yet. You would typically go for Cortex-A family, if you need that kind of capability. You can easily find SDRAM chips on digikey or any other distributor site. At this point, the rest of you question is probably ...


4

At this sort of frequency I think track length type issues are unlikely to be a major issue, certainly for delay issues. As the problems started with a new PCB the very first thing to do would be to test all lines for continuity (against the datasheet, not your schematic, in case your schematic has errors), and scope every pin to check that the waveforms ...


4

A simple RAM can be expressed as (From some note):- RAMs are organised as square arrays of individual bits. There are two decoders, a row and a column decoder, and each one bit memory cell is only enabled when both its row and the column lines are one. In the case of a 256 bit RAM each decoder transforms a four bit binary number into a sixteen bit ...


4

Other answers have measured how RAM works internally, but they haven't yet mentioned how it is fits into a system. The simplest type of RAM to understand is a static asynchronous RAM. Such a device has a number of address pins, a number of data pins, and some control pins which together have three states of interest: Idle state, in which the signals on ...


4

From the outside, each memory chip is organized as 1M words of 1 bit each, which means that it takes 20 address bits to specify a word. Internally, the memory is physically organized as a square matrix of 1024 rows and 1024 columns, with one bit in each position in the matrix. There are at least two reasons that the physical organization is important to ...


4

We're talking about an SODIMM module here. It has multiple chips on it, and has an overall format of 1G (230) locations of 64 (26) bits each. (Total of 236 bits.) The module contains 16 (24) chips that contain 4G (232) bits each. (Total of 236 bits.) The memory in each chip is organized as 8 (23) banks, each with 64K (216) rows and 1024 (210) columns of ...


4

It looks like you're doing most of your development on the actual hardware. In some cases it makes sense to do this, but this is not really one of those cases as complete functional models should be available for the SDRAM chips. I would highly recommend locating a functional model for either the specific chip you're using or a very similar one and doing ...


4

Can I use a DDR chip on a non-DDR controller? No. Is it crazy to attempt to add 512MB of external SDRAM to a STM32H7? It's just barely possible, but probably not worth the trouble. The largest SDRAM parts available are 512 MBit (not MByte). They can be configured as 64M x 8. Four of these in parallel can operate as a 64M x 32 = 256 MB memory; two banks ...


3

SDRAM is actually a very good choice for image processing, because both the capacity and the bandwidth (especially with DDR) are improved relative to SRAM. Coupled with using the FPGA's on-chip SRAM as line buffers, it allows pretty much any whole-image computation (including the 2D FIR you give as an example) to be pipelined to the point where you can ...


Only top voted, non community-wiki answers of a minimum length are eligible