Content deleted Content added
No edit summary |
Citation bot (talk | contribs) Altered title. | Use this bot. Report bugs. | Suggested by Abductive | Category:Digital electronics | #UCB_Category 2/158 |
||
(36 intermediate revisions by 21 users not shown) | |||
Line 1:
{{onesource|date=September 2022}}<!-- Deleted image removed: [[Image:Netgear mr814v2 upgrade screen.png|thumb|right|The [[Netgear]] MR814 [[wi-fi|wireless]] [[home gateway]] can be '''field-programmed''' from a web interface; its firmware consists of [[eCos]] operating system images stored in NAND flash.]] -->
An [[Electronics|electronic]] device or [[embedded system]] is said to be '''field-programmable''' or '''in-place programmable''' if its [[firmware]] (
This is often an extremely desirable feature, as it can reduce the cost and turnaround time for replacement of [[computer bug|buggy]] or obsolete firmware. For example
▲This is often an extremely desirable feature, as it can reduce the cost and turnaround time for replacement of [[computer bug|buggy]] or obsolete firmware. For example, [[as of 2007]], a [[digital camera]] vendor could distribute firmware supporting a new image format by instructing consumers to [[download]] a new firmware [[ROM image|image]] to the camera via a [[USB]] cable.
== History ==
When a device's firmware is stored in [[mask ROM]] or [[one-time programmable]] PROM, it cannot be modified without physically replacing the [[integrated circuit]], so such a device cannot be field-programmable in the modern sense. [[EPROM|Erasable PROM]]-based firmware can be erased and reprogrammed, but only after lengthy exposure to a high-intensity ultraviolet light source.
Thus, field-programmable devices were not practical until the invention of [[EEPROM]] and [[flash memory]] in the 1980s. Early EEPROMs could only be reprogrammed with expensive, dedicated [[programmer (hardware)|programmer hardware]], since they required high voltages (10-20 [[Volt|V]], compared to typical 3-5 V [[logic level]]s) and there was no standard programming [[
* Modern [[EEPROM]] and [[Flash memory|flash]] devices contain internal [[charge pump]]s which eliminate the need for high voltages.
* Most consumers have access to [[personal computer]]s, which can perform arbitrary programming protocols.
* Ubiquitous [[Internet]] [[Internet access|access]] provides a convenient means to rapidly distribute firmware images.
Standard protocols for programming non-volatile memory devices have emerged. For example, [[JTAG]] may be used to read and program the EEPROM and Flash chips in many [[consumer
== Programmable logic ==
The 1980s saw the introduction of '''[[programmable logic]] devices''' (PLDs) such as [[Programmable Array Logic|PALs]], [[programmable logic array|PLA]]s, and [[Complex programmable logic device|CPLDs]]. These are [[integrated circuit]]s which can implement nearly arbitrary [[digital logic]] functions based on firmware-like information stored in non-volatile memory.
Thus, devices containing PLDs may be considered as field-programmable ''hardware'', while EEPROM and flash memory act as storage for field-programmable ''software''.
[[Field-programmable gate array]]s (FPGAs) were invented in 1984, and are the most advanced kind of programmable logic available today. These high-capacity devices may implement extremely complex logic, such as [[microprocessor]]s or [[digital signal processor]]s. Today, they are a great aid in the development and rapid deployment of digital electronic devices. FPGAs are often used for [[FPGA prototyping|prototyping hardware designs]] and [[hardware acceleration]].
== Hobbyist opportunities ==
Numerous online communities have sprung up around devices found to be particularly conducive to such modification. For example, the [[iPodLinux]] and
While hobbyist field-programming is theoretically possible in practically any embedded system today, in practice efforts to modify consumer devices are often hampered by lack of [[documentation]] for the [[Electronic hardware|hardware]].▼
== See also ==
▲Numerous online communities have sprung up around devices found to be particularly conducive to such modification. For example, the iPodLinux and OpenWRT projects have enabled users to run full-featured Linux distributions on their MP3 players and wireless routers, respectively.
* [[Firmware]]
* [[JTAG]]
*[[Field-programmable gate array]] (FPGA)
*[[Field-programmable analog array]] (FPAA) - like FPGA but with [[Analog signal|analog signals]]
** [[Field-programmable RF|Field-programmable radio frequency]] devices
==References==
▲While hobbyist field-programming is theoretically possible in practically any embedded system today, in practice efforts to modify consumer devices are often hampered by lack of [[documentation]] for the [[hardware]].
{{Reflist}}
== External links ==
* [http://wiki.openwrt.org/doc/howto/usb.audio UsbAudioHowTo]: a guide to converting a [[wireless router]] into an [[Internet radio]] player, from the [http://www.openwrt.org OpenWrt] project
[[Category:Digital electronics]]
|