A lot of folks here (in China) are suggesting me to take a look at STC 8051 MCUs. What is your opinions on those chips?
I grabbed a starter kit for those chips (either 2 chips or the minimum order amount, so I can have a backup chip to play with if I let the smoke out of one of them) But because those chips are so cheap my starter kit included 6x IAP15F2K61S2 (supports OCD, 2x DIP-40, 2x DIP28, 2x low-voltage DIP-40,) 2x IAP15W4K61S4 (supports OCD, DIP-40,) 10x IAP15W413AS (5x DIP-20, 5x DIP-16) and 5x IAP15W105 (DIP-8)
So far to me...
* Their chips are cheap. Almost ridiculously cheap. The cheapest chip STC15W100 (512 bytes Flash ROM, 128 bytes RAM, no EEPROM, next to no peripheral, SO-8 package) costs 15 US cents. While the most expensive IAP15W4K61S4 (61kB unified Flash ROM, 4kB RAM, OCD, tons of goodies built in, DIP-40 package) still cost less than a dollar.
* They are locally produced in TSMC fab in Shanghai.
* They do not follow the traditional 8051 pinout.
* Selectable quasi-bidirectional, push-pull, or open-drain/high impedence pin modes.
* Not all models comes with on-chip debug, but for the ones that have OCD (often highest-end IAP models in their respective lines, like IAP15F2K61S2 or IAP15W4K61S4) the debug feature uses normal UART0 pins (while UART0 itself can be multiplexed onto other pins so still useable.) OCD is only available if you are using Keil uVision IDE.
* Normal UART0 pins are also used for ICSP using some kind of UART-based protocol, even for those chips that does not have built-in UART.
* Models start with STC implements strict Harvard architecture, usually with some built-in data Flash ROM in its own memory space. Strangely MOVC instruction can also be used to read from data Flash, by adding an offset to the address.
* Models start with IAP implements a modified Harvard architecture with unified program/data Flash ROM instead of dedicated data Flash ROM, with the same address in data Flash ROM space mapping to the same address in program memory space, and RW access using the same EEPROM registers.
* Lots of on-chip goodies especially on those bigger chips like IAP15W4K61S4 or IAP15F2K61S2. Some peripherals are even located in XRAM.
Their model names for STC15 series are fairly simple to decode though.
* model-name = prefix + "15" + voltage + RAM + program Flash + additional features + "-" + package
* prefix = "STC" for normal chips, "IAP" for ones with unified program/data Flash ROM, "IRC" for ones with unified Flash and cannot use external reset
* voltage = "F" for 5V, "L" for 3.3V, "W" for wide 2.7-5.5V operation.
* RAM = "1" = 128B, "2" = 256B, "4" = 512B, "1K" = 1kB, "2K" = 2kB, "4K" = 4kB
* program flash = program Flash (for STC15) or unified Flash (for IAP/IRC15) space in kB
I am exploring those chips using their flagship chip and writing up my experiences. You can read it if you are interested:
https://en.maxchan.info/tag/stc