I was wondering if you could help me with some differences between the Arduino due vs mega. I know about the different logic level and about the fact that due is more powerful than mega.
I have a shield that has a DMM on it DMM Shield - Digilent Reference . The problem is that I fail on making it working with the mega whilst it works with Due and makes no sense. The main problem is that the DMM doesn't make any acquisition on mega, it reads zero at everything I put on input.
I have SPI between my shield and both arduino, they are the same, I can access the registers and read them. everything works perfect.
I also measured all the voltages to make sure I don't have sudden drops. I put a logic analyzer on the SPI bus to make sure everything is working as it should.
This shield was also working with the chipkit uc32 for example. It's not the code, it's not the shield.
Although the dmm works on 3V6, I have a capacitive insulator between the arduino SPI and the chip on the shield. Even if from the Arduino I get 5V (Mega) or 3V3(Due), the output is 2V that is provided to the chip. This is how I excluded the differences between the logic levels.
My shield also consumes around 100mA, which should be enough for the mega.
There is also one thing that worries me. I use the Arduino on USB. when I try to power the mega externally with a 12V PS the 5V regulator starts to heat when it's no current draw up to 55 degrees Celsius. However, if I connect the shield the temperature starts rising and I took off the power at 80 degrees Celsius because I didn't want to see any smoke. I measured these temperature with a thermic camera. When I first touched the board, I got burned.
At this point I am stuck at finding any other differences between these two boards that could affect my measurements. Everything I already found online checks out and works as expected.
I don't have any knowledge about the arduino except what I saw in the technical datasheet and that should not cause problems. Do you have any idea?
Did you look at the compatible board list of that shield.
All of them are 3.3volt logic.
And the DUE isn't even on that list.
biancabiabn:
when I try to power the mega externally with a 12V PS the 5V regulator starts to heat when it's no current draw up to 55 degrees Celsius.
You should power a Mega (with it's linear regulator) with less than 9volt (7.5-9volt) on the DC socket, not 12volt.
With 12volt, Mega and shield (70+100mA) times the 7volt drop will dissipate >1watt in the regulator.
Making is sizzling hot.
Leo..
I made that board and I made it so it can be compatible with arduino. Due is not on the list yet, but it will be as soon as I will finish the projects.
Regarding the 3V3 issue, yes they are, all of them, but, none of the 3V3 logic signals arrive directly at the chip on the shield. They go through an isolator and the output is 2V. This value is going in the chip of the shield.
Even if I connect the shield to mega, due, or any other board, I measured and the voltage at the output of that isolator is 2V.
My concern is about the Mega and why I have this weird behavior. Regarding the power supply, on the arduino page I saw that it can go as high as 20V. It seems weird to get that hot at 12V.
I want to find an explanation why this is not working on mega but working on due. Everything that can be linked to the shield is checked and everything is where it should be.
The shield is working without any issues on all the platforms that is said to be compatible on the page, and on arduino due.
At first I started with Uno, but that had small resources and I could not use it. The libraries wouldn't fit inside the uno, that is why we moved to mega. We ran into these issues that I listed above, and just for fun I tried a due. Surprise, it's working like I was expected to.
This is why I am looking for any other difference between these boards that might do that.
We don't really have that issue, since we are able to use the digital IO. we have the SPI communication, we looked with a logic analyzer and things looks just like they should.
However, today we cut the code to just a function and tried to see what we can achieve with arduino uno. We have the exact same behavior as arduino mega.