dma controller help

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am doing a project on DMA controller. My project involves a 8085 kit acting as CPU, Xilinx Kit(CPLD)acting as DMA The transfer takes place from one 6264 memory ic to another. We have connected 8085 trainer kit through 8255 PPI using its 3 ports to CPLD and memory is connected to Xilinx kit. now the problem v r facing is that we dont know how to check for the data transfer done. is there anyway of writing and reading from 6264. we have some leds fixed for the address signals. but while v start everything is glowing at once and nothing is changing thereafter. read, write signals dont not working properly they r always glowing. we have even introduced delay to check out each operation properly. could anybody pls help me on this.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
could anybody pls help me on this.
?????????????? :? :o :roll: :shock: :(

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Looks like you forgot to connect pin 43

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm a programmer, so I'd do the whole thing in sw first, and have a little memory dump routine so I can fill the source ram, clear the dest ram, execute a sw block move, then dump the dest ram to make sure it worked. THEN I'd set up the same move again, trigger DMA xfer on the xilinx, and dump dest ram to see if it worked.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
we dont know how to check for the data transfer done

Your CPLD will have a counter that you set for the number of bytes to transfer, right? So read this counter, and when it's zero, the DMA is finished.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

peret wrote:
Your CPLD will have a counter that you set for the number of bytes to transfer, right? So read this counter, and when it's zero, the DMA is finished.

I haven't experienced DMA transfers done by a CPLD myself but "real" DMA controllers will usually assert an interrupt request when the transfer is complete. Does this DMA not have a pin it asserts that signals transfer completion that you'd just wire to an ext-int or pin-change interrupt on an AVR?

Cliff

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

..and since it is a CPLD, if it lacks a transfer done pin simply add it..

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Looks like a lot of work. I am assuming this is a school project. I used to do most of my work on 80c51/52's before "upgrading" to AVR's. The one thing i always had in my micro init routine was a ramcheck. Basically it loads the ram with alternating bitpatterns, then reads back the bit patterns and checks them. I always use 0xAA, and 0x55. If you write them out in binary, they are inverts of each other.

Here is an example:
Load the first address in the ram with 0xAA
then load the second with 0x55.
Then repeat the pattern for every sucessive memory location thereafter.
Then, to read back, you know what the pattern should look like. A simple compare routine will tell if the ram holds the pattern correctly.

Since you have LED's on your data lines, you should see the following:

For 0xAA the led's should look like this:
10101010

For 0x55 the led's should look like this:
01010101

Lemme know if you have any other questions!!

Jim

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user