Peter,
Very exciting stuff. It would indeed be a powerful combination. Effectively the PPC shadows the Prop and gives it secret powers, all via standard I2C.
How confident are you of the silabs sending the full 32kB through at 300/400 kHz? It sounds like you have already investigated this. I raise it because its the issue I struck trying to do the same thing with MC9S08...
The Silabs parts normally run at 25MIPS which is fleet footed enough by any 8-bit microcontroller standards but the F411 can run at 50MIPs so I reckon I have a few MIPs up my sleeve and also the 8051 instructions are very good at bashing bits so there won't be many MIPs wasted either. Once I receive a device address and memory address I need to be able to read out the first byte by the time the device is addressed again in read mode around 25us or so later. Considering I have SPI in hardware so there is no bit bashing to the flash then I have around 1,250 instructions to play with. I think it will handle it fine. Anyway, I have still allowed for the normal EEPROM on-board for now. Writing is a different story but at least we can buffer that.
Nice Peter. There is another possible solution and that is to load the prop from the 8051 using the download protocol. Depends on your use of pins I guess.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
@Ray - yes it would be possible except that I am not connected to the download lines plus there could be conflict which of course can be overcome with something as simple as a resistor but the PPC is already connected on the I2C lines and I want Prop software to work transparently. Think of the case of software that modifies the EEPROM to backup settings, so you would have to emulate there. It turns out that I have just about routed the new pcb and I had room for an EEPROM, in fact I had room for a wide EEPROM. The layout is totally different on the left of the pcb but it's all working out nicely.
I don't anticipate any problems with emulating a EEPROM though.
The revised pcb artwork has been done and the online document updated. I had room to leave the EEPROM on along with a wide footprint just in case. The Flash chip is no longer controlled by the Propeller but is instead accessed over I2C through the PPC which emulates a paged EEPROM instead. So no special serial flash driver is needed, just a slightly modified (optional) I2C to access more than one 64KB page.
Since the C8051F411 PPC includes a usable RTC the original PCF8563 has been removed. One Prop I/O is freed up which means that P24 is now totally free. The Prop Plug style connector has been moved in closer to the main connector so that is 0.1" away from it. The best place I had to bring out VDD on the Prop Plug connection was to put it on the other side of ground. This whole connector row will not be populated as it is meant for a convenient method to program the PUPPY in-situ.
Yes, there is a blinking bright status LED which is controlled from the PPC so it should blink away by itself, but the Prop can still talk to it via I2C to override it.
A spare I/O pin from the PPC is connected via a resistor to the Prop's crystal oscillator input so that I can under software control override the crystal and inject an odd frequency which is experimental at this stage.
The PPC's UART was a bit hard to route so I compromised and joined the RX and TX together and fed them onto P24.
I'm sending this artwork off to OURPCB for a quote and if there are no changes then I will have a few hundred produced on a 5-day turnaround. Until then I am still open to suggestions and btw nobody has rubbed the give-away lamp yet surprisingly (read the posts carefully).
I'm going to need at least two of these to play with, but am happy to pay.
I'll be interested to hear what you think of OurPcb. They're certainly responsive via Skype. I'm thinking also of giving Silver Circuits Malaysia a go (4 eurocards, US$72, but the shipping is cheaper at $13)
I've used Ourpcb before and I don't have any problems with the work itself. Most of the problems with these Asian companies stems from poor communications as they will always say "yes" to what they think you are asking and when you get it it's &^%$!@)(!!. I sent a set of pcbs once on a little minipanel and they wanted to divide up all the pcbs and charge accordingly but I said no, I wanted it on the panel as a set so I gave them instructions etc. OK. I got a whole box of them back all nicely etched on a minipanel, only one slight problem, they had not been routed out.
I will have a quick look at some other companies but otherwise I am happy with Ourpcb.
I note on your pcb, on the 'L' header zone, silk screening marked 16, 20, and 24. And on 'R' header marking of 0, 2, 4, 6, 8 10, 13, 14. Is that possibly in error?
I've done quite a few pcbs, and know it is easy to not catch 'everything'. Just asking. If OK, no explanation needed.
Harley said...
I note on your pcb, on the 'L' header zone, silk screening marked 16, 20, and 24. And on 'R' header marking of 0, 2, 4, 6, 8 10, 13, 14. Is that possibly in error?
I've done quite a few pcbs, and know it is easy to not catch 'everything'. Just asking. If OK, no explanation needed.
It's OK but here's an explanation anyway.
When I read your post I saw "13" and went and checked the artwork straight away. I'm guessing you are talking about the overlay but I spotted the "13".
Anyway you know what it's like when you have these things plugged into matrix boards or you are probing the hardware, it makes it a lot easier when there are some pin IDs on the board. So 0, 2, etc represents P0, P2 etc with the implication that the other row of pins are P1, P3, etc. The L and R symbols are just so you get it the LEFT and RIGHT way around. In a pcb this cramped you don't have the luxury of saying more but what is there is sufficient. The R/T is RXD and TXD while D+C is SDA and SCL. It's a bit like mnemonics for processor instructions. Isn't there a sticker for the 40-pin DIP Prop as well?
I start my pcb design with a schematic so the whole thing is net-listed plus I use a lot of net labels so as I manually place and route the pcb I can optimize as I go and maybe even go back and make a change to the schematic to make it easier to route. I never used to do it this way as I would normally keep the schematic in my head but I have found that the final automated design rule check has saved my butt a few times. If I have zero errors for all categories then the only thing I could have messed up is the schematic or the footprints, especially connector footprints. My final DRC revealed 5 errors exactly where I expected them to be and where I left them too (bottom center pads).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
Post Edited (Peter Jakacki) : 4/28/2010 11:47:42 PM GMT
After days of anguish deciding whether to commit to the C8051F411 for the PPC (programmable peripheral controller) or some other device of which I have studied many I have made a decision that I am happy with. For the same price as the 8-bit device I can have a 32-bit ARM Cortex-M3 running at 72Mhz ( STM32F103C4). www.st.com/mcu/modules.php?name=mcu&file=devicedocs&DEV=STM32F103C6
What's more although this one lacks the DACs (sad) it has 12-bit A/Ds (two 1Msps units), two UARTS, I2C, SPI, CAN bus, USB, RTC, timers, DMA, etc. As it is in a 48 pin LQFP it has enough I/O to match the Prop so that every pin on the module is shadowed by a pin on the PPC. This required that the microSD be moved to the left of the pcb and the PPC placed on the top side directly above where the Prop sits on the bottom side. I should have this finished in the next day or so and then I will get some pcbs made up.
Time to get some sleep, I will update the online docs later.
Sure laugh tubs, you probably went to bed early and what do you do when you get up early? Straight on the forum you addict! Not like me
I can see I am losing my focus as the PPC was basically to add some A/D capability to the Prop and now it's going crazy. Maybe I might leave it with the F411. There is also another possibility as I have used the older LPC2148 ARM chip before and it is in an LQFP48 package too. Although it only has 10-bit ADCs and a 10-bit DAC it does have 512K Flash and 48K RAM and USB and I have a very nice Forth running on it.
Peter Jakacki said...
Sure laugh tubs, you probably went to bed early and what do you do when you get up early? Straight on the forum you addict! Not like me
RFC anyone?
I did too, safe in the belief this great PPC concept was about to materialize... I think its a great idea and really don't mind what micro achieves it, though I personally need 12 bits or better adc.
I laugh because in trying to follow your worthy cause, I'm reading datasheets I never would have bothered with otherwise. Its been quite a journey through freescale, nsp/lpc, silabs, and now ST. My head hurts trying to make sense of why, for instance, the silabs qfns can't be pin compatible, and there is a 'A' variant that moves an TX and RX one pin over. STM (especially 64 TQFP in that series) and freescale seem better in that regard.
When I get around to it, I want to give a PSoC24123 a try, mainly for analog and switched cap reasons.
Forum addict? "No way".... (don't they say denial is the first stage of therapy Still, its so much cheaper than the bbs dial-up days
When you do pcb artwork you always have to be prepared to rip it all up and start again if that's what it needs, rather than trying to kludge it. In this case I am temporarily ripping up my week of extra research and sticking with the Silabs version because I know it will work first time plus I have worked with them before. The tools are free and easy and the in-circuit programming has been tested on the Prop.
But what I am doing rather sneakily is laying out a sandwich pcb that slides onto the bottom of the PUPPY and becomes part of it.
What's on it? Nothing much, just my LPC2148 that screams along running my Forth and of course ARM assembly code. Large and fast application code is not the domain of the Propeller as we have found and this is my solution. Once again, this is tried and tested as I have done designs in the past that marry these two chips. The extra I/O connect up to P0..P15 also provide 10-bit ADC on these pins in addition to the functions of the base PUPPY. The USB will connected directly to a mini-B on the underside of the pcb. The sandwich module may be made with precision connector holes so that they form a gas-tight fit when they get pushed onto the connectors pins rather than soldering (maybe).
I have attached a photo of a mock-up of the PUPPY sandwich module.
Tubular said "I laugh because in trying to follow your worthy cause, I'm reading datasheets I never would have bothered with otherwise. Its been quite a journey through freescale, nsp/lpc, silabs, and now ST."
You too hey!!! Now where is that ESP to exchange what we found without having to type it??
I have been looking for chips that can do USB OTG with lots of SRAM. There are a few with lots of SRAM but then they miss something else that we can do simply with the prop (like multiple cogs). Guess I will just have to wait for the Prop II - it should make a great co-processor to the Prop LOL
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Peter, looks like a very sneaky way of bringing forth to the masses! Seriously though, it would certainly be a potent little combo. I'm pleased you decided to stick with the puppy prop board despite the anguish.
Cluso, have a good look at the "lpcxpresso" lpc1343 variant. It has 2 LPCs - on the "link" board it has a LPC3154 (192kB sram bga with usb otg). The LPC1343 end can be detached. These are currently on special with au.farnell.com for $40.19ex, including free delivery if you order online. They are out of local stock so it might take a week. Not sure how many pins of the LPC3154 can be accessed.
Comments
Very exciting stuff. It would indeed be a powerful combination. Effectively the PPC shadows the Prop and gives it secret powers, all via standard I2C.
How confident are you of the silabs sending the full 32kB through at 300/400 kHz? It sounds like you have already investigated this. I raise it because its the issue I struck trying to do the same thing with MC9S08...
tubs
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
I don't anticipate any problems with emulating a EEPROM though.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
Since the C8051F411 PPC includes a usable RTC the original PCF8563 has been removed. One Prop I/O is freed up which means that P24 is now totally free. The Prop Plug style connector has been moved in closer to the main connector so that is 0.1" away from it. The best place I had to bring out VDD on the Prop Plug connection was to put it on the other side of ground. This whole connector row will not be populated as it is meant for a convenient method to program the PUPPY in-situ.
Yes, there is a blinking bright status LED which is controlled from the PPC so it should blink away by itself, but the Prop can still talk to it via I2C to override it.
A spare I/O pin from the PPC is connected via a resistor to the Prop's crystal oscillator input so that I can under software control override the crystal and inject an odd frequency which is experimental at this stage.
The PPC's UART was a bit hard to route so I compromised and joined the RX and TX together and fed them onto P24.
I'm sending this artwork off to OURPCB for a quote and if there are no changes then I will have a few hundred produced on a 5-day turnaround. Until then I am still open to suggestions and btw nobody has rubbed the give-away lamp yet surprisingly (read the posts carefully).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
I'm going to need at least two of these to play with, but am happy to pay.
I'll be interested to hear what you think of OurPcb. They're certainly responsive via Skype. I'm thinking also of giving Silver Circuits Malaysia a go (4 eurocards, US$72, but the shipping is cheaper at $13)
cheers
tubular
I will have a quick look at some other companies but otherwise I am happy with Ourpcb.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
I've done quite a few pcbs, and know it is easy to not catch 'everything'. Just asking. If OK, no explanation needed.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Harley Shanko
It's OK but here's an explanation anyway.
When I read your post I saw "13" and went and checked the artwork straight away. I'm guessing you are talking about the overlay but I spotted the "13".
Anyway you know what it's like when you have these things plugged into matrix boards or you are probing the hardware, it makes it a lot easier when there are some pin IDs on the board. So 0, 2, etc represents P0, P2 etc with the implication that the other row of pins are P1, P3, etc. The L and R symbols are just so you get it the LEFT and RIGHT way around. In a pcb this cramped you don't have the luxury of saying more but what is there is sufficient. The R/T is RXD and TXD while D+C is SDA and SCL. It's a bit like mnemonics for processor instructions. Isn't there a sticker for the 40-pin DIP Prop as well?
I start my pcb design with a schematic so the whole thing is net-listed plus I use a lot of net labels so as I manually place and route the pcb I can optimize as I go and maybe even go back and make a change to the schematic to make it easier to route. I never used to do it this way as I would normally keep the schematic in my head but I have found that the final automated design rule check has saved my butt a few times. If I have zero errors for all categories then the only thing I could have messed up is the schematic or the footprints, especially connector footprints. My final DRC revealed 5 errors exactly where I expected them to be and where I left them too (bottom center pads).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
Post Edited (Peter Jakacki) : 4/28/2010 11:47:42 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Harley Shanko
What's more although this one lacks the DACs (sad) it has 12-bit A/Ds (two 1Msps units), two UARTS, I2C, SPI, CAN bus, USB, RTC, timers, DMA, etc. As it is in a 48 pin LQFP it has enough I/O to match the Prop so that every pin on the module is shadowed by a pin on the PPC. This required that the microSD be moved to the left of the pcb and the PPC placed on the top side directly above where the Prop sits on the bottom side. I should have this finished in the next day or so and then I will get some pcbs made up.
Time to get some sleep, I will update the online docs later.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
I can see I am losing my focus as the PPC was basically to add some A/D capability to the Prop and now it's going crazy. Maybe I might leave it with the F411. There is also another possibility as I have used the older LPC2148 ARM chip before and it is in an LQFP48 package too. Although it only has 10-bit ADCs and a 10-bit DAC it does have 512K Flash and 48K RAM and USB and I have a very nice Forth running on it.
RFC anyone?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
I did too, safe in the belief this great PPC concept was about to materialize... I think its a great idea and really don't mind what micro achieves it, though I personally need 12 bits or better adc.
I laugh because in trying to follow your worthy cause, I'm reading datasheets I never would have bothered with otherwise. Its been quite a journey through freescale, nsp/lpc, silabs, and now ST. My head hurts trying to make sense of why, for instance, the silabs qfns can't be pin compatible, and there is a 'A' variant that moves an TX and RX one pin over. STM (especially 64 TQFP in that series) and freescale seem better in that regard.
When I get around to it, I want to give a PSoC24123 a try, mainly for analog and switched cap reasons.
Forum addict? "No way".... (don't they say denial is the first stage of therapy Still, its so much cheaper than the bbs dial-up days
tubular
But what I am doing rather sneakily is laying out a sandwich pcb that slides onto the bottom of the PUPPY and becomes part of it.
What's on it? Nothing much, just my LPC2148 that screams along running my Forth and of course ARM assembly code. Large and fast application code is not the domain of the Propeller as we have found and this is my solution. Once again, this is tried and tested as I have done designs in the past that marry these two chips. The extra I/O connect up to P0..P15 also provide 10-bit ADC on these pins in addition to the functions of the base PUPPY. The USB will connected directly to a mini-B on the underside of the pcb. The sandwich module may be made with precision connector holes so that they form a gas-tight fit when they get pushed onto the connectors pins rather than soldering (maybe).
I have attached a photo of a mock-up of the PUPPY sandwich module.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
*Peter*
You too hey!!! Now where is that ESP to exchange what we found without having to type it??
I have been looking for chips that can do USB OTG with lots of SRAM. There are a few with lots of SRAM but then they miss something else that we can do simply with the prop (like multiple cogs). Guess I will just have to wait for the Prop II - it should make a great co-processor to the Prop LOL
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Cluso, have a good look at the "lpcxpresso" lpc1343 variant. It has 2 LPCs - on the "link" board it has a LPC3154 (192kB sram bga with usb otg). The LPC1343 end can be detached. These are currently on special with au.farnell.com for $40.19ex, including free delivery if you order online. They are out of local stock so it might take a week. Not sure how many pins of the LPC3154 can be accessed.
Post Edited (Tubular) : 5/4/2010 6:44:00 AM GMT
BTW Tubular, you should be receiving some bits tomorrow
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz