I have created a freeduino based Arduino variant by replacing the standard chip with an Atmega 328p AU in with a 32 MLF package. According to the datasheet this should give me two additional pins. Everything (including power, the FTDI chip, the crystal, the bootloader and all other pins) works fine except for these two pins. I already located an issue with one of the Arduino library files. Thus I changed my test code to
void setup() {
DDRC = 0xff;
PORTC = 0xff;
}
void loop() { }
As expected this code will set pins C0-C5 high. Since it does not rely on the Arduino pin mappings it should work no matter even if the Arduino files are not OK.
However it fails to set pins C6 and C7 to high as well. Since the datasheet advertises these two additional pins (and the Nano seems to use them) I would have expected that I can use them easily.
The issue is not due to solder joints I already checked both visually and with a multimeter that the solder joints are OK. I also measured the pins levels straight at the processor.
So my current thoughts for the possible source of this issue:
- Maybe I am missing something? But what?
- Maybe the specific processor is flawed?
- Maybe there are some specific fuses that I am not aware of? Which ones?
Right now I am completely in the dark. Has anyone any hint for me? What am I missing?