Ask Sawal

Discussion Forum
Notification Icon1
Write Answer Icon
Add Question Icon

Rabiya hylkuahi




Posted Questions



Wait...

Posted Answers



Answer


A System-on-Module, or SoM for short, is an electronic circuit that integrates all needed system functions into a single module including a processor, memory, and I/O controllers. However, unlike an SoC which combines many of these functions onto a single chip, an SoM typically only requires a source of power to operate.

SoMs are often built on top of a PCB and can either be enclosed in a metal housing (for EMC compliance), or left exposed with all components showing. Furthermore, SoMs always have a method for connecting to external boards in the form of pins, edge connectors, or solder tabs.

While the Raspberry Pi and Arduino range of boards could be considered SoMs, they fall into different categories. A Raspberry Pi is a single-board computer that has no specific purpose, and the Arduino range of boards are prototyping environments that break out the pins to a microcontroller.

SoMs are not as common as SoCs, but as semiconductors approach their physical limits, the role of SoMs will become increasingly important. SoCs are chips that integrate multiple system components into a single device such as a CPU, GPU, and MMU. However, an SoC still requires external circuitry to enable the device to operate, and this can include memory, I/O controllers, and various other supporting components.

As such, using SoCs in designs can make the design process complex and tedious. A designer needs to fully understand how to properly use an SoC, including each pin's function, thermal properties of the SoC, and pad design. An SoM, however, creates a module that handles these complexities to produce a device that a designer can essentially drop into a circuit.

Like the Arduino, the pins of an SoM can be directly connected to whatever hardware the designer wants to use (assuming they are not drawing too much current or using incompatible voltage levels). However, where an Arduino is a prototyping platform, an SoM can be used in the final product with a high degree of reliability (enough for commercial products).

Another major advantage of using an SoM is interchangeability. Assuming that a manufacturer of an SoM keeps the form factor of the module, improvements in technology can be incorporated into updated SoMs which can easily be interchanged with older units. As such, expensive complex systems (such as data centres and cellular networks) can be upgraded without completely changing the underlying hardware. Furthermore, the older SoMs can be recycled by using them in older designs at a discount price (assuming that the SoM itself is generic enough to allow for use in another application).

If we go with the definition of an SoM as being a device that allows for use in an end-product and combines multiple system functionality into a single PCB, the answer is that System-on-Modules are very common in the industry.

One area of electronics that sees heavy use of SoMs is radio communication, specifically the 2.4GHz band. The ESP32-WROOM-32 is an example of an SoM that integrates a microcontroller, TCP/IP stack, radio circuitry, radio antenna, and memory all onto a single PCB with a metal enclosure. While there are versions of this module attached to a board with pins for prototyping, the module itself is available for purchase and can be soldered directly onto PCBs in a final product to either act as a Wi-Fi adaptor or to operate as the sole controller.

Another example of an SoM is the SAMA5D27 by Microchip. This SoM integrates an Arm Cortext A5 processor with 1Gb DDR2 DRAM, integrates an onboard power management unit, and requires a single 3.3V input. A variation of this SoM is the SAMA5D27 Wireless SOM that integrates Wi-Fi and Bluetooth connectivity while also offering a larger memory size of 2Gb (256MB). These SoMs are designed to provide designers with an entire ARM platform that can be directly added to a final product and removes the need for the designer to search for appropriate components, correctly route PCBs, and debug hardware.


Answer is posted for the following question.

What is som in electronics?

Answer


1
# Logs
2
logs
3
*.log
4
npm-debug.log*
5
yarn-debug.log*
6
yarn-error.log*
7
lerna-debug.log*
8
9
# Diagnostic reports (https://nodejs.org/api/report.html)
10
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11
12
# Runtime data
13
pids
14
*.pid
15
*.seed
16
*.pid.lock
17
18
# Directory for instrumented libs generated by jscoverage/JSCover
19
lib-cov
20
21
# Coverage directory used by tools like istanbul
22
coverage
23
*.lcov
24
25
# nyc test coverage
26
.nyc_output
27
28
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29
.grunt
30
31
# Bower dependency directory (https://bower.io/)
32
bower_components
33
34
# node-waf configuration
35
.lock-wscript
36
37
# Compiled binary addons (https://nodejs.org/api/addons.html)
38
build/Release
39
40
# Dependency directories
41
node_modules/
42
jspm_packages/
43
44
# Snowpack dependency directory (https://snowpack.dev/)
45
web_modules/
46
47
# TypeScript cache
48
*.tsbuildinfo
49
50
# Optional npm cache directory
51
.npm
52
53
# Optional eslint cache
54
.eslintcache
55
56
# Microbundle cache
57
.rpt2_cache/
58
.rts2_cache_cjs/
59
.rts2_cache_es/
60
.rts2_cache_umd/
61
62
# Optional REPL history
63
.node_repl_history
64
65
# Output of 'npm pack'
66
*.tgz
67
68
# Yarn Integrity file
69
.yarn-integrity
70
71
# dotenv environment variables file
72
.env
73
.env.test
74
75
# parcel-bundler cache (https://parceljs.org/)
76
.cache
77
.parcel-cache
78
79
# Next.js build output
80
.next
81
out
82
83
# Nuxt.js build / generate output
84
.nuxt
85
dist
86
87
# Gatsby files
88
.cache/
89
# Comment in the public line in if your project uses Gatsby and not Next.js
90
# https://nextjs.org/blog/next-9-1#public-directory-support
91
# public
92
93
# vuepress build output
94
.vuepress/dist
95
96
# Serverless directories
97
.serverless/
98
99
# FuseBox cache
100
.fusebox/
101
102
# DynamoDB Local files
103
.dynamodb/
104
105
# TernJS port file
106
.tern-port
107
108
# Stores VSCode versions used for testing VSCode extensions
109
.vscode-test
110
111
# yarn v2
112
.yarn/cache
113
.yarn/unplugged
114
.yarn/build-state.yml
115
.yarn/install-state.gz
116
.pnp.*
117

Answer is posted for the following question.

How to Node.JS gitignore (Javascript Scripting Language)


Wait...