ESD testing of microcontrollers

This commit is contained in:
Dragan Olćan 2024-12-21 17:17:16 +01:00
parent a48528090a
commit 98410cf350
43 changed files with 183 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

View file

@ -0,0 +1,23 @@
All considered microcontrollers with their boards are tested for immunity on electrostatic discharge, due to the fact that the selected one(s) will work in a harsh ESD environment.
Tested microcontrollers and LCDs are:
[01] ARDUINO NANO ATMEGA328
[02] ARDUINO NANO EVERY
[03] ARDUINO MKR ZERO
[04] ARDUINO DUE ATSAM3X8E
[05] MSP430 MSP430FR6989
[06] MSPM0G3507 ARM
[07] RASPBERRY PI PICO H RP2040
[08] RASPBERRY PI PICO 2
[09] DISCOVERY STM32F3348
[10] NUCLEO-32 STM32F031K6
[11] NUCLEO-32 STM32F303K8
[12] NUCLEO-32 STM32L011K4
[13] NUCLEO-32 STM32L432KC
[14] LCD (4 rows with 20 characters) connected to Arduino Nano
Results are summarized in ESD_testing.pdf.
Photos of tests can be found in the folder ./Photos/.
Software for each tested microcontroller is available in the folder ./Software/. For every tested microcontroller there is a separate subfolder with the software used during the testing. For the cases where only the microcontroller code is given it can be fond in TXT file. For the cases where the project is given all of the project files can be found in ZIP file. Accompanying Readme.txt file briefly points to the software development environment.

View file

@ -0,0 +1,13 @@
void setup() {
// put your setup code here, to run once:
for (int i=0; i<66; i++)
pinMode(i, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i<66; i++) digitalWrite(i,HIGH);
delay(0.1);
for (int i=0; i<66; i++) digitalWrite(i,LOW);
delay(0.1);
}

View file

@ -0,0 +1,2 @@
Boards Manager -> Arduino SAM Boards
Tools -> Board -> Arduino Due (Programming Port)

View file

@ -0,0 +1,12 @@
void setup() {
for (int i=0; i<22; i++)
pinMode(i, OUTPUT);
}
void loop() {
for (int i=0; i<22; i++)
digitalWrite(i,HIGH);
delayMicroseconds(100);
for (int i=0; i<22; i++)
digitalWrite(i,LOW);
delayMicroseconds(100);
}

View file

@ -0,0 +1,15 @@
void setup() {
// put your setup code here, to run once:
for (int i=0; i<22; i++)
pinMode(i, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i<22; i++)
digitalWrite(i,HIGH);
delay(0.1);
for (int i=0; i<22; i++)
digitalWrite(i,LOW);
delay(0.1);
}

View file

@ -0,0 +1,2 @@
Boards Manager -> Arduino megaAVR Boards
Tools -> Board -> Arduino Nano Every

View file

@ -0,0 +1,25 @@
void setup() {
// put your setup code here, to run once:
for (int i=0; i<23; i++)
pinMode(i, OUTPUT);
for (int i=26; i<29; i++)
pinMode(i, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i<23; i++)
digitalWrite(i,HIGH);
for (int i=26; i<29; i++)
digitalWrite(i,HIGH);
digitalWrite(LED_BUILTIN, HIGH);
delayMicroseconds(100);
for (int i=0; i<23; i++)
digitalWrite(i,LOW);
for (int i=26; i<29; i++)
digitalWrite(i,LOW);
digitalWrite(LED_BUILTIN, LOW);
delayMicroseconds(100);
}

View file

@ -0,0 +1,2 @@
ARDUINO IDE
Installation: https://github.com/earlephilhower/arduino-pico

View file

@ -0,0 +1,25 @@
void setup() {
// put your setup code here, to run once:
for (int i=0; i<23; i++)
pinMode(i, OUTPUT);
for (int i=26; i<29; i++)
pinMode(i, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i<23; i++)
digitalWrite(i,HIGH);
for (int i=26; i<29; i++)
digitalWrite(i,HIGH);
digitalWrite(LED_BUILTIN, HIGH);
delayMicroseconds(100);
for (int i=0; i<23; i++)
digitalWrite(i,LOW);
for (int i=26; i<29; i++)
digitalWrite(i,LOW);
digitalWrite(LED_BUILTIN, LOW);
delayMicroseconds(100);
}

View file

@ -0,0 +1,2 @@
ARDUINO IDE
Installation: https://github.com/earlephilhower/arduino-pico

View file

@ -0,0 +1,13 @@
void setup() {
// put your setup code here, to run once:
for (int i=0; i<22; i++)
pinMode(i, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i<22; i++) digitalWrite(i,HIGH);
delayMicroseconds(75);
for (int i=0; i<22; i++) digitalWrite(i,LOW);
delayMicroseconds(75);
}

View file

@ -0,0 +1,6 @@
ARDUINO IDE
File>Preferences>Additional Boards Manager URLs:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Board-> Nucleo-32
Board Part-> Nucleo F031K6

View file

@ -0,0 +1,13 @@
void setup() {
// put your setup code here, to run once:
for (int i=0; i<22; i++)
pinMode(i, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i<22; i++) digitalWrite(i,HIGH);
delayMicroseconds(75);
for (int i=0; i<22; i++) digitalWrite(i,LOW);
delayMicroseconds(75);
}

View file

@ -0,0 +1,6 @@
ARDUINO IDE
File>Preferences>Additional Boards Manager URLs:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Board-> Nucleo-32
Board Part-> Nucleo F303K8

View file

@ -0,0 +1,13 @@
void setup() {
// put your setup code here, to run once:
for (int i=0; i<22; i++)
pinMode(i, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i<22; i++) digitalWrite(i,HIGH);
delayMicroseconds(75);
for (int i=0; i<22; i++) digitalWrite(i,LOW);
delayMicroseconds(75);
}

View file

@ -0,0 +1,6 @@
ARDUINO IDE
File>Preferences>Additional Boards Manager URLs:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Board-> Nucleo-32
Board Part-> Nucleo L432KC

View file

@ -0,0 +1 @@
Import into CCStudio Theia

View file

@ -0,0 +1 @@
Import into CCStudio Theia