First, section 7.18 (I2C) says that this uC has 3 I2C busses, one with open drain and two pin port, and that they can act as master or slave. Does the GHI .NET firmware allow me to use this chipset as a slave? If not can I code this myself somehow?
Next, I would probably want to interface some external flash RAM to this uC, probably about 4 MBytes. Is there any software support for doing that?
The important point is that USBizi100 is not really equal to LPC2387 (and please don’t buy a blank LPC2387 thinking you can get GHI’s stuff on it, you will be disappointed). The things GHI do are exposed in their netmf port, as part of the premium library. You can get access to other peripherals that aren’t surfaced at the moment by using register access, and using RLP as Wouter says.
Topically, users interested in usbizi will not be using the lpc2388 datasheet. You are using netmf and not the underlying chip, which is great. Why? One day to
Will switch to a newer processor but your code will still be 99.9% the same and you still do not need to read any new datasheets.
In short, usbizi and lpc2388 are not the same.
Need open source and do not need premium libs? Then Cerberus is an excellent choice.
No I2C slave support in NETMF nor in GHI’s libs. Typical use for NETMF to be the master device in a system so I2C master makes sense. Why do you need slave I2C?
To use slave I2C, you need to write drivers in RLP or use register access. I prefer register access (much easier) if speed is not an issue.
that wasn’t my point. We’ve seen people think that all they need to do is buy a raw chip and load the GHI framework port onto it; I wanted you to know that this wouldn’t work in case there was anything unclear.
Fair enough, sorry that I was a bit testy. I think the GHI bootloader and .NET code is a nice value add for the chip, and it only adds a few bucks, if that much. It seems like a good way to go for those who want .NET. The uC has many hardware features I need, and if I use .NET I just wanted to see if they were supported.
it’s ok - the important point is there is a distinction in what the metal (chip) can provide and what the framework gives you native access to; as Gus says, to be portable you need to only rely on the framework, but if you want some of the more specific things that the metal can do that the framework doesn’t leverage, you have register access to help out (another great value-add in my opinion), and then RLP if you need speed, so you should be covered.
I have an existing Arduino like host board collects data from a sensor network via its UART, does some minimal processing and returns the results. I would like to extend this functionality by publishing this data via a web server to tablets and cell phones, but the existing board lacks processing power to do this.
To accomplish this, I am essentially trying to build an intelligent Arduino shield. Well, from a hardware standpoint its an Arduino shield. It needs to be a complete web server app with wifi and/or bluetooth support. So, it needs to have its own uC, a wifi and/or bluetooth transceiver, and a lot of flash to hold the web content. It does not need to be programmable as an Arduino.
So, the issue is how to get the data from the host board to the “intelligent shield”? When I designed this, I had planned to do the intelligent shield with an Atmel UC3 processor. Then I discovered the .NET boards with ARM processors and was thinking that, with the debugging capabilities, I might be able to get the code done more quickly. With the UC3 I could make the shield an I2C slave, but I am now learning that’s not so easy with .NET.
I have both I2C and SPI available on the host board. There is an SD card socket hanging on the single SPI bus on the host board. The I2C bus currently has an NXP UART chip as a slave on it.
Speed is not an issue. The communication is several hundred bytes every second or slower. I suppose I could use SPI, if the USBizi100 could be an SPI slave?
Well the Arduino processor (a 1284p) is currently master to the NXP UART chip. I suppose I could have the shield assume the master responsibilities and talk to the Arduino and the NXP chip as slaves. Now I’m mixing the responsibilities of the different code bases and messing up my design. I’ll think about that though, it could be made to work.
Okay thanks Gus. I don’t have any UARTs available either, and I don’t have the head room for software UART. But I can make I2C slave work using register access? The only downside being if I change the chip, I’ll have to recode it since it will be chip specific code? I can live with that.