Pages: [1]   Go Down
Author Topic: external memory interface to use different peripherals on Arduino Mega  (Read 3167 times)
0 Members and 1 Guest are viewing this topic.
'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

After reading through the ATmega2560 manual I couldn't help but wonder the possibilities using the external memory mapping...

One that immediately came to mind would be the Ethernet board with the Wiznet chip. That chip can be used by external addressing and would make the entire Ethernet interface a breeze to program and because of the higher space on the mega2560, hosting a nice webpage could be really sweet.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

0
Offline Offline
God Member
*****
Karma: 0
Posts: 593
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The external memory interface is just a parallel bus in a way, you can try to have an intermediate microcontroller to detect "write" commands and perform actions based on that so you can avoid coding peripheral drivers, is that what you are talking about?

If this is strickly for the Wiznet, why not just get a microcontroller with a built-in Ethernet MII or RMII interface MAC and get a PHY chip instead? You can hit awesome performance and use libraries that are even more portable than the one dedicated to proprietary hardware such as the Wiznet since MII and RMII MACs are all standard.
« Last Edit: February 08, 2011, 02:41:01 am by frank26080115 » Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm talking about mapping stuff in the external memory space... sure, there would be some address latches and logic gates needed, but it would be a great expansion.

What I was referring to is that writing to an external address is simpler and faster than communicating by I2C or SPI. And this board can do this.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 130
Posts: 8621
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

All you need to access up to 64k external RAM is a 74xx373 latch. Add a few IO lines and you can access as much RAM as you like in pages.

Whether or not the C compiler handles this I'm not sure. At ASM level IIRC any access above normal RAM is trapped by hardware and sent to the external.

______
Rob
Logged

Rob Gray aka the GRAYnomad www.robgray.com

0
Offline Offline
God Member
*****
Karma: 0
Posts: 593
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What I was referring to is that writing to an external address is simpler and faster than communicating by I2C or SPI. And this board can do this.

Ok so what are you trying to communicate with?
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

What I was referring to is that writing to an external address is simpler and faster than communicating by I2C or SPI. And this board can do this.

Ok so what are you trying to communicate with?

The Wiznet chip is a good example, you could place parallel ADs, alphanumeric LCDs, memory...

I'm not trying to communicate, I don't even own a Mega board. But that it would be a nice thing to have, it would...

All you need to access up to 64k external RAM is a 74xx373 latch. Add a few IO lines and you can access as much RAM as you like in pages.

Whether or not the C compiler handles this I'm not sure. At ASM level IIRC any access above normal RAM is trapped by hardware and sent to the external.

______
Rob


I believe the C compiler works if you specify a pointer to the desired location.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

0
Offline Offline
God Member
*****
Karma: 0
Posts: 593
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What I was referring to is that writing to an external address is simpler and faster than communicating by I2C or SPI. And this board can do this.

Ok so what are you trying to communicate with?

The Wiznet chip is a good example, you could place parallel ADs, alphanumeric LCDs, memory...

I'm not trying to communicate, I don't even own a Mega board. But that it would be a nice thing to have, it would...

So this will work with anything that uses a compatible parallel interface. There's nothing stopping you from doing it, go try it out. I think all you need to do is read from and write to pointers beyond the AVRs internal memory and the AVR will automatically use the external interface when it needs to. Try it out and disassemble the compiled C code to see if the assembly is going to do what you expect.
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


There's nothing stopping you from doing it, go try it out.

The description of the forum said, and I quote, "shields you are designing or that you think would be nice to have, Arduino compatible platforms, board comparisons, etc.".

Telling me o do it, is a bit against the purpose of this, isn't it? That being said, can I borrow a welding machine for the Wiznet chip and others like that? Because that kind of is stopping me from doing it.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

0
Offline Offline
God Member
*****
Karma: 0
Posts: 593
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oh I assumed you had an ATmega to work with

You can test compile some code, mapping variables beyond the normal RAM space, read disassembled code, maybe the AVR Studio simulator will show you the pin states of the external memory interface while it's running

Also this is relevant but might help
http://www.nongnu.org/avr-libc/user-manual/malloc.html
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I have read that... and in the beginning of the post (this is the hardware part of the forum) I said that it is possible to use external memory.
I first found it on the manual and then I googled the subject and found that same page. It is also possible to use a pointer directly without malloc, but some changes need to be done to the compiler.

Anyways, the purpose of this post was merely to give the idea of someone developing a shield based on external memory interface. It isn't a programming issue because, as you found out, it is possible.
It is really a hardware issue, as any board to do it will involve a bit more knowledge about circuit design and it can't even be easily prototyped, even if you have a Mega board. That's all.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: [1]   Go Up
Jump to: