Is there any chance that this thread could get back on the topic of Chip's SDRAM driver? I keep seeing new messages here hoping that they are updates on the driver but I only find discussions about video quality. Would it be possible to move the video discussion to another thread?
To summarise, with respect to bandwidth requirements, which is why the discussion over interlace started, interlace provides best bang for the bandwidth when using a TV. Including HDTVs.
Modern LCD computer monitors presumably don't support interlaced encoding at all given the LCD panel itself is incapable of handling interlace without deinterlacing hardware. Therefore, with a minimum vertical sync of 50 Hz and the interlaced derived progressive encoding out of the picture, that probably leaves only sequential encoding with it's full bandwidth requirements.
That makes a distinct division between TVs and monitors if you want to save on bandwidth.
To summarise, with respect to bandwidth requirements, which is why the discussion over interlace started, interlace provides best bang for the bandwidth when using a TV. Including HDTVs.
Modern LCD computer monitors presumably don't support interlaced encoding at all given the LCD panel itself is incapable of handling interlace without deinterlacing hardware. Therefore, with a minimum vertical sync of 50 Hz and the interlaced derived progressive encoding out of the picture, that probably leaves only sequential encoding with it's full bandwidth requirements.
That makes a distinct division between TVs and monitors if you want to save on bandwidth.
I'd like to see a 1080i driver, but 1080i and 1080p30 should use exactly the same memory bandwidth - assuming the given tv/monitor supports 1080p30
Yep, 1080i60 has same bandwidth. And I'd like to see/hear of comparisons done between them for impressions on various TVs. And also see if any modern LCD computer monitor can handle theses modes.
I have a couple of questions regarding driving the SDRAM (I am using the board described here http://forums.parallax.com/showthread.php/119689-A-new-dimension-in-Propeller-marriages-pPropFPGA/page1.
I am trying to make the SDRAM work, but I do not know what does not yet work, writing or reading...
Symptom it reads garbage but constant garbage !,
The question is, should I negate nCS after a command ? because the Micron datasheet seems to imply that it should be kept asserted (LOW) but the ICSI datasheet clearly shows it negated when data is being transferred. Does it make a difference ?, I mean Chip toggles it in his driver (and it works!!!)
I have a couple of questions regarding driving the SDRAM (I am using the board described here http://forums.parallax.com/showthread.php/119689-A-new-dimension-in-Propeller-marriages-pPropFPGA/page1.
I am trying to make the SDRAM work, but I do not know what does not yet work, writing or reading...
Symptom it reads garbage but constant garbage !,
The question is, should I negate nCS after a command ? because the Micron datasheet seems to imply that it should be kept asserted (LOW) but the ICSI datasheet clearly shows it negated when data is being transferred. Does it make a difference ?, I mean Chip toggles it in his driver (and it works!!!)
Edit: I changed the slew-rate of the CS/RAS/CAS/WE pins to fast and it seems to work now... sort of...
Now i have to figure it out why a counter counts down when it is suposed to count up....
Edit2: it still does not work reliably , setup times look good...
I have a couple of questions regarding driving the SDRAM (I am using the board described here http://forums.parallax.com/showthread.php/119689-A-new-dimension-in-Propeller-marriages-pPropFPGA/page1.
I am trying to make the SDRAM work, but I do not know what does not yet work, writing or reading...
Symptom it reads garbage but constant garbage !,
The question is, should I negate nCS after a command ? because the Micron datasheet seems to imply that it should be kept asserted (LOW) but the ICSI datasheet clearly shows it negated when data is being transferred. Does it make a difference ?, I mean Chip toggles it in his driver (and it works!!!)
Thanks chip!
After days of testing it still doesn't seem to work right .I'll clock the SDRAM at 25 MHz and see if that helps. It writes, that I can see but reading from multiple pages seem to show strage data, I mean powering it off doesn't seem to erase the data that fast.... or maybe power is leaking from somewhere, jtag, logic analyzer...
Thanks chip!
After days of testing it still doesn't seem to work right .I'll clock the SDRAM at 25 MHz and see if that helps. It writes, that I can see but reading from multiple pages seem to show strage data, I mean powering it off doesn't seem to erase the data that fast.... or maybe power is leaking from somewhere, jtag, logic analyzer...
I found it kind of difficult to get working. Once it was right, it all made sense, and I could go about improving it. Getting there was hard, though.
I finally got around to trying Chip's SDRAM driver from C. Here is a really boring test program to verify that the C interface is working. This is using an almost unmodified version of Chip's driver. The only thing I changed was to remove the test code from the start so the first location in the SDRAM_Driver.obj file is the first instruction of the driver itself.
Comments
Thanks,
David
Modern LCD computer monitors presumably don't support interlaced encoding at all given the LCD panel itself is incapable of handling interlace without deinterlacing hardware. Therefore, with a minimum vertical sync of 50 Hz and the interlaced derived progressive encoding out of the picture, that probably leaves only sequential encoding with it's full bandwidth requirements.
That makes a distinct division between TVs and monitors if you want to save on bandwidth.
Yep, 1080i60 has same bandwidth. And I'd like to see/hear of comparisons done between them for impressions on various TVs. And also see if any modern LCD computer monitor can handle theses modes.
I am trying to make the SDRAM work, but I do not know what does not yet work, writing or reading...
Symptom it reads garbage but constant garbage !,
The question is, should I negate nCS after a command ? because the Micron datasheet seems to imply that it should be kept asserted (LOW) but the ICSI datasheet clearly shows it negated when data is being transferred. Does it make a difference ?, I mean Chip toggles it in his driver (and it works!!!)
ICSI datasheet: http://pdf1.alldatasheet.com/datasheet-pdf/view/116589/ICSI/IC42S32400.html
Micron datasheet: www.micron.com/parts/dram/sdram/mt48lc16m16a2bg-75?pc={428A5CC9-2A78-447E-939B-6F3A40D538C6}
Thanks in advance
I am trying to make the SDRAM work, but I do not know what does not yet work, writing or reading...
Symptom it reads garbage but constant garbage !,
The question is, should I negate nCS after a command ? because the Micron datasheet seems to imply that it should be kept asserted (LOW) but the ICSI datasheet clearly shows it negated when data is being transferred. Does it make a difference ?, I mean Chip toggles it in his driver (and it works!!!)
ICSI datasheet: http://pdf1.alldatasheet.com/datasheet-pdf/view/116589/ICSI/IC42S32400.html
Micron datasheet: www.micron.com/parts/dram/sdram/mt48lc16m16a2bg-75?pc={428A5CC9-2A78-447E-939B-6F3A40D538C6}
Thanks in advance
Edit: I changed the slew-rate of the CS/RAS/CAS/WE pins to fast and it seems to work now... sort of...
Now i have to figure it out why a counter counts down when it is suposed to count up....
Edit2: it still does not work reliably , setup times look good...
For most commands, you will need to drive CS high on the clock after driving it low, so that only one command is registered by the SDRAM.
After days of testing it still doesn't seem to work right .I'll clock the SDRAM at 25 MHz and see if that helps. It writes, that I can see but reading from multiple pages seem to show strage data, I mean powering it off doesn't seem to erase the data that fast.... or maybe power is leaking from somewhere, jtag, logic analyzer...
I found it kind of difficult to get working. Once it was right, it all made sense, and I could go about improving it. Getting there was hard, though.
Here is the Makefile required to build this test:
The output should look something like this: