January 2008


hotlink.JPG

Phil, from rancidbacon.com, has let me know that many of the links on here are broken for Camino browser on OSX and resulted in him seeing a hotlink message. I am guessing that this was a problem for other people as well. I would like to apologize for the broken code and the resulting poor browsing experience. I have disabled the hotlink code and will likely keep it off until I start getting close to my bandwidth quota. Thanks again for the information.

del.icio.us | digg

ths4601-small.JPG

As promised, I am posting analog circuits yet again. This time we have the THS4601: a wide-band FET-input op-amp. For clarity, I imaged the whole circuit under 400x total magnification resulting in a large file, which is why two 40x objective stitch files are provided. I like this circuit because it makes it possible to have some understanding of the underlying IC schematics. The last image includes labels for the pads and some of the components, so I will refer to these sections in a short discussion. Hopefully these things will make up for the lack of last week’s IC Friday.

The first thing to notice about this chip is, although it has FET inputs, the active load on the input side (right side) is made up of BJTs. This is to improve the bandwidth of the device as BJTs keep providing high effective load values with increasing frequency where a FETs gm might degrade. Furthermore, the connection pattern for the eight devices is such that complementary devices from each input chain are next to each other. This is to keep good load matching in the face of manufacturing differences with the understanding that adjacent devices will more likely undergo the same process as devices at some distance.

Large BJTs are again used to generate a voltage reference, likely to drive a current mirror. The size of these devices is large to, yet again, desensitize the chip to slight manufacturing differences across the die. Over all, this chip uses a fairly large process so any time a metal layer makes electrical contact with a polysilicon layer, a large number of small vias are used. These vias can be viewed as the small pits that litter many of the metal traces. This is done to prevent metal from forming cracks and entering the polysilicon beyond the specified depth due to strain associated with deposition and bonding.

ths4601-40x-stitch-smaller.jpg (2mb)

ths4601-40x-stitch.jpg (8mb)

ths4601-100x-06.jpg ths4601-100x-05.jpg ths4601-100x-04.jpg

ths4601-100x-03.jpg ths4601-100x-02.jpg ths4601-100x-01.jpg

ths4601-annotated.jpg

del.icio.us | digg

psp-tv.jpg

NOTE: This is essentially a modification of this setup except I am using a Sixaxis controller and displaying the PSP on a LCD TV.

I have previously mentioned my intention to add an external controller to a PSP, however, I have become quite fond of it and do not want to make it any less portable by adding extra wires and a PS2 controller decoder. If only there was a way that I could control the PSP with an external controller, all through software, without the need for hardware tampering. Furthermore, it would be nice if this method was wireless. Unfortunately, the only method that I have found involves illegal modification of the PSP firmware. I am against software piracy and typically uphold license agreements, however, I also would like to be able to occasionally play my PSP on the living room TV using a standard controller. Sony, if you are reading this, please add this feature to the firm ware, I mean, you already patented it.

As I mentioned, these steps involve putting modified firmware on the PSP which is probably against one or more sections of the license agreement, may be illegal, kills puppies, and may render your PSP useless. You will have to figure out how to load custom firmware on your own. You will also need ir shell.

At this point, the computer that will be connected to the PSP (over USB or Wifi) will need a joystick controller. Anything that the OS recognizes will probably do, however, I used a PS3 Sixaxis with Windows XP. The instructions to get the Sixaxis to work with XP are found here. One addition I would make is that it seems that the ps3sixaxis_en.exe file needs to be run once, and the PS button pressed once, every time the Sixaxis is connected to the PCs USB port.

The usbhostfs and nethostfs packages must now be downloaded to the target PC to facilitate the keypad redirection. The two packages are in the form of zip archives and can be extracted to the same directory. First, you can run joytest.exe to make sure that the PC can see that you are pressing buttons on the Sixaxis. If it does not, you can try pressing the PS button (all while the controller is connected to the USB port). Once the controller is identified, you can run the joymap.exe command to create a key map file for the Sixaxis controller. The syntax I used was ‘joymap 0 ps3.map’ where 0 denoted that I want to use joystick 0 and ps3.map was the output filename. Both analog and digital direction pads must be mapped to joysticks. Be careful where EXIT is mapped as it will end the game you are playing and return you to the shell. Finally, nethostfs must be run to listen for a connection from the PSP and control the keypad. The syntax I used was ‘nethostfs -s -l pass123 -1 ps3.map’ where the -s told it to redirect the keypad, the -l pass123 set the authentication password to pass123, and the -1 ps3.map mapped the first joystick using the previously created map.

Finally, we can configure the PSP. Once ir shell is booted on the PSP, we run the configuration/setup on the bottom row. The important things to change are to enable keypad redirection to nethostfs, to set the nethostfs AP to the ip address of the machine with the Sixaxis, and to set the nethostfs password. This is assuming that the default ports are used. We can now test the setup by initiating nethostfs on the main ir shell screen and verifying that we can move the cursor around using the Sixaxis. The last steps is to enable the TV output on the PSP by holding down the left trigger and the right directional pad and then to start up the game UMD from the ir shell screen.

At this point, one of the limitations is that the TV-out, through ir shell, does not scale to the whole screen properly and that I am using the wifi connection in infrastructure mode. The result of the first limitation is that the video screen does not take up the whole LCD screen on the TV while the result of the second limitation is a little bit of latency in the controls. The second issue may be lightened by using Ad Hoc mode between the PC and PSP or using a USB cable and usbhostfs (instead of nethostfs) all together.

At this point, I doubt that I will ever complete the PS2 controller to PSP interface that I previously mentioned since this works well enough and I am finding that playing the games on the PSP is not so bad. I have some of the basic interface codes worked out under LabView and may eventually end up putting a PS2 controller on some other device. Enjoy!

( YouTube video )

del.icio.us | digg

« Previous Page