Home  GBA  NGC  NGPC  FPGA  Mobile  GP32  NDS  Oldies  Misc  

Monday 27 March 2006

MEX - Some thoughts

I played a bit with the LCD screen, and got a bit disappointed by its capabilities. The SPI, which is a serial interface, is in my opinion the main issue for high performance. However, it has some interesting abilities, like region-based RAM access, and with some software trickery, it could probably give good results.

Nevertheless, as I know how to use it in software, the option of using a LPC21xx chip was no more a must-have. So I started to investigate a bit on which kind of MCU I could use instead of these ARM chips. You can see on this picture the beginning of a SX28-based system.
MEX-SX28
However, I quickly cancelled the idea. 2K of code space won't probably be enough to make a game. The idea of using the SX28 looked nice at a first glance, as it is able to perform at 80Mhz, and is in DIL format. As the number of connections is small, I could have made quickly a small circuit on a protoboard, and the system would have been done in a few :)

So I decided that with this project, I will stick with LPC chips. Having much ROM and RAM will be more convenient, and I could even add CompactFlash support, to load programs for this system. So it seems that it is the right moment to build my first PCB. I will use a LPC2106 for the final system, because I know it a bit now, and also because if I don't feel comfortable with soldering, I could train myself on a LPC2101, which is pin-compatible, and costs only $3. It's a bit challenging, as I will use surface-mount components (the LPC2106 comes in a tiny LQFP48 package, and it looks very very tiny compared to the DIP chips I'm used to play with).

I will use the SparkFun carrier board as is, because I haven't be able to find anywhere a site to purchase the small Hirose DF23 connector for the screen... Well, it will keep my own PCB simplier, which is not a bad thing.

MEX - First experiments with the LCD screen

I have received my LCD and carrier board from SparkFun. I quickly set up a small circuit on a breadboard, and started to port the source code, designed for a LPC2138 to my LPC2106... and encountered the first issue !

The LCD uses a weird 9-bit SPI interface (1 bit to select either command or data, and 8 bits for data). The LPC2138 provides this kind of SPI features, but not the LPC2106, that can only do 8-bit SPI !

I started to wonder what to do... Get a LPC2138 too ? I disliked this idea, as I would have to find a convenient (and cheap) header board, or maybe make one myself (which would have taken much time).
So I decided to look closer at SPI, and found out that it was pretty simple, so I started to write a SPI implementation in software. And after half an hour or so, I was quite happy to have the interface work ! The LCD screen now displays a multi-colored square (at a quite low display rate, but I'll look at that later).

First impression, this small screen is very bright, the brightness/contrast flickers a bit, but I haven't soldered the filtering capacitor SparkFun recommends, so I guess it's normal at this stage.

MEX - Project started

While chatting on IRC channel #hwdev, someone talked about some nice and very cheap LCD screens available at SparkFun. $20 for a 128x128 backlit 4096-colors display is plain great! Sparkfun provides also an example source code for LPC2138 ARM MCUs to control the display.

Naturally, it gave me the idea to try to build a custom handheld console.
The project name is "MEX" which stands for "Micro ElectorluX".

I ordered one of these screens from SparkFun, as well as a carrier board for prototyping. As I already have a LCP2106 module from Olimex, it would be quite easy to have things up and running quickly, to see how capable this little LCD screen is.

Sunday 19 March 2006

Buzzzzzzzzzzz...

LPCsound Here is my current setup : a LPC2106 module, my FPGA board, that brings extra connections (RS232, switches and buttons mostly used when programming the MCU's flash memory), along with a small peripheral module from Diligent that brings a small speaker and a LM4876 amplifier.

After a while, I managed to have a PWM output from the LPC2106, generating a 440Hz square wave. Good. Maybe I should get some earphones instead of this speaker board, as I don't think my sound experiments will please my family much, especially if they last too long :)

Next thing to do, try to play some PCM sound...

Saturday 18 March 2006

Let's go on... with Sound !

After some weeks of inactivity, I'm finally back to my projects.

The GPU is currently in a state that is OK for me, so I'm now going to deal with sound support, thing I've never done before.

One important thing necessary for sound is the Digital to Analog conversion, so here are a few stuff I'd like to investigate :

  • Sigma-Delta digital to analog conversion, that I will probably set up in a FPGA.
  • PWM ports available in many microcontrollers, that can be used to produce sound too.
  • Some commercial DAC ICs, such as those from Analog Devices.

I think I will start by using a microcontroller and PWM ports, in order to test stuff like samples playback (that I could use for the Kaake project that I left over some time ago), and then play a bit with waveforms generation, in order to make something along the lines of the famous Commodore SID :)

It will be easier to test stuff with a microcontroller rather than a FPGA for the beginning, and I have the perfect candidate for these experiments : a LPC2106 on a small header board I used some time ago. It will be perfect for these testing purposes, as it is able to store a "large" amount of data (128Kb of flash memory).

EDIT : I forgot to say that some days ago, I got some crazy idea. I won't tell you anything about it for the moment, as I want to keep it secret. Once it's (hopefully) done, I'll post something about it.

Wednesday 8 March 2006

Our new house

It's been some time since my last site update, but this time, I have a good reason : we've just moved to our new house !
There's still a lot of stuff to do, but two important things are "functional" :

GeekCorner The "Geek Corner", in our main room...

GeekLab ...and my "Lab", a room that will be dedicated mostly to PCB building.


I'm now able to continue my projects, even if I think that in the next few months, I won't be as active on my projects as I used to : there are so many things to do for the house, and my work eats much of my time these days. But well, stay tuned :)