BOM-DAT/FPC-dat/FPC-dat.md
... ...
@@ -19,4 +19,14 @@ FPC upper flip
19 19
![](32-14-18-03-08-2023.png)
20 20
21 21
## dimension
22
-![](05-55-16-17-07-2023.png)
... ...
\ No newline at end of file
0
+![](05-55-16-17-07-2023.png)
1
+
2
+
3
+## soldering
4
+
5
+Use low-temperature solder [[soldering-paste-dat]] to tin the pads first, then clean the pads with board cleaning solution, brush on BGA soldering flux, and finally use a hot plate. The result is almost as good as factory production.
6
+
7
+
8
+## ref
9
+
10
+- [[soldering-dat]]
... ...
\ No newline at end of file
Chip-dat/TI-dat/TI-sensor-dat/ti-sensor-dat.md
... ...
@@ -3,6 +3,8 @@
3 3
4 4
[[dc-current-sensor-dat]]
5 5
6
+- [[INA330-dat]]
7
+
6 8
- [[INA219-dat]]
7 9
- [[INA226-dat]]
8 10
- [[INA240-dat]]
Circuits-dat/power-on-dat/power-on-dat.md
... ...
@@ -0,0 +1,46 @@
1
+
2
+# power-on-dat
3
+
4
+# Power-On Circuit Data
5
+
6
+This tutorial describes a reliable power-on/off circuit using a low-cost microcontroller, suitable for battery-powered applications with ultra-low standby current.
7
+
8
+## Overview
9
+
10
+I built a circuit using a 0.25 RMB microcontroller and have used it for half a year with excellent reliability. The design features:
11
+
12
+- One button input
13
+- One output (to the main controller)
14
+ - When the power-off button is detected, the output generates a falling edge, allowing the main controller to save data.
15
+- The power control output drives the CE (chip enable) pin of an LDO regulator.
16
+- Powered by a single lithium battery.
17
+- In the off state, the circuit consumes almost no battery power. Even after being off for one or two months, the battery still retains charge.
18
+
19
+## Example Components
20
+
21
+- **PMS150C SOT23-6** (by Padauk)
22
+ - Price: 0.13 RMB
23
+ - Used in smart robot projects for power on/off control.
24
+ - Standby current: 2μA
25
+
26
+- **Huimang Micro SOT23-6** (likely PIC core)
27
+ - Suitable for low-power applications.
28
+ - Other models tested: working current 600μA, sleep current as low as 2μA.
29
+ - For this simple design, sleep current was not measured, but estimated at 1.5μA.
30
+ - Combined with the LDO, total standby current should be below 10μA.
31
+
32
+## Circuit Operation
33
+
34
+```mermaid
35
+flowchart TD
36
+ Button[Button Input] --> MCU[Microcontroller]
37
+ MCU -->|Falling Edge Output| MainController[Main Controller]
38
+ MCU -->|Power Control| LDO[LDO CE Pin]
39
+ LDO --> Load[System Load]
40
+ Battery[Lithium Battery] --> LDO
41
+```
42
+
43
+
44
+## ref
45
+
46
+- [[power-on]] - [[circuits]]
... ...
\ No newline at end of file
SDK-dat/MDK-ARM-dat/AC6-dat/2025-07-09-01-37-40.png
... ...
Binary files /dev/null and b/SDK-dat/MDK-ARM-dat/AC6-dat/2025-07-09-01-37-40.png differ
SDK-dat/MDK-ARM-dat/AC6-dat/2025-07-09-01-38-13.png
... ...
Binary files /dev/null and b/SDK-dat/MDK-ARM-dat/AC6-dat/2025-07-09-01-38-13.png differ
SDK-dat/MDK-ARM-dat/AC6-dat/2025-07-09-01-38-22.png
... ...
Binary files /dev/null and b/SDK-dat/MDK-ARM-dat/AC6-dat/2025-07-09-01-38-22.png differ
SDK-dat/MDK-ARM-dat/AC6-dat/AC6-dat-english.md
SDK-dat/MDK-ARM-dat/AC6-dat/AC6-dat.md
... ...
@@ -0,0 +1,294 @@
1
+# Migrating from ARM Compiler 5 to ARM Compiler 6 - Complete Tutorial
2
+
3
+A comprehensive guide for migrating embedded projects from ARM Compiler 5 to ARM Compiler 6.
4
+
5
+## Prerequisites
6
+
7
+**⚠️ Important:** Before starting the migration, make sure to backup your project code.
8
+
9
+## Migration Requirements
10
+
11
+To use ARM Compiler 6, the minimum recommended MDK version is:
12
+
13
+- **MDK version 5.23 or higher**
14
+
15
+MDK version 5.23 provides two compilers: ARM Compiler 5.06 and ARM Compiler 6.6.
16
+
17
+Software packages must also support ARM Compiler 6. The minimum required package versions are:
18
+
19
+- **Keil MDK-Middleware package:** Version 7.4.0 and above
20
+- **Keil ARM Compiler Support package:** Version 1.3.0 and above
21
+- **ARM CMSIS package:** Version 5.0.1 and above
22
+
23
+## Step 1: Switching the Compiler
24
+
25
+1. Open your project in MDK
26
+2. Select **Project → Options for Target** from the menu
27
+3. Click the **Target** tab and find the **ARM Compiler:** dropdown list
28
+4. Set the ARM compiler to **Version 6**
29
+5. Click **OK** to confirm the changes
30
+
31
+> **Note:** After switching, all ARM Compiler 6 settings will be set to default values.
32
+
33
+## Step 2: Setting Warning Levels
34
+
35
+ARM Compiler 6 provides more warning levels than ARM Compiler 5. If you're accustomed to ARM Compiler 5's warning levels, select **AC5-like Warnings**.
36
+
37
+### Disabling Specific Warnings
38
+
39
+You can disable warnings for specific diagnostic groups by adding `-Wno-` before the parameter.
40
+
41
+**Example:** The option `-Wno-missing-noreturn` disables `–Wmissing-noreturn`.
42
+
43
+### Misc Controls Configuration
44
+
45
+1. **Initial Migration Step:** Set the level to "No warnings" to focus on error messages first
46
+2. **After Resolving Errors:** Select **AC5-like Warnings** and set the `-Wno-invalid-source-encoding` option to disable source code encoding detection (useful for projects with Chinese characters in LCD and print messages)
47
+3. **Code Quality Testing:** Select **All warnings** to test code compliance
48
+
49
+## Step 3: Setting Optimization Levels
50
+
51
+### Recommended Options:
52
+
53
+- **`-Os balanced`**: Balances code size and performance
54
+- **Speed Optimization**: Use `-O2`, `-O3`, or `-Ofast` for faster execution (increasing optimization levels, but larger code size)
55
+- **Size Optimization**: Use `-Os balanced` or `-Oz image size` for smaller code size
56
+
57
+### Real Example Comparison:
58
+
59
+- `-Oz image size`: Code size = 103,026 bytes
60
+- `-Os balanced`: Code size = 115,848 bytes
61
+- `-O3`: Code size = 160,536 bytes
62
+
63
+**Note:**
64
+- `-O0` performs no optimization
65
+- ARM Compiler 5's `-O0` actually has some optimization, so ARM Compiler 6's `-O1` level is most similar to ARM Compiler 5's `-O0`, both providing good debugging experience
66
+
67
+## Step 4: Handling Incompatible Language Extensions
68
+
69
+The main issues are compiler extension keywords like `__align(x)`, `__packed`, `__weak` in your code. The solution is to use CMSIS-defined macros.
70
+
71
+### 4.1 Replace CMSIS Header Files
72
+
73
+Use CMSIS version 5.6.0 or newer:
74
+
75
+1. Find the appropriate CMSIS version in `.\Keil_v5\ARM\PACK\ARM\CMSIS`
76
+2. Replace files in your project's `code_cm3.h` folder with files from `.\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\Core\Include`
77
+
78
+### 4.2 Modify lwIP Protocol Stack's cc.h File
79
+
80
+lwIP uses compiler extension language for struct alignment optimization. Since ARM Compiler 5 and 6 have different extensions, modify the `cc.h` file:
81
+
82
+Include CMSIS's `cmsis_compiler.h` file and modify struct packing and alignment macros:
83
+
84
+```c
85
+/* Arm Compiler 4/5 */
86
+#if defined ( __CC_ARM )
87
+ #define PACK_STRUCT_BEGIN __packed
88
+ #define PACK_STRUCT_STRUCT
89
+ #define PACK_STRUCT_END
90
+ #define PACK_STRUCT_FIELD(fld) fld
91
+ #define ALIGNED(n) __ALIGNED(n)
92
+
93
+ /* Arm Compiler above 6.10.1 (armclang) */
94
+#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100)
95
+ #define PACK_STRUCT_BEGIN
96
+ #define PACK_STRUCT_STRUCT __PACKED
97
+ #define PACK_STRUCT_END
98
+ #define PACK_STRUCT_FIELD(fld) fld
99
+ #define ALIGNED(n) __ALIGNED(n)
100
+
101
+/* GNU Compiler */
102
+#elif defined ( __GNUC__ )
103
+ #define PACK_STRUCT_BEGIN
104
+ #define PACK_STRUCT_STRUCT __PACKED
105
+ #define PACK_STRUCT_END
106
+ #define PACK_STRUCT_FIELD(fld) fld
107
+ #define ALIGNED(n) __ALIGNED(n)
108
+
109
+#else
110
+ #error "Unsupported compiler"
111
+#endif
112
+```
113
+
114
+### 4.3 Replace Compiler-Specific Keywords
115
+
116
+Replace the following keywords with CMSIS macros:
117
+
118
+- `__packed` → `__PACKED`
119
+- `__align(n)` → `__ALIGNED(n)`
120
+- `__inline` → `__INLINE`
121
+- `__weak` → `__WEAK`
122
+
123
+### 4.4 Packed Struct Syntax Differences
124
+
125
+**ARM Compiler 5:**
126
+```c
127
+typedef __packed struct
128
+{
129
+ char x;
130
+ int y;
131
+} X;
132
+```
133
+
134
+**ARM Compiler 6:**
135
+```c
136
+typedef struct __attribute__((packed))
137
+{
138
+ char x;
139
+ int y;
140
+} X;
141
+```
142
+
143
+### 4.5 Recommended CMSIS Macro Syntax
144
+
145
+Use `typedef __PACKED_STRUCT {}X;` instead of `typedef __packed struct {}X;`
146
+
147
+- **ARM Compiler 5:** Expands to `typedef __packed struct {}X;`
148
+- **ARM Compiler 6:** Expands to `typedef struct __attribute__((packed)) {}X;`
149
+
150
+### 4.6 Inline Functions
151
+
152
+Use the following format for inline functions:
153
+
154
+```c
155
+__STATIC_INLINE func_name(arg)
156
+{
157
+ // function body
158
+}
159
+```
160
+
161
+This prevents undefined symbol errors during linking at `-O0` and `-O1` optimization levels (where `__INLINE` might not actually inline).
162
+
163
+> **Tip:** Use uVision IDE's search function to find the above keywords and migrate them accordingly.
164
+
165
+
166
+![](2025-07-09-01-37-40.png)
167
+![](2025-07-09-01-38-13.png)
168
+![](2025-07-09-01-38-22.png)
169
+
170
+
171
+
172
+## Step 5: Handling Inline Assembly
173
+
174
+ARM Compiler 6 completely changed its assembly code handling strategy:
175
+
176
+- Assembly syntax is now GNU-style compatible instead of ARM-style
177
+- Assembly is handled by the C compiler, no separate assembler needed
178
+
179
+### FreeRTOS Port Layer Changes
180
+
181
+Change from:
182
+- `..\FreeRTOS\Source\portable\RVDS\ARM_CM3` directory files
183
+
184
+To:
185
+- `..\FreeRTOS\Source\portable\GCC\ARM_CM3` directory files
186
+
187
+This affects `port.c` and `portmacro.h` files that involve inline assembly.
188
+
189
+### Custom Inline Assembly Functions
190
+
191
+**ARM Compiler 5:**
192
+```c
193
+__asm uint32_t __get_flash_base(void)
194
+{
195
+ IMPORT |Image$$ER_IROM1$$RO$$Base|;
196
+
197
+ ldr r0,=|Image$$ER_IROM1$$RO$$Base|;
198
+ bx lr;
199
+}
200
+```
201
+
202
+**ARM Compiler 6:** (Assembly-free alternative)
203
+```c
204
+uint32_t get_flash_base(void)
205
+{
206
+ extern uint32_t Image$$ER_IROM1$$RO$$Base;
207
+
208
+ return (uint32_t)&Image$$ER_IROM1$$RO$$Base;
209
+}
210
+```
211
+
212
+## Step 6: Stricter Syntax Requirements
213
+
214
+### Example 1: Static Declaration Conflicts
215
+
216
+**Problem:** Function previously public, later made static in `.c` file, but declaration not removed from `.h` file.
217
+
218
+- **ARM Compiler 5:** No error
219
+- **ARM Compiler 6:** Error: `static declaration of 'func_name' follows non-static declaration`
220
+
221
+### Example 2: Integer Constant Syntax
222
+
223
+**Problematic code:**
224
+```c
225
+for(i=0; i<0x7E-0x20; i++)
226
+```
227
+
228
+**ARM Compiler 6 Error:** `invalid suffix '-0x20' on integer constant`
229
+
230
+**Solution:**
231
+```c
232
+for(i=0; i<0x7E - 0x20; i++) // Add spaces around operator
233
+```
234
+
235
+## Step 7: Optimization Issues
236
+
237
+### Software Delay Function Problem
238
+
239
+The following code works in ARM Compiler 5 but gets optimized away in ARM Compiler 6 (except at `-O0` level):
240
+
241
+```c
242
+void delay_us (uint32_t ul_time)
243
+{
244
+ ul_time *= 30;
245
+ while(--ul_time != 0); // Empty loop gets optimized away
246
+}
247
+```
248
+
249
+**Symptoms:** Software I2C errors, software SPI errors, LCD black screen, etc.
250
+
251
+**Solution:**
252
+```c
253
+void delay_us (uint32_t ul_time)
254
+{
255
+ ul_time *= 30;
256
+ while(--ul_time != 0)
257
+ __nop(); // Prevents compiler optimization
258
+}
259
+```
260
+
261
+The Keil compiler guarantees that `__nop()` will insert a NOP instruction, preventing optimization. Adjust the initial delay value accordingly.
262
+
263
+## Step 8: Compilation Time and Size Comparison
264
+
265
+### ARM Compiler 6 Results:
266
+
267
+| Optimization Level | Code Size | RO-data | RW-data | ZI-data | Build Time |
268
+|-------------------|-----------|---------|---------|---------|------------|
269
+| `-O0` | 200,360 | 20,576 | 96 | 76,316 | 00:00:25 |
270
+| `-O1` | 119,328 | 16,824 | 96 | 76,300 | 00:00:25 |
271
+| `-O2` | 153,340 | 17,100 | 96 | 76,300 | 00:00:26 |
272
+| `-O3` | 162,292 | 17,040 | 96 | 76,308 | 00:00:27 |
273
+| `-Ofast` | 161,896 | 17,040 | 96 | 76,308 | 00:00:26 |
274
+| `-Os balanced` | 115,628 | 17,048 | 96 | 76,300 | 00:00:28 |
275
+| `-Oz image size` | 103,784 | 17,020 | 96 | 76,308 | 00:00:25 |
276
+| `-Oz image size LTO` | 85,888 | 17,064 | 40 | 75,960 | 00:00:32 |
277
+
278
+### ARM Compiler 5 Comparison:
279
+
280
+| Optimization Level | Code Size | RO-data | RW-data | ZI-data | Build Time |
281
+|-------------------|-----------|---------|---------|---------|------------|
282
+| `-O2` | 94,232 | 16,736 | 540 | 75,640 | 00:00:16 |
283
+
284
+## Conclusion
285
+
286
+This migration guide covers the essential steps for successfully transitioning from ARM Compiler 5 to ARM Compiler 6. The key areas requiring attention are:
287
+
288
+1. **Compiler settings and warning levels**
289
+2. **CMSIS macro replacements for language extensions**
290
+3. **Inline assembly syntax changes**
291
+4. **Stricter syntax requirements**
292
+5. **Optimization behavior differences**
293
+
294
+Following these steps systematically will ensure a smooth migration while taking advantage of ARM Compiler 6's improved optimization capabilities.
SDK-dat/MDK-ARM-dat/MDK-ARM-dat.md
... ...
@@ -4,7 +4,25 @@
4 4
5 5
## KEIL-MDK
6 6
7
+- 5.4
7 8
- 5.3.8
9
+- 5.3.4
10
+
11
+- https://armkeil.blob.core.windows.net/eval/MDK539.EXE
12
+- https://armkeil.blob.core.windows.net/eval/MDK538a.EXE
13
+- https://armkeil.blob.core.windows.net/eval/MDK538.EXE
14
+- https://armkeil.blob.core.windows.net/eval/MDK537.EXE
15
+- https://armkeil.blob.core.windows.net/eval/MDK536.EXE
16
+- https://armkeil.blob.core.windows.net/eval/MDK535.EXE
17
+- https://armkeil.blob.core.windows.net/eval/MDK534.EXE
18
+- https://armkeil.blob.core.windows.net/eval/MDK533.EXE
19
+- https://armkeil.blob.core.windows.net/eval/MDK532.EXE
20
+- https://armkeil.blob.core.windows.net/eval/MDK531.EXE
21
+- https://armkeil.blob.core.windows.net/eval/MDK530.EXE
22
+- https://armkeil.blob.core.windows.net/eval/MDK529.EXE
23
+- https://armkeil.blob.core.windows.net/eval/MDK528.EXE
24
+- https://armkeil.blob.core.windows.net/eval/MDK527.EXE
25
+- https://armkeil.blob.core.windows.net/eval/MDK526.EXE
8 26
9 27
10 28
## Output file
SDK-dat/STM32-SDK-dat/STM32-SDK-dat.md
... ...
@@ -19,9 +19,9 @@
19 19
20 20
- [[keil-dat]] - [[MDK-ARM-dat]]
21 21
22
-
22
+- [[IAR-dat]] - [[STM32cubeide-dat]] - [[GCC-dat]]
23 23
24 24
25 25
## ref
26 26
27
-- [[STM32-dat]]
... ...
\ No newline at end of file
0
+- [[STM32-dat]] - [[info]]
... ...
\ No newline at end of file
Tech-dat/ADC-dat/ADC-dat.md
... ...
@@ -1,3 +1,12 @@
1 1
2 2
# ADC-dat
3 3
4
+## chips
5
+
6
+- [[ADS1100-dat]]
7
+- AD7606
8
+- AD7799
9
+
10
+## ref
11
+
12
+- [[tech-dat]]
Tech-dat/Interface-dat/USB-dat/USB-protection-dat/USB-protection-dat.md
... ...
@@ -0,0 +1,6 @@
1
+
2
+# USB-protection-dat
3
+
4
+## ref
5
+
6
+- [[USB-protection]] - [[USB]]
... ...
\ No newline at end of file
Tech-dat/Network-dat/NFC-dat/NFC-dat.md
... ...
@@ -4,6 +4,10 @@
4 4
5 5
- [legacy wiki page ](https://w.electrodragon.com/w/Category:NFC)
6 6
7
+- [CLRC66303 == CLRC663 plus Family: High-Performance NFC Frontends](https://www.nxp.com/products/CLRC66303HN)
8
+
9
+
10
+
7 11
## Boards
8 12
9 13
- [[NID1026-dat]] - [[NID1017-dat]]
Tech-dat/Network-dat/ethernet-dat/ethernet-dat.md
... ...
@@ -3,6 +3,15 @@
3 3
4 4
- [[TCPUDP-dat]]
5 5
6
+- [[PHY-dat]]
7
+
8
+
9
+## chip
10
+
11
+- [[W5500-dat]] - [[ENC28J60-dat]]
12
+
13
+
14
+
6 15
## RJ45 breakout board
7 16
8 17
![](2025-04-25-04-49-35.png)
... ...
@@ -29,6 +38,6 @@ RJ-45 w/[[CH579-dat]]
29 38
![](2025-04-25-02-07-43.png)
30 39
31 40
32
-
41
+## ref
33 42
34 43
- [[ethernet]]
... ...
\ No newline at end of file
Tech-dat/acturator-dat/motor-driver-dat/FOC-dat/FOC-dat.md
... ...
@@ -1,6 +1,8 @@
1 1
2 2
# FOC-dat
3 3
4
+- [[FOC]]
5
+
4 6
**Field-Oriented Control (FOC)** is an advanced control strategy for electric motors, particularly permanent magnet synchronous motors (PMSM) and AC induction motors. It allows for precise and efficient control of motor torque and speed.
5 7
6 8
Here's a breakdown:
Tech-dat/prototyping-dat/soldering-dat/soldering-dat.md
... ...
@@ -1,10 +1,11 @@
1
-
2 1
# soldering-dat
3 2
4 3
- [[PSO1043-dat]] - [[PSO1038-dat]]
5 4
6 5
- [[PCB-cleaner-dat]]
7 6
7
+- [[soldering-paste-dat]]
8
+
8 9
## Soldering Iron and Tips
9 10
10 11
soldering iron
... ...
@@ -58,8 +59,18 @@ Common soldering tips system: (C1151), ESD(C1152), 900, 900M, 907, 933, 936, 937
58 59
59 60
### soldering chip with pads underneath, such as QFN, BGA, LGA, etc.
60 61
62
+### FPC soldering
63
+
64
+- [[FPC-dat]]
65
+
66
+### alternative temperature-sensitive items soldering
61 67
62 68
69
+> No special solder paste is needed; the key point is not to heat the FPC connector directly—apply heat from the back side of the PCB.
70
+>
71
+> **Explanation:**
72
+> When soldering temperature-sensitive components like FPC (Flexible Printed Circuit) connectors, you generally do not need to use any special type of solder paste. The most important thing is to avoid applying hot air or direct heat to the FPC connector itself, as it can be easily damaged by high temperatures.
73
+> Instead, use a hot air gun or soldering tool to heat the solder joints from the back side of the PCB. This approach helps protect the delicate connector and ensures a reliable solder joint.
63 74
64 75
## ref
65 76
Tech-dat/prototyping-dat/soldering-paste-dat/soldering-paste-dat.md
... ...
@@ -0,0 +1,25 @@
1
+
2
+# soldering-paste-dat
3
+
4
+## Low temperature soldering paste
5
+
6
+Low temperature soldering paste is a type of solder paste designed to melt and flow at lower temperatures than standard solder pastes. Here are its main features:
7
+
8
+- Melting Point: Typically melts between 130°C and 180°C, compared to standard lead-free solder pastes which melt around 217°C.
9
+- Composition: Often contains bismuth-based alloys (e.g., Sn42/Bi58) instead of traditional tin-silver-copper (SAC) alloys.
10
+- Applications: Ideal for temperature-sensitive components, rework, or double-sided PCB assembly where high heat could damage parts.
11
+- Reduced Thermal Stress: Minimizes risk of warping or damaging PCBs and components.
12
+- Energy Saving: Lower reflow oven temperatures reduce energy consumption.
13
+- Compatibility: Useful for mixed-technology boards or assemblies with plastic connectors and LEDs.
14
+
15
+
16
+
17
+
18
+## target
19
+
20
+- [[FPC-dat]]
21
+
22
+
23
+## ref
24
+
25
+- [[soldering-dat]]
... ...
\ No newline at end of file
Tech-dat/tech-dat.md
... ...
@@ -52,6 +52,10 @@
52 52
53 53
- [[M2M-dat]]
54 54
55
+- [[RFID-dat]] - [[NFC-dat]]
56
+
57
+- [[ethernet-dat]] - [[USB-dat]]
58
+
55 59
### MCU / CTRL / Processing
56 60
57 61
- [[mcu-dat]] - [[development-board-dat]]
... ...
@@ -78,7 +82,9 @@
78 82
79 83
- [[sensor-dat]] - [[current-sensor-dat]] - [[current-transformer-dat]]
80 84
81
-- [[acturator-dat]] - [[motor-dat]] - [[motor-driver-dat]]- [[motion-control-system-dat]] - [[dc-gear-motor-dat]] - [[mosfet-dat]] - [[relay-dat]]
85
+- [[acturator-dat]] - [[motor-dat]] - [[motion-control-system-dat]] - [[dc-gear-motor-dat]] - [[mosfet-dat]] - [[relay-dat]]
86
+
87
+- [[motor-driver-dat]]
82 88
83 89
- [[relay-dat]] - [[SSR-dat]]
84 90
... ...
@@ -99,6 +105,7 @@
99 105
100 106
- [[PWM-dat]] - [[I2C-dat]] - [[SPI-dat]] - [[UART-dat]] - [[CAN-dat]] - [[RS485-dat]] - [[RS232-dat]]
101 107
108
+- [[ADC-dat]] - [[DAC-dat]]
102 109
103 110
## Utilities
104 111
board-series-dat/led-rgb-panel-dat/led-rgb-panel-dat.md
... ...
@@ -72,6 +72,11 @@ Gen-3: Advanced grayscale panels using chips like MBI5153 or ICND2153 that suppo
72 72
73 73
- chips perforamcne issues [[led-rgb-panel-chip-dat]]
74 74
75
+## Control board
76
+
77
+- [[MPC1073-dat]] - [[MPC1120-dat]]
78
+
79
+
75 80
## Links
76 81
77 82
- [[ILE1058-dat]] - [[ILE1059-dat]] - [[ILE1060-dat]] - [[led-rgb-panel-dat]]
power-dat/AC-Mains-dat/RC-Snubber-dat/2025-07-09-01-57-46.png
... ...
Binary files /dev/null and b/power-dat/AC-Mains-dat/RC-Snubber-dat/2025-07-09-01-57-46.png differ
power-dat/AC-Mains-dat/RC-Snubber-dat/2025-07-09-01-58-05.png
... ...
Binary files /dev/null and b/power-dat/AC-Mains-dat/RC-Snubber-dat/2025-07-09-01-58-05.png differ
power-dat/AC-Mains-dat/RC-Snubber-dat/2025-07-09-01-58-23.png
... ...
Binary files /dev/null and b/power-dat/AC-Mains-dat/RC-Snubber-dat/2025-07-09-01-58-23.png differ
power-dat/AC-Mains-dat/RC-Snubber-dat/RC-Snubber-dat.md
... ...
@@ -0,0 +1,49 @@
1
+
2
+# RC-Snubber-dat
3
+
4
+## Three-Phase Electronic Arc Suppressor (RC Snubber)
5
+
6
+三相电子灭弧器,也叫RC灭弧器或电弧抑制器,它的本质是一个 RC串联电路(电阻+电容),并联在接触器触点的两端,通常用于三相交流电机控制回路中,目的是在接触器断开时**抑制电弧(火花)**的产生和传播。
7
+
8
+
9
+A **three-phase electronic arc suppressor** is used to eliminate electrical arcing when contactors open, especially in circuits with **three-phase induction motors**. Its core is a **series RC circuit (resistor + capacitor)** connected in **parallel** across each contact of the contactor.
10
+
11
+![](2025-07-09-01-57-46.png)
12
+
13
+![](2025-07-09-01-58-05.png)
14
+
15
+![](2025-07-09-01-58-23.png)
16
+
17
+### 🔧 Working Principle
18
+
19
+When a contactor opens to disconnect an inductive load (like a motor), the sudden interruption of current causes a **high voltage spike** due to the inductance. This spike can generate an **electric arc** across the opening contacts.
20
+
21
+The **RC snubber** provides an alternate path for the current to decay safely by:
22
+- **Capacitor (C):** Absorbing the voltage spike
23
+- **Resistor (R):** Limiting the discharge current and damping oscillations
24
+
25
+This effectively reduces the arc and protects the contactor.
26
+
27
+### ✅ Typical Structure
28
+
29
+A three-phase arc suppressor generally includes:
30
+- **Capacitor (C):** e.g., 0.1μF to 0.47μF (AC-rated)
31
+- **Resistor (R):** e.g., 100Ω to 220Ω (sufficient wattage and voltage rating)
32
+- **Encapsulation:** Often epoxy-encased with mounting hardware for panel installation
33
+
34
+Each phase (L1, L2, L3) has one RC snubber connected across the contact.
35
+
36
+### ⚠️ Notes
37
+
38
+- RC values should be chosen based on motor load characteristics and voltage levels.
39
+- Not suitable for direct connection to **VFD (variable frequency drive) output**.
40
+- Designed to **assist with arc suppression**, not as standalone protection.
41
+- Overuse or mismatched parameters can lead to overheating or damage.
42
+
43
+### 📘 Example Application
44
+
45
+For a 380V AC three-phase motor:
46
+- R = 120Ω, 5W
47
+- C = 0.22μF, 630V AC
48
+
49
+One RC network per phase, installed across the contactor terminals.
... ...
\ No newline at end of file
power-dat/AC-Mains-dat/ac-mains-dat.md
... ...
@@ -5,6 +5,7 @@
5 5
6 6
- [[acdc-adapter-dat]] - [[acdc-dat]]
7 7
8
+- [[RC-Snubber-dat]]
8 9
9 10
[[BOM-dat]] - [[power-isolated-Module-dat]] - [[sample-resistor-dat]]
10 11
power-dat/Power-distribution-dat/Power-distribution-dat.md
... ...
@@ -1,6 +1,15 @@
1 1
2 2
# power-flow-contro-dat
3 3
4
+
5
+## 12/24V to 3.3V
6
+
7
+
8
+- It is more reliable to use a 5V DC-DC converter first, then use a linear regulator chip to step down to 3.3V. Directly outputting 3.3V from a DC-DC converter can easily damage the microcontroller due to surge voltage.
9
+- The output of a DC-DC module is not regulated; when powered on with a light load, the output voltage is higher than 3.3V. A load must be added to stabilize it at 3.3V, so an LDO should be connected afterward.
10
+- My usual approach is to step down from 24V to 5V first, then use a [[B0505-dat]] module for isolation, and finally step down to 3.3V. The 0505 module is much cheaper than an isolated 24V-to-5V module.
11
+
12
+
4 13
## USB Logic control for [[SDR1096-DAT]]
5 14
6 15
[[logic-gate-dat]]
power-dat/battery-charger-dat/battery-charger-dat.md
... ...
@@ -6,6 +6,8 @@ The most following charger options are for the lithium-ion battery
6 6
7 7
- [[2S-lithium-battery-charger-dat]]
8 8
9
+- [[battery-charger]]
10
+
9 11
## Chip Info
10 12
11 13
- [[LTC4054-dat]] - [[MCP73831-dat]]