Well, it's not like I couldn't use better equipment cuz there is none. Instead I use the old and cheap stuff cuz it fits my purpose.
Though I probably should switch the oscilloscope for a faster one. That 1µs/div is already the lowest it can display...
what exactly is your job called molly?
I'll be an Electronic Engineer specialized in Microelectronics and -systems. In theory I am able to design a chip, fabricate it in a clean room, make an ASIC out of it, design a circuit for the system using the ASIC, fabricate the PCB, test the circuitry. Personally, I specialize on circuit and PCB design, including testing and "quick'n dirty"-software design
I'm the hardware dude basicly.
I am still studying on the "old" German diploma which is a bit higher set than a Master degree.
The actual application I am working on is this:
visitors can't see pics , please
register or
loginWe have an array of piezo-sensors on a plane-wing which is used to measure the structural integrity of the wing itself. It works roughly like this: you send out a pulse of a certain waveform through the wing which gets picked up by the sensors. Depending on the measurements the sensor did, you can relay information about the structural integrity of the wing. That's more or less the whole idea without going into the details.
That waveform in the picture is the test signal that has to be achieved. The big challenge is to get it fast enough. On the picture it runs with something around 10kHz (don't remember the exact frequency anymore) but what we actually want is something between 150kHz and 250kHz.
Creating the waveform on a microcontroller is rather trivial. All I had to do is to re-create the waveform with a math-program (I am using Mathlab for this) and then generate discrete values for it. Basicly, a huge row of numbers that follow the form of the function. I wrote myself a little script for it where I can specify how many cycles I want, how many discrete values it generates. Then I convert those into hexadecimal values, save them in a certain format and upload them as a lookup table to my microcontroller.
With that lookup table all set, I just call a for-function to put one value after the other on the DAC (digital-analog converter) of the µC.
That was done rather quickly, took me about a day to get the above output.
I realized that it wasn't even closely to the frequency I had to achieve tho. Although the µC (XMEGA256) is a really potent one and runs with 32MHz, it wasn't fast enough to handle the for-function and the digital-analog conversion at a speed anywhere near I would need it.
I played around with the discrete values, mainly using less cycles and less values overall which resulted in this:
visitors can't see pics , please
register or
loginAs you can see, compared to the first picture, it has very visible steps now but the frequency was barely raised.
I decided to change the circuit. Now I am not using the internal DAC (digital-analog converter) of the µC but an external ASIC instead. Well, in theory it should be way faster and I am confident it will be in the end but right now I am just getting bullshit values out of it.
The setup is now that I use 8 output pins of my µC on the ext. DAC as a bus. Everyone with a bit of an background in digital technology knows the order of the binary bits.
All I do now is to read the value from my look up table which comes next and put it onto my output register (1 Byte) which is connected to the ext DAC. Unfortunately the output of the DAC is complete garbage and I have no idea why
The bits seem to have the wrong analog values when the DAC generates the voltage. The DAC does a conversion but those values are all wrong and inconsistent...
That's where my actual challenge is right now. Creating that pulse was just a surprising "side quest" to appease the other institute involved in the whole project
The all dominating challenge is the frequency. It sounds rather unspectacular but it is actually everything but trivial. Speed is always a challenge in electronics
Who's not bored by now?