Saturday, April 30, 2011
A few ideas to make it more prototyping friendly,
1.Replace the existing simple male headers,with double height ones,allowing access to them from the top as well as below.Though,this would then render the Wireless CyFi port inaccessible..So then, maybe half of the pins could be double height ones.
2.Make a Dev Board : Make a board with basic peripherals,like a 5 & 3.3V supply,Level shifing,UART,an LCD,push button switches etc and all the pins broken out to female headers,where the PSoC3 FTK plugs on into a 28pin socket on this board.
3.Shields : Just like the Arduino,we could have stack-able shields for the PSoC3 FTK too.I aim to finally make a PSoC 3 shield out of the Ethernet thing.
4.Have a dummy 9v battery holder,mounted face up,to which the Board can be plugged in,making it stand upright,giving easy access to both faces of the board.
I'll have pictures of these,once I have implemented em.But thats a long way right now,as the first thing I need to do,is build a small 3.3v regulated power supply,that can be neatly accommodated onto the FTK's board.
Wednesday, April 27, 2011
On April 26th 1961, the silicon integrated circuit was patented by Robert Noyce (No. 2,981,877).
Robert (Norton) Noyce was a U.S. engineer and coinventor (1959), with Jack Kilby, of the integrated circuit, a system of interconnected transistors on a single silicon microchip. He held sixteen patents for semiconductor devices, methods, and structures. In 1968, he and colleague Gordon E. Moore cofounded N.M. Electronics, which later was renamed Intel Corporation. Noyce served as Intel’s president and chairman (1968-75), then as vice chairman until 1979.
Src: Today in Science History
It is also worth mentioning this MIT graduate went on to co-found Fairchild Semiconductor and the production of the first commercially practical integrated circuit.
Thursday, April 21, 2011
In no specifc order,I list some ideas I plan to materialize soon :)
0.Port Stuff from other Platforms - A lot of the designs we see online,can be made simpler,more robust,and powerful,had they been done on a PSoC.This is one game I love to play,i.e use the PSoC to outplay other platforms on their pet applications,in terms of simplicity and elegance of the design,covering speed,power consumption,expected output,whatever,purely using just a PSoC,and nothing else ;) ....anything from an AVR ISP to a PIC based function generator,the PSoC can give them a run for their money :)
1.A LC Meter - Taking inspiration from some existing designs,and the analog power of the PSoC,I think this is a good idea to excercise the analog blocks on the chip.
Build a Tank circuit,with the L,C being added depending on the other quantity being unknown,(if u wanna measure L,toggle a switch to add a C to the tank,the L being an unknown inductance connected in,and vice versa).Send the Tank's output to the PSoC,where a comparator 'square waves' the sine output from the oscillator,and then use a counter to count the frequency of that wave.Since f=1/2*pi*(LC)^0.5,and one of L or C are known already,we can compute the other.
2.A Logic Analyser(& Oscilloscope & Function Generator?) - Power and speed of the PSoC can be put to good use over USB,with this one.This stuff has already been done on other platforms,so that should help.Converting your existing board into a money saving diagnostic tool,is a good pursuit.
3.Embedded Webserver - Something that I'm currently working on,this one has limitless possibilities.
4.A Bus Pirate clone - The bus pirate is a really handy device,and looking at its feature set,making a PSoC version of it,could be a fun exercise :)
5.USB Applications - This is one side Ive not explored,and would love to,but the FTK I have(currently doesnt work :( ...and also cant do the USB bit,since its USB capable pins are routed elsewhere. ).The USBFS component opens us up to plethora of applications.A USB based anything! :)
6.Verilog On the PSoC - Something I knew only recently about,the PSoC can do Verilog.Though I dont know Verilog all that well,the PSoC offers a great chance to change that :)
7.Shields for the FTK? - For the sake of arduino-ism,this could be a neat project in PCB Design :P
8.Wireless Designs - CyFi is a great wireless solution,and throw USB,Wireless together,and the list is already too attractive.All kinds of wireless sensor networks could come to life.
9.UI stuff: Capsense + a GLCD,to make a proper menu driven UI,could be something useful across a whole range of applications.Hell,a GLCD itself holds a lot of room for exploration.
..Lots more to come,as I give them some more thought. :) with the PSoC,lots is the only measure of ideas :P
Update - It Works!
A rude shock,when i plugged the board back in,between trying to play around with the POV Example,the FTK showed up as an unrecognized USB device.My "Redo" instincts kicked in,and I reinstalled the software(drivers,creator,programmer,..the whole deal).Still no luck.Calming down,I took the problem piece by piece.Cable,Board,PC.Dug out a cable that came with my TI MSP430 Launchpad board,..still the yellow exclamation sign,bearing the grim message.To eliminate the PC,i did the whole install on a friend's VAIO,but the kit refused to co-operate.
Throughout all this,i did notice that the kit was getting power.
A discussion I had with tinman(from the PSoCDeveloper forums) some time ago,did give me a clear picture of what the board had.The PSoC3 chip,the FX2 chip and an EEPROM with a proper USB id,apart from the power circuity and the sensors,capsense,LEDs etc.
Since the power comes on,and the LEDs+Accelero work(POV Display),that section seems ok.Since the PSoC itself is driving them,I'd give it a green too.The shadow of doubt is on the FX2 and the EEPROM. Is it the EEPROM? Did the FX2 chip face sudden death?
Ive opened this to discussion on the PSoCDeveloper forums(here).I pray the kit isnt dead.I was just beginning to love it :'(
Update - 22-04-11 :Is it the EEPROM? In USB designs,this kind of problem is attributed to zeroed values of VID and PID,which in our case are on the EEPROM,a really tiny SMD part at that,making replacement(after reprogamming the VID,PID into the replacement part) impossible without a hot air rework station.
Update - 23-04-11 : As suggested by undesh of the PSoCDeveloper forums,I'll try sniffing the USB traffic to see what goes on.
Update - 25-04-11 : USB traffic,shows no response.Is the chip off? I pull out my trusty multimeter,and the schematics for the FTK.All the places that are supposed to be 3.3V,are 2.4V.The ZLD 0330's Vout,the FX2's Vcc-s,EEPROM Vcc etc. That doesnt look right,but I am no CyPro.I'll head off to bed,4am in the morning.
Update - 25-04-11 : I touch the probes from my LM317 based 3.3v supply to pins 5(Vout) and 7(Gnd) on the ZLD,and reinsert the USB cable,and Bingo!..We are back! :) ..the FTK3 comes up.Looks if like i'll wire in my own 3.3v regulator,then will be able to use it again. :) Thank You God. Rebirth!!
Creating Your Own Components
PSoC Creator 113: PLD Based Verilog Components ( a training on demand video)
PSoC Creator Tutorial - Creating a Verilog Implementation ( From the CypressSemi Youtube Channel)
The PSoC just keeps getting awesome-er :P
- Compare and Improve the existing Driver code with respect to the EtherShield 1.6 one.
Sunday, April 17, 2011
Heres a pic of my setup:
Thats the memory module on the right.A close up here:
I appoached this by writing basic SPI functions,of Sending,and Receiving a Byte.Make a neat .h file of those,and we can move onto the actual read/write operations on the chip.
To start off,I'm sending it 0x9F(Read ID or RDID Command),and i should get back
C2,20,17 in MID,DID1,DID2 ( Page 22 of the datasheet),MI is the manufacturing ID,and DID stands for Device Id.
But for some unknown reason(to me),I'm not able to get the Rx/Tx part properly working.I keep getting inconsistent data.Below are a set of shots showing the received values from each run of the code.
Most puzzling.Ive posted this issue to the PSoCDeveloper forums(here).
Will this post updated with my progress.
19-04-11 : Ive just realised,based on the input from abitkin of the PSoC Developer forums,and the syntax I kept using with the SPI Explorer,that the issue is with the Chip Select Line not being low for the entire time.Will test this out soon. Exams :(
21-04-11 : Managed to get over the nagging tension of exams,and tried out the code..Turns out,abitkin was right! \m/ Flawless SPI Communication at 10MBits/sec :)
Thursday, April 14, 2011
Wednesday, April 13, 2011
From the creator's website :
"How would you like to be able to run compiled programs from a uSD drive? Maybe you'd like to create an app that's closed source? Or perhaps you're just looking to display full screen 320x240 bitmaps using the Arduino. If any of those sounds like what you're looking for than Pyxis is the OS for you.
Composed of 1 core and 5 libraries, Pyxis OS is brimming with capabilities and features. 100% free and open source Pyxis is yours to do with as you please. After nearly a year in development we're proud to present this OS; with it you can put a 8.3 file system on your EEPROM, easily work with LCDs, and of course access a uSD drive with ease.
Each of the primary pieces of the OS has their own library. PyxisSD for uSD access, PyxisFAT for the EEPROM file system, PyxisPad for interfacing with the ButtonPad, PyxisLCD for communicating with the LCD and Pyxis for the top-level management of all the pieces."
Another addition to my to-port-list to the mighty PSoC 3
Monday, April 11, 2011
"Oscium has selected the PSoC® 3 programmable system-on-chip for its revolutionary new iMSO-104 mixed signal oscilloscope for iPod touch, iPhone and iPad. The PSoC 3 device in the iMSO-104 seamlessly manages the two-way communication between the oscilloscope and any iOS device via Apple’s proprietary dock connector, and also processes the incoming analog and digital signals."
....read the full story here
The PSoC never ceases to amaze & inspire :)
Saturday, April 9, 2011
More from the author's website :
"twIP is a really, really tiny IP stack, written in 139 bytes of C code - small enough to fit in a Twitter message. Ok, so it is very far away from a real IP stack, but it can do the first task of an IP stack: respond to pings. The entire source code for version 1.1 can be found this tweet (139 characters long - version 1.0 in this tweet, 128 characters long). "
The page has instructions on making it work too.Great stuff!
Friday, April 8, 2011
More on that,here . Do take note of the bug fixes mentioned on the page,before compiling it.This was originally written in mspgcc,but users have ported it to CCS as well.
I have used this successfully on many occasions,to interface with my Ethernet module,and a CMOS Flash Memory chip I recently came across.Flawless :)
A similar device is the I2C explorer,documented here.
These are must have tools for any embedded systems enthusiast.
Friday, April 1, 2011
I recently came across a device called The BusPirate.From the creators,Dangerous Prototypes website,
"The Bus Pirate is an open source hacker multi-tool that talks to electronic stuff. It’s got a bunch of features an intrepid hacker might need to prototype their next project."
Its basically a PIC MCU,which acts as a UART<=>X bridge,where X any among the many serial communication protocols out there.With many features added(See the full list here.) and a series of firmware revisions,its a really versatile device that has been used for a variety of applications.
With international shipping,it can be yours for USD 30...looks like a reasonable price to me,considering the ease it provides to your projects.Interfacing will no longer be a headache :) ..
I'll try porting this,or making a similar device using the PSoC3 sometime...
As for the PSoC 3,
It uses the a Tx Buffer(upto x bytes), Rx Buffer(upto x bytes), Control and Configuration registers of I2C/SPI PSoC block, a data register for data shifting, and one or more Pin Port registers,and an Interrupt system associated with the whole setup.
The ENC28J60(Datasheet) supports SPI Interface with Clock Speeds Up to 20 MHz.It has a bunch of commands for read/write access to the its register bank(a big one at that..refer to the "Memory Organisation" section of its datasheet),and its TX/RX buffers etc,apart from one to reset the chip.
So,the first step to interfacing with this would be to write a set of functions to handle the SPI comm.Though I did put together some code,it hasnt been very successful yet.(I keep getting only 0x00 back as data)..its been at that state since quite sometime now,since I am yet to receive my PC's harddisk from Seagate RMA Center.
I'm using a module I bought from here.
Not something new,but its an interesting project nevertheless.
Arduino(with the 'EtherShield') and AVR ports(here)are already out there,so I'm using those as a starting point.So,most of the packet handing code is already laid out.Its the SPI communication with the chip thats giving me issues.
I'll post the code here soon.