0
\$\begingroup\$

Out of curiousity, are there any microcontrollers which are available with and without debugging capabilities?

I'm asking because I assume that the debugger is not a simple 'peripheral' in terms of e.g. silicon space; I figure it would be much more complex than an SPI, I²C or ADC peripheral.

If that is true, would it make sense to provide 'development' devices with integrated debugging and 'production' devices for mass production? Could the latter be made cheaper because of the omitted functionality?

Are there µC's for which those two variants exist?

\$\endgroup\$
  • 2
    \$\begingroup\$ There was a time when debugging features didn't exist inside the micro, back when transmission gates and inverters cost serious real-estate. (Late 1980's, for example.) One had to buy a "bond-out" version and special hardware for debugging purposes. (I still have some of these in the old Microchip ICE 2000 system, for example.) But times change, cost factors change, customer expectations change, and so things are mostly different now. If you are a really big buyer, you can get custom ASICs done that reduce costs and testing to achieve your goals. But most of us don't have that option. \$\endgroup\$ – jonk Nov 24 '17 at 12:16
  • \$\begingroup\$ The ATtiny20 doesn't have a built-in debugger. But given how small the UUR package is I can't say I'm too surprised. \$\endgroup\$ – Ignacio Vazquez-Abrams Nov 24 '17 at 13:08
2
\$\begingroup\$

Could the latter be made cheaper because of the omitted functionality?

This is the key, and the answer is "no". Firstly, the debugger is an integral part of the design as, by definition, it must have access to every part of the processor. If you decide to remove it, your processor is intrinsically different and so needs to be re-verified, which is a significant cost. Secondly, if you had a version with/without debug you would need different masks for manufacture, which is an enormous cost especially with low nanometre technologies. You would amortise that cost over the "non-debug" version, but you would likely only produce a few 10000s of the "debug" version, so you could be looking at $100 a piece (just in mask cost!). Finally, a large portion of a processor's area is actually memory anyway, so the saving in silicon area would be relatively small.

\$\endgroup\$
  • \$\begingroup\$ This confirms what I had guessed. And adds some quatification as to the cost of creating/maintaining a second line of products. \$\endgroup\$ – JimmyB Nov 27 '17 at 14:53
-1
\$\begingroup\$

You can take a look at the ARM Cortex CoreSight debug core - it is pretty complex solution which allows to properly debug your firmware and have lots of features. Some of AVR Atmega chips have capabilities to perform JTAG in-circuit debugging. There are also tonns of Atmel chips with DebugWire - that interface is so useless, that you may think of them as about chips with no hardware debug. Some low-end devices like Attiny102/104 or Attiny4/5/10 literally have no debug capabilities. The price of the MCU IC mostly consists of development costs, pre-production costs and manufacturer earnings, the cost of silicone wafer or plastic case is pretty low in mass production. Say more, development and pre-production of two modifications for single microcontroller model may even increase it's price, that is why you don't see such devices on the market. Now almost every MCU has debug core inside of it, but in earlier times microcontrollers didn't have debug core inside. So for debug purpose you had to use in-circuit emulator (not to be confused with modern debugging tools) which looked like a separate box with wires, which emulated microcontroller outputs. To perform debugging you had to tie this wires to your prototype instead MCU and than debug your firmware.

\$\endgroup\$
  • \$\begingroup\$ not an answer to the question. \$\endgroup\$ – Marcus Müller Nov 24 '17 at 15:17
  • \$\begingroup\$ Indeed, this does not answer my question at all. - And considering DebugWire, as long as I can use breakpoints on code (and possibly data) and inspect memories in the running device that very well suffices my definition of "debugging feature". Notice that I'm not talking about boundary scan or something. \$\endgroup\$ – JimmyB Nov 24 '17 at 15:42
  • \$\begingroup\$ So your answer is that it's not cost efficient to develop and manufacture two different variants of the same controller even if 99.99% of the chips made will never be used in debugging? I.e. my assumption about the non-neglectible cost of the on-chip debug unit is basically wrong? \$\endgroup\$ – JimmyB Nov 24 '17 at 16:31
  • \$\begingroup\$ @JimmyB The cost of the piece of a silicon and CMOS structures on it is really neglectable. Manufacturers always try to reduce pre-production costs to maintain less production lines. For example lots of AMD 2-core processors are 4-core processor with 2 defective cores - they all are made on the same line. Same applies to MCU's - models with different amount of memory but in the same package and with same core. \$\endgroup\$ – Vadimchik Nov 24 '17 at 17:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.