Hi all.
Yet another request for help in the selection of an appropriate uC.
I would like to construct a data logger. This data logger may be located in areas remote from power and human kind. It will read 1-Wire interfaced weather instruments at an interval of 2 seconds and store the weather data over an extended period of time, such as a year. The weather data acquired should be stored with the date and time. The stored data will have to be transferred to a PC at some point. The requirements for such a data logger would be:
- Very small power consumption. It would be nice if the uC would be capable of operating from the merest suggestion of a hint of a picowatt :)
- A 1-Wire interface would be nice. This would make the development process easier.
- The ability to store perhaps 2GB of data. I believe this would require the means to either write/read a MMC/SD card or a USB memory device (a memory stick, I believe these are called). It would be nice if the uC had the capability to access the MMC/SD or USB directly although using one of the more common uC interfaces (e.g. SPI) is probably all that can be expected.
- PROM - I do not know what size the program will be - yet.
- RAM - I think writing to MMC/SD/USB memory is probably more efficient in blocks of, say, 512 or 1024 bytes. Therefore there should be enough RAM to store at least 512 bytes of the data to be logged in addition to the RAM required for normal temporary storage. So, I guess the minimum should be at least 1.5k. If I wish to read back the data written for verification purposes then that would probably increase to
- The ability to transfer the stored data to a PC. If a USB memory device (stick) is used then this is already addressed, assuming that FAT is used. If MMC/SD then an appropriate reader could be used - but this would push up the overall cost. An alternative might be to have some form of high speed data transfer mechanism, e.g. 10/100/1000 ethernet or possibly a USB port for communication with the PC. A standard serial connection running at a sustained rate of 115k baud would take 48 hours to transfer 2GB, if I did the calculations correctly - a 10Mb connection 33 minutes, I think.
- A real time clock
- Some mechanism to configure the device - for example the date and time; this could be via a PC link or perhaps the use of on-board switches and an LCD. If switches/LCD then the ability to drive an LCD would be required. If a PC link then perhaps an RS232 interface, or the use of the previously mentioned USB/Ethernet interfaces (but this could perhaps make things a tad more complicated than they need to be). Of course, I could provide both an on-board mechanism to configure the device and a PC link.
- Reasonable overall cost.
- The availability of evaluation boards at perhaps 0 or less.
- Free or cheap development tools
- In addition to the above. I would prefer not to purchase any device that is made in a part of the world that does not treat its people well, if that is possible.
About me... I have discovered that the best way to learn a subject is to give oneself a project that is of real use - hence the above. I studied electronics in college in the early '80s. There, we did some work with the Intel 8085 and the Rockwell 6502. We used machine code and assembler with the 8085 and basic with the Rockwell device. RS232 did exist at that time, but USB, SPI, etc did not and I will have to learn what I will need to know about any of these that I might use. I have little knowledge about ethernet. I have had a long-term desire to pursue this field (uCs) but not the resources, particularly the time, until now. I taught myself C - I havn't been the same since :) - in the early '90s, but have not had much use of it since.
I do understand that uC selection is usually a compromise of the features available versus those required.
Perhaps some of you will know of a uC that fits the bill, or comes close. This is not urgent. I do not plan to start this project for a few months, but I would like to make use of the time to conduct research. I believe the most important decision that I need to make is which uC to use.
Thank you all. Take care.