Worklog - More boards, more electronics... (March 21 2011)
So, after many hours of mind job, i came up with the final (hopefully) architecture of the system. I really did not expect it to be so complicated. Although this is not the most complicated project that i have design, it is certainly the most complicated project that i will finally make :D. Here is the architecture (click image to enlarge):
The CPU will be a simple board with a PIC 16F1937 and multiple connectors for the other modules to connect. The CPU will be in charge to control all other modules.
The LCD with the GPU board is based on my previous experiment titled "Reverse engineering an LCD", It will receive serial commands from the CPU. The commands will be converted into 8-bit parallel before they are loaded onto the PIC.
The UI is the User Interface. It will control the touch buttons and the LEDs required. The UI module will be connected to the CPU with a bi-directional SPI interface, using the internal MSSP module of the PICs. Meanwhile, i will test the coffee maker without this module, and i will use the 4 wires as direct buttons.
For the ICSP, i will use the 3 pins required, and because one of these pins is the MCLR, i will have a microswitch for reset as well.
Originally, i had the relay card and the digital output card as 2 different modules. But then,i decided to make one unified module that has both 6 relays and 10 digital outputs.
The Digital Input module is the most simple one. It has a PISO shift register made with the 74LS166. Both this module and the Output module, are cascadable. Multiple modules can be connected in series to extend I/O ports.
The 4 motor controllers for the mechanical modules are interfaced to the CPU in 2 different ways: The I/O ports of the modules that require either a pulse signal (like for example the clock input) or it has a reference signal (like for example the Zero Set), are directly interfaced to the CPU for increased precision and controllability. All other I/O ports are interfaced through the digital I/O modules. The orange labels indicate a signal from the output module, while the green label indicates a signal from the input module.
There are 9 remaining pins on the PIC. Instead of leaving them unrouted, i will route them to some auxiliary connectors for future usage.
As far as the ICD module is concerned, this is something that i will explain in future pages.
The CPU circuit schematic diagram
To make this think work, there are some modules that are absolutely essential to operate. These are the 4 motor controllers (which are made already), the CPU, the input and the output modules. So, i need to make the CPU and the I/O modules first, starting with the CPU. Here is the schematic diagram: (click to enlarge)
I use bus wires instead of connection wires to avoid the mess. Near each bus wire i have the name of the bus. The CPU has only the main microcontroller (PIC 16F1937) which will eventually control all other modules. Therefore, the board has only connectors for the peripheral modules. It took me a lot of time to decide which port will be used for each connector pin, to avoid a very complicated PCB.
The Input Card schematic diagram
The Input Card will have 8 digital inputs. A 74LS166 8-bit parallel to serial shift register will be used. Here is the schematic:
I wired also the SER pin of the chip. This way, if i need more than 8 inputs, i can cascade more of these cards in series with this pin. All inputs are pulled high with the RN1 resistor network.
The Output Card schematic diagram
Originally, the relay card and the digital output card were two different PCBs, but i finally decided to make them one single PCB. That is because, i need more digital outputs than relay outputs. So, i will use 16-bits to control the outputs, 6 of which are for the relays and the other 10 for the transistor outputs. Here is the schematic diagram: (click to enlarge)
I use 2 4094 CMOS serial to parallel shift registers to interface the card with the CPU. The CPU sends the data in 16-bit serial. 6 of these bits are interfaced through a ULN2003 to the 6 relays. I decided to use only 2 relays with NO and NC contacts. From the other 4 relays i utilize only the NO contacts. The other 10 bits are driven to 10 transistors and those transistors finally are driven to 10 digital outputs with pull-down resistors. All outputs are equipped with LEDs.
The eagle PCB files
Here are the sch files from the above 3 schematics. I used eagle PCB lite to make them:
@Alex In Greece during the Ancient times there was this saying: "Oyden monimoteron ek toy prosorinoy" which means that "nothing is more permanent than the temporary".
But now that you said that again, i think i should restart this project, shouldn't I? Hopefully within this year.
Hi you have a nice coffee Instant Cold Coffee Machine but you wanted to use a fridge for cold water but no water cooler that you use waron also in coffee automaaten is where you can get I know old water out of if not the name but it can look for you we have that built-in devices greetings alex
Hello George. Regarding the elements, these are hardware wiring to indicate wire connections between the modules. The orange boxes indicate wires coming from the output module (Digital Output Module - DOM), and the green indicate wires going to the Digital Input Modules. Notice that for example, from module "Rotary table", 4 wires comes out, then 2 of them arrive from the DOM and 2 goes to the CPU.
As far as the diode is concerned, this is only for polarity protection. It is the same as the D2. But you are right, It is not necessary and i may not put it after all.
I think your architecture diagram (first figure) is slightly confusing, because it seems to include elements of code (the elements above the CPU) with hardware elements. Ideally, you would have a system-level block diagram detailing your hardware and a separate functional block diagram to describe your code. If I'm misreading your architecture diagram, feel free to ignore this.
Secondly, looking at your reset circuitry, I see you have a 1N4148 diode between your microcontroller pin and your ICSP header (pin 1). I'm fairly certain this diode is not necessary, so you may want to double check that.
Frappé has become very popular here in the States. The difference is we use fresh coffee grounds to make coffee then we chill the hot coffee. But we tend to make more fresh coffee here while Europeans tend to make more instant coffee.
To serve we pour some in a glass and add chipped ice.
We also tend to add flavors to our frappé in the States. We can't leave a good thing alone - we have to tinker with it to make it more sellable.