1206 LCD + 2 atmega MCU

Finally got my board design finished (not finalized yet). Here are my idea: There will be 2 MCU: atmega8 and atmega328; The atmega8 is used to interface with the 1206 LCD. it's powered by an usbaspbootloader which is programmable via an Micro-USB port; No serial-ttl converter is needed for the atmega8; The atmega8 is connected to The atmega328 via I2C, so the atmega328 will have full control of LCD. The atmega328, with a normal boot-loader, will be programmable with another Micro-USB via a Ch340 Chip.

The left side of the board will be the pin-outs; while the right side hosts 4 analog buttons connected to the Atmega328, a reset button and a micro-USB port for the Atmega328.

The area that I think need more refinement is the 20x2 pinout. are they logical?

Any comments, suggestions. Please feel free to let me know.

(open in a new tab/window to see full size)

I can't read the schem (too small), but is that a 32kHz xtal above IC1?

The way you wire the buttons, you can only detect the highest priority button.
If you make the buttons short a (clever selected) resistor, you can detect multiple presses.

Whandall:
The way you wire the buttons, you can only detect the highest priority button.
If you make the buttons short a (clever selected) resistor, you can detect multiple presses.

Interesting you should say that because I am working on exactly that problem at the moment to handle multiple buttons on a single pin. My design includes 5 resistors in series with values as near as I can get to 10K, 10K, 20K, 40K, 80K. I will use 4 buttons, each will short out one of the resistors, except the first, which is there for the case that someone presses all 4 buttons at once. I am working on the timings now to support possible multiple simultaneous button presses.

6v6gt:
I am working on the timings now to support possible multiple simultaneous button presses.

Timings?

You should be able to get all pressed buttons by looking at the resulting voltage.

Whandall:
Timings?

You should be able to get all pressed buttons by looking at the resulting voltage.

It is not as simple as that, at least not the way I am doing it. In need to be able to differentiate a single button press from a multiple button press where I cannot guarantee that a person attempting a multiple button press will press and release the multiple buttons at exactly the same time.

TWO processors and you still need to save pins by using an analog switch setup?

To say nothing of the fact that I am pretty sure what he has is actually a 1602 display. That is what is on the diagram.


6v6gt:
My design includes 5 resistors in series with values as near as I can get to 10K, 10K, 20K, 40K, 80K.

Which is nice, but only gives linearly proportional values if you arrange a constant-current feed. With a resistor as load, these become part of a potential divider and do not give ratios in binary progression.

Paul__B:
To say nothing of the fact that I am pretty sure what he has is actually a 1602 display. That is what is on the diagram.


Which is nice, but only gives linearly proportional values if you arrange a constant-current feed. With a resistor as load, these become part of a potential divider and do not give ratios in binary progression.

That is of course true, but not relevant in this application because it is necessary only to ensure that 2 different combination of switch presses do not give the same resistance.resistanceLadder.PNG