Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Ambitious Project: Need Tips

Status
Not open for further replies.

Q__Hybrid

New Member
Hi everyone,

I have an ambitious project (for a beginner) and need someone to tell me what I should learn in order to be able to complete it on my own and then point me to free and credible english language resources that can provide that information. I have asked for help from others before, but I get question marks and confusion in response, so I'll attempt to do it all myself.

The Project:

I am building a multi-purpose digital controller with an output line count of 128. The brain of the hardware is an OOPic 2+ microcontroller that uses I2C to communicate with a Matrix Orbital VK204-25 for display purposes. The OOPic also looks for user input by way of some nifty Bulgin illuminated vandals and an LED-loaded 4x4 keypad from Storm.

The outputs of the OOPic are connected to 74HC273 and 74HC373 latches, which in turn are used to accomplish read/write functions on the numerous AM29F010 chips that serve as the system's memory.

The basic premise is that system-wide memory defines one 128-bit word of data to output on the lines, plus a 16-bit word that represents how long in microseconds any given state should be held for.

Flow control for accessing memory is conducted via the RS-232 hookup. A custom GUI that I'm programming compiles data into the form of 128 words of 128-bits in length for the output states, as well as 128 words of 16-bits in length to define the persistence of each word as time passes. Serial Protocol is used to remotely define the state of each output on the micro in order to step through the process of setting up the latches to perform the read/write algorithms. This way, I don't have to program and store a massive program on the micro itself.

Batteries will power the hardware (micro, chips, memory, outputs)

The outputs, ideally will use +5 Vdc to throw RFP12N10L 100v N-Channel power mosfets such that a 12 Vdc load will be applied to the outputs. I want an optional ability to apply the +5 Vdc straight through in addition to the 12 Vdc.

The 12 Vdc output will be applied to push-type solenoids rated for 24Vdc. I chose 12 Vdc because they aren't required to push at maximum strength and car adaptors cannot create a 24 Vdc current, allowing for the load to be supplied while on the move.

The 5 Vdc ouput will theoretically be applied to altered shutter cables in order to control SLR or digital cameras.

I know, I could get Maya and do the same thing much easier, but I'm a purist. So, any tips on what I should do first? I already have nearly all of my parts purchased based on a design that someone helped me make for it. I need to be able to know whether there's something wrong with the portion of the design that currently exists, as well as how to conjure the missing elements and that requires educating myself all the way up to the level required in order to pull off something like this.

Right now, when I look at a schematic I have no idea what I'm looking at or why any of it is where it is. So I basically need to learn everything.

I hope to get started soon so I can start building.
Thanks,

+Q__
 
reply

Why you using the simple little oopic, you should go with the PIC microcontroller. Do you really want to pay like $70.00 for a simple chip?, I think not. Go with the PIC there is alot of books on the PIC and has alot more features then the oopic.

:D
 
The OOPIC is nothing but a PIC programmed with the OOPIC firmware... you load your code on and it interprets it, rather than just running it directly... the downside is that interpreted code is MUCH slower...

the OOPIC only runs 2,000 instructions per second! that's like a pic running at an 8kHz clock speed, which is HORRIBLE. (so much for microsecond-long delays)
there are "virtual circuits" that you can implement with the OOPIC that run 50 times faster but that's still only 100kHz instruction speed, which is still very, very slow.

using a PIC at 40 MHz you can run 5000 times faster (10 million instructions per second)... and given the large number of functions you are trying to achieve it sounds like the slow speed of the OOPIC will be a severe limitation.
 
You only need about 2KB of memory to store all your timing and output values. You can buy a microcontroller with 65KB of memory for around $10. You just need to make sure that the micro can read and write to its program memory.

You should probably have 24 pins for addressing your latches. 16 "clock" pins to store values in the flipflops and 8 data lines.

With a decent amount of program storage (65K is a huge amount of program space) there won't be any reason to send state transitions through the serial port - they can be stored on the micro too.

Atmel AT89C51RD2
This micro seems to fit all your requirements. It can be programed through a standard serial port. You can get it on www.digikey.com for about $10. You can either program it in assembly (8051) or get the free C compiler SDCC (there's probably a free BASIC compiler out there too if you spend some time on Google).

Some others on this board can recommend an apropreate PIC controller if you're attached to that archetecture.
 
reply

Well it depends on time wise because he would have to learn the PIC which would take a month or two or even longer depending on learning level, but the pic is the best to use.
 
Micro and Sys Architecture

I thought that the system as it had been envisioned was the simplest that it could be done, but if there is an even simpler way, please elaborate with a block diagram of what you suggest.

Here's how the project was envisioned:

Two static RAMs work in tandem to define Time to Live (TTL) values for each 128-bit word on the other RAMs.

A dedicated 1 Mhz clock is used to step through a 16-bit counter, which interrupts when the counter's value is equal to the TTL word.

A second 16-bit counter is directly applied to the address of systemwide memory, which increments each time the other 16-bit counter interrupts.

Once it is initiated, the sequence runs at a much faster speed than the OOPic, and the use of the RAMs makes it easy to drive all of the lines at the same time with no delays in compiling the binary words.

The system was configured as a mainboard that controls eight driver cards with two RAMs each.

The most complicated actions that the micro would be required to do would be:

1) Displaying the interface graphics on the VK204-25,
2) Storing/Erasing data to system memory.

Also, the memory must be re-usable. It can't be volatile or prone to a limited number of re-writes, as the ability to manipulate onboard data is part and parcel with this concept.

So...Is there a much much easier and less elaborate method of achieving this concept? I am highly interested in any designs that require a tight, spare number of parts because it must all be crammed into a Hammond Manufacturing water-tight diecast case that is not very big.

As I said earlier (I think), I have already purchased nearly all of the parts necessary for the current and still unfinished overly delicate (and slow) design. At worst, I have alot of really useful parts for other projects.

Thanks,

+Q__
 
Re: reply

Roboticinfo said:
Well it depends on time wise because he would have to learn the PIC which would take a month or two or even longer depending on learning level, but the pic is the best to use.

You would have to learn OOPIC, and the PIC's capabilities, too! You could get the free MCC18 compiler and run C-code. Being C, you may be able to draw on previous experience. There's a world of resouces to help you with how C works. You will probably find this experience useful in the future, it works on a resume. Proprietary languages with little real-world value like OOPIC are pretty much a waste of time to learn in my opinion.
 
Re: reply

You would have to learn OOPIC, and the PIC's capabilities, too! You could get the free MCC18 compiler and run C-code. Being C, you may be able to draw on previous experience. There's a world of resouces to help you with how C works. You will probably find this experience useful in the future, it works on a resume. Proprietary languages with little real-world value like OOPIC are pretty much a waste of time to learn in my opinion.[/quote]

I would have to agree with you but if he no's basic then he should use a basic compiler.
 
Storing States?

I need to know what you mean by storing the states on the 65k program space.

I agree with being able to store the algorithms for assigning data to the ram chips, but I don't agree with storing and/or generating the output states on the micro.

The output states themselves are not a simple series from 1 to 128. I use a custom piece of software to generate Beziér curves that define the precise point in time at which each output triggers. This is so I can achieve smooth transitions from one triggering interval to another while operating on a constant microsecond resolution.

It gets more complicated, whereby I can mix up the order in which individual speed changes occur.

It all comes down to: I do not want to entertain the idea of a completely stand-alone system that can generate its own Beziér data. It must rely on a more powerful external computer to feed it the output data.

These responses are terrific, but it seems that things have gotten rather cacophonous and indirect, something I've seen before. Not picking on anybody, but it's a little hard to keep up with.

I went ahead and downloaded a handbook of electronics fundamentals, but I think what I really need is a comprehensive all-in-one book that is illustrated and easy to understand. Something going from the basics all the way up to multiple IC projects. Something that explains how to use formulas and equations to solve for the placement of decoupling caps, if that is at all possible. Anybody know of a good text?

+Q__
 
The original reason why I chose the OOPic was that it runs on a form of Visual Basic, which is the same language that I've used to author the custom software that generates the Beziér data.

Basically, it would make the development of the project faster if I didn't have to learn another programming language. Dumb reason, but that was my motivation.

+Q__
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top