KAmod RP2040 (PL): Difference between revisions
From Kamamilabs.com - Wiki
| (18 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
__jzpdf__ | __jzpdf__ | ||
==== Opis ==== | |||
<b>KAmod RP2040 - Miniaturowy moduł z mikrokontrolerem Raspberry RP2040 i 16MB flash</b><br> | <b>KAmod RP2040 - Miniaturowy moduł z mikrokontrolerem Raspberry RP2040 i 16MB flash</b><br> | ||
Miniaturowa płytka z mikrokontrolerem RP2040 wyposażonym w dwa rdzenie ARM Cortex-M0+ | Miniaturowa płytka z mikrokontrolerem RP2040 stosowanym w Raspberry Pi Pico, wyposażonym w dwa rdzenie ARM Cortex-M0+ o taktowaniu do 133 MHz i 264 kB wbudowanej pamięci SRAM. Mikrokontroler jest połączony z układem pamięci QSPI flash o pojemności 16 MB, czyli maksymalnej obsługiwanej przez RP2040. Złącze USB-C umożliwia zasilanie modułu oraz programowanie mikrokontrolera w środowisku Arduino i nie tylko. | ||
<center> | <center> | ||
[[File:KAmod2040_1.jpg| | [[File:KAmod2040_1.jpg|500px]] | ||
[[File:KAmod2040_2.jpg| | [[File:KAmod2040_2.jpg|460px]] | ||
</center> | </center> | ||
<hr> | |||
==== Podstawowe parametry ==== | ==== Podstawowe parametry ==== | ||
* Mikrokontroler RP2040 zaprojektowany przez Raspberry Pi | * Mikrokontroler RP2040 zaprojektowany przez Raspberry Pi | ||
* | * Dwa rdzenie ARM Cortex-M0+ z taktowaniem do 133 MHz | ||
* | * Pamięć RAM: 264 kB | ||
** | * USB 1.1 Host/Device | ||
* Stabilizator napięcia 3,3 V | * RTC | ||
* 16 MB zewnętrznej pamięci flash | * Stabilizator napięcia 3,3 V 250 mA | ||
* Wbudowane złącze USB typu C | * 16 MB zewnętrznej pamięci flash | ||
* Przyciski Reset i Boot | * Wbudowane złącze USB typu C umożliwiające zasilanie i programowanie | ||
* Możliwość programowania Drag&Drop w trybie pamięci masowej USB | * Przyciski Reset i Boot | ||
* Dioda LED WS2812 | * Możliwość programowania Drag&Drop w trybie pamięci masowej USB | ||
* 15 wyprowadzeń GPIO | * Dioda LED WS2812 | ||
* Rozbudowane interfejsy komunikacyjne: | * 15 wyprowadzeń GPIO | ||
* Rozbudowane interfejsy komunikacyjne: 2 x SPI, 2 x I2C, 2 x UART | |||
* Przetwornik ADC 4 x 12-bit | |||
* Wyjścia PWM, max 13 kanałów | |||
* | * Złącze I2C Qwire typu JST SH 4-pin 1 mm (kompatybilne z Qwiic / STEMMA QT) | ||
* | * Wymiary: 18 x 22 mm | ||
* Złącze I2C Qwire typu JST SH 4-pin 1 mm (kompatybilne z Qwiic / STEMMA QT) | <br> | ||
* Wymiary: 18 x 22 mm | <hr> | ||
<br>< | |||
==== Wyposażenie standardowe ==== | ==== Wyposażenie standardowe ==== | ||
| Line 43: | Line 43: | ||
2 x prosta listwa goldpin 8-pin raster 2,54 mm | 2 x prosta listwa goldpin 8-pin raster 2,54 mm | ||
|} | |} | ||
[[File:KAmod2040_3.jpg|none|700px|thumb|center]] | |||
</center> | </center> | ||
< | <hr> | ||
==== Schemat elektryczny ==== | ==== Schemat elektryczny ==== | ||
<center> | <center> | ||
| Line 52: | Line 51: | ||
</center> | </center> | ||
<br> | <br> | ||
<hr> | |||
==== Opis wyprowadzeń ==== | ==== Opis wyprowadzeń ==== | ||
| Line 58: | Line 58: | ||
</center> | </center> | ||
<br> | <br> | ||
<hr> | |||
==== Wbudowana dioda LED RGB ==== | ==== Wbudowana dioda LED RGB ==== | ||
Moduł KAmod RP2040 | Moduł KAmod RP2040 zawiera diodę LED RGB typu WS2812, która jest dołączona do wyprowadzenia GPIO16 mikrokontrolera (GPIO16 nie jest dostępne na złączach modułu) | ||
<center> | <center> | ||
[[File:KAmod_RP2040_WS2812.png|none|250px|thumb|center]] | [[File:KAmod_RP2040_WS2812.png|none|250px|thumb|center]] | ||
</center> | </center> | ||
<br> | <br> | ||
<hr> | |||
==== Złącze I2C Qwire ==== | ==== Złącze I2C Qwire ==== | ||
Moduł KAmod RP2040 zawiera złącze | Moduł KAmod RP2040 zawiera złącze I2C Qwire (JST SH 1 mm) zgodne ze standardem '''Qwiic''' / '''STEMMA QT'''. Umożliwia ono szybkie podłączanie i rozszerzanie funkcji modułów wyposażonych w interfejs I2C, bez potrzeby lutowania. Qwire jest sterowane interfejsem I2C1 dostępnym na liniach '''GPIO23 (SDA)''' oraz '''GPIO22 (SCL)'''. | ||
<center> | <center> | ||
[[File:KAmod_RP2040_qwire.png|none|500px|thumb|center]] | [[File:KAmod_RP2040_qwire.png|none|500px|thumb|center]] | ||
| Line 75: | Line 75: | ||
</center> | </center> | ||
<br><br> | <br><br> | ||
<hr> | |||
==== Przyciski BOOT oraz RST==== | ==== Przyciski BOOT oraz RST==== | ||
Moduł KAmod RP2040 został wyposażony w dwa przyciski które ułatwiają programowanie mikrokontrolera RP2040. Dzięki przyciskowi RST użytkownik nie musi odłączać oraz podłączać przewodu USB aby zresetować mikrokontroler | Moduł KAmod RP2040 został wyposażony w dwa przyciski, które ułatwiają programowanie mikrokontrolera RP2040. Dzięki przyciskowi RST użytkownik nie musi odłączać oraz podłączać przewodu USB, aby zresetować mikrokontroler. Przycisk BOOT pełni taką samą funkcję jak w Raspberry Pi Pico - powoduje uruchomienie bootloadera, który umożliwia jego programowanie. | ||
<center> | <center> | ||
[[File:KAmod_RP2040_sw.png|none| | [[File:KAmod_RP2040_sw.png|none|250px|thumb|center]] | ||
</center> | </center> | ||
<br> | <br> | ||
<hr> | |||
==== Wymiary ==== | |||
Wymiary płytki KAmod RP2040 to 18 x 22 mm. | |||
<center> | |||
[[File:KAmod_RP2040_wym.png|none|400px|thumb|center]] | |||
</center> | |||
<hr> | |||
==== Program testowy ==== | |||
Program testowy został napisany w środowisku Arduino. | |||
<br><br> | |||
<syntaxhighlight lang="arduino" line> | |||
//Need: BOARDS MANAGER -> Arduino Mbed OS RP2040 Boards | |||
//Board: "Raspberry Pi Pico" | |||
//Need: NeoPixelConnect.h | |||
#include <NeoPixelConnect.h> | |||
#include <Wire.h> | |||
#include <SparkFun_Qwiic_Button.h> | |||
//WS2812 | |||
#define WS2812_PIN 16 | |||
#define NUM_OF_LEDS 1 | |||
NeoPixelConnect WSpixel(WS2812_PIN, NUM_OF_LEDS); | |||
//I2C | |||
#define I2C_SDA 22 | |||
#define I2C_SCL 23 | |||
#define I2C_FREQ 100000 | |||
#define BUTTON_ADDR 0x6F | |||
QwiicButton button; | |||
MbedI2C iic1(I2C_SDA, I2C_SCL); | |||
int i; | |||
int dir; | |||
int ws_r; | |||
int ws_g; | |||
int ws_b; | |||
void setup() { | |||
Serial.begin(115200); | |||
delay(2000); | |||
Serial.println("KAmodRP2040 Test"); | |||
iic1.begin(); | |||
button.begin(BUTTON_ADDR, iic1); | |||
pinMode(0, OUTPUT); | |||
pinMode(1, OUTPUT); | |||
pinMode(2, OUTPUT); | |||
pinMode(3, OUTPUT); | |||
pinMode(4, OUTPUT); | |||
pinMode(5, OUTPUT); | |||
pinMode(6, OUTPUT); | |||
pinMode(7, OUTPUT); | |||
==== | pinMode(25, OUTPUT); | ||
-- | pinMode(26, OUTPUT); | ||
pinMode(27, OUTPUT); | |||
pinMode(28, OUTPUT); | |||
pinMode(29, OUTPUT); | |||
i = 0; | |||
dir = 0; | |||
ws_r = 0; | |||
ws_g = 0; | |||
ws_b = 0; | |||
WSpixel.neoPixelClear(); | |||
} | |||
void loop() { | |||
WSpixel.neoPixelSetValue(0, (ws_r & 0xFF), (ws_g & 0xFF), (ws_b & 0xFF), true); | |||
digitalWrite(i, HIGH); | |||
if (button.isPressed() == true) | |||
delay(25); | |||
else | |||
delay(100); | |||
digitalWrite(i, LOW); | |||
if (dir == 0){ | |||
i++; | |||
if (i==8) { | |||
i = 25; | |||
ws_r = 255; | |||
ws_g = 0; | |||
ws_b = 0; | |||
} | |||
if (i==30) { | |||
i = 28; | |||
dir = 1; | |||
Serial.print(" Tik..."); | |||
ws_r = 0; | |||
ws_g = 255; | |||
ws_b = 0; | |||
} | |||
} else { | |||
if (i > 0){ | |||
i--; | |||
if (i==24) { | |||
i = 7; | |||
ws_r = 0; | |||
ws_g = 0; | |||
ws_b = 255; | |||
} | |||
} else { | |||
i = 1; | |||
dir = 0; | |||
Serial.print(" Tak..."); | |||
ws_r = 0; | |||
ws_g = 0; | |||
ws_b = 0; | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br><br> | |||
<hr> | |||
==== Linki ==== | ==== Linki ==== | ||
*[https://download.kamami.pl/p587555-rp2040-datasheet.pdf Karta katalogowa układu RP2040] | *[https://download.kamami.pl/p587555-rp2040-datasheet.pdf Karta katalogowa układu RP2040] | ||
*[https://wiki.kamamilabs.com/images/2/24/KAmod_RP2040_3d.zip Model CAD (STEP)] | |||
Latest revision as of 14:22, 24 October 2025

Opis
KAmod RP2040 - Miniaturowy moduł z mikrokontrolerem Raspberry RP2040 i 16MB flash
Miniaturowa płytka z mikrokontrolerem RP2040 stosowanym w Raspberry Pi Pico, wyposażonym w dwa rdzenie ARM Cortex-M0+ o taktowaniu do 133 MHz i 264 kB wbudowanej pamięci SRAM. Mikrokontroler jest połączony z układem pamięci QSPI flash o pojemności 16 MB, czyli maksymalnej obsługiwanej przez RP2040. Złącze USB-C umożliwia zasilanie modułu oraz programowanie mikrokontrolera w środowisku Arduino i nie tylko.
Podstawowe parametry
- Mikrokontroler RP2040 zaprojektowany przez Raspberry Pi
- Dwa rdzenie ARM Cortex-M0+ z taktowaniem do 133 MHz
- Pamięć RAM: 264 kB
- USB 1.1 Host/Device
- RTC
- Stabilizator napięcia 3,3 V 250 mA
- 16 MB zewnętrznej pamięci flash
- Wbudowane złącze USB typu C umożliwiające zasilanie i programowanie
- Przyciski Reset i Boot
- Możliwość programowania Drag&Drop w trybie pamięci masowej USB
- Dioda LED WS2812
- 15 wyprowadzeń GPIO
- Rozbudowane interfejsy komunikacyjne: 2 x SPI, 2 x I2C, 2 x UART
- Przetwornik ADC 4 x 12-bit
- Wyjścia PWM, max 13 kanałów
- Złącze I2C Qwire typu JST SH 4-pin 1 mm (kompatybilne z Qwiic / STEMMA QT)
- Wymiary: 18 x 22 mm
Wyposażenie standardowe
| Kod | Opis |
|---|---|
| KAmod RP2040 |
Zmontowany i uruchomiony moduł |

Schemat elektryczny

Opis wyprowadzeń

Wbudowana dioda LED RGB
Moduł KAmod RP2040 zawiera diodę LED RGB typu WS2812, która jest dołączona do wyprowadzenia GPIO16 mikrokontrolera (GPIO16 nie jest dostępne na złączach modułu)

Złącze I2C Qwire
Moduł KAmod RP2040 zawiera złącze I2C Qwire (JST SH 1 mm) zgodne ze standardem Qwiic / STEMMA QT. Umożliwia ono szybkie podłączanie i rozszerzanie funkcji modułów wyposażonych w interfejs I2C, bez potrzeby lutowania. Qwire jest sterowane interfejsem I2C1 dostępnym na liniach GPIO23 (SDA) oraz GPIO22 (SCL).


Przyciski BOOT oraz RST
Moduł KAmod RP2040 został wyposażony w dwa przyciski, które ułatwiają programowanie mikrokontrolera RP2040. Dzięki przyciskowi RST użytkownik nie musi odłączać oraz podłączać przewodu USB, aby zresetować mikrokontroler. Przycisk BOOT pełni taką samą funkcję jak w Raspberry Pi Pico - powoduje uruchomienie bootloadera, który umożliwia jego programowanie.

Wymiary
Wymiary płytki KAmod RP2040 to 18 x 22 mm.

Program testowy
Program testowy został napisany w środowisku Arduino.
//Need: BOARDS MANAGER -> Arduino Mbed OS RP2040 Boards
//Board: "Raspberry Pi Pico"
//Need: NeoPixelConnect.h
#include <NeoPixelConnect.h>
#include <Wire.h>
#include <SparkFun_Qwiic_Button.h>
//WS2812
#define WS2812_PIN 16
#define NUM_OF_LEDS 1
NeoPixelConnect WSpixel(WS2812_PIN, NUM_OF_LEDS);
//I2C
#define I2C_SDA 22
#define I2C_SCL 23
#define I2C_FREQ 100000
#define BUTTON_ADDR 0x6F
QwiicButton button;
MbedI2C iic1(I2C_SDA, I2C_SCL);
int i;
int dir;
int ws_r;
int ws_g;
int ws_b;
void setup() {
Serial.begin(115200);
delay(2000);
Serial.println("KAmodRP2040 Test");
iic1.begin();
button.begin(BUTTON_ADDR, iic1);
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
pinMode(28, OUTPUT);
pinMode(29, OUTPUT);
i = 0;
dir = 0;
ws_r = 0;
ws_g = 0;
ws_b = 0;
WSpixel.neoPixelClear();
}
void loop() {
WSpixel.neoPixelSetValue(0, (ws_r & 0xFF), (ws_g & 0xFF), (ws_b & 0xFF), true);
digitalWrite(i, HIGH);
if (button.isPressed() == true)
delay(25);
else
delay(100);
digitalWrite(i, LOW);
if (dir == 0){
i++;
if (i==8) {
i = 25;
ws_r = 255;
ws_g = 0;
ws_b = 0;
}
if (i==30) {
i = 28;
dir = 1;
Serial.print(" Tik...");
ws_r = 0;
ws_g = 255;
ws_b = 0;
}
} else {
if (i > 0){
i--;
if (i==24) {
i = 7;
ws_r = 0;
ws_g = 0;
ws_b = 255;
}
} else {
i = 1;
dir = 0;
Serial.print(" Tak...");
ws_r = 0;
ws_g = 0;
ws_b = 0;
}
}
}