niedziela, 31 grudnia 2017

Raspberry pi - Python - PCF8591

W tym poście chciałbym opisać sposób użycia układu PCF8591 czyli czterokanałowego przetwornika ADC.

Znalezione obrazy dla zapytania raspberry pi
[Źródło: https://www.element14.com/community/community/raspberry-pi]

piątek, 29 grudnia 2017

[1] Xamarin - Prosty kalkulator

Ten post chciałbym poświęcić na opisanie sposobu wykonania prostego kalkulatora w Visual Studio Xamarin na Androida.

[Źrodlo: https://en.wikipedia.org/wiki/Xamarin]

środa, 20 grudnia 2017

[33.3] STM32F4 - ENC28J60 TCP Serwer

Ten post chciałbym poświęcić na przygotowanie serwera TCP w oparciu o układ ENC28J60.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

czwartek, 14 grudnia 2017

Raspberry pi - Python - Wiegand

Ten post chciałbym poświęcić na opisanie sposobu wykonania Wieganda na Rapsbery Pi w Pythonie.

Znalezione obrazy dla zapytania raspberry pi
[Źródło: https://www.element14.com/community/community/raspberry-pi]

środa, 13 grudnia 2017

Raspberry pi - Python - RTC DS3231

Ten post chciałbym poświęcić na opisanie sposobu podłączenia RTC DS3231 do Raspberry pi.

Znalezione obrazy dla zapytania raspberry pi
[Źródło: https://www.element14.com/community/community/raspberry-pi]

[33.2] STM32F4 - ENC28J60 - Przysyłanie danych z serwera UDP do klienta

W tym poście chciałbym przedstawić projekt układu wysyłającego dane z serwera UDP do klienta. Przesyłane będą informacje o z dwóch czujników DS18B20, dwóch przetworników analogowo cyfrowych.
[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

Ten projekt jest kontynuacją wcześniejszego posta odnośnie serwera UDP. Dane od układu do klienta będą wysyłane po odebraniu zapytania od aplikacji. Będzie ona cyklicznie przesyłała zapytania do serwera. Po wysłaniu odbierze ona potrzebne dane które przedstawi na wykresie oraz w tabeli. Dane przyporządkowane będą do czasu systemowego komputera.

środa, 6 grudnia 2017

[33.1] STM32F4 - ENC28J60, serwer UDP

Ten post chciałbym poświęcić na opisanie sposobu konfiguracji układu ENC28J60 za pomocą układu STM32F4 oraz bibliotek HAL'a. Po oprogramowaniu poprzednich funkcji przedstawię prostą aplikację serwera UDP.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

niedziela, 26 listopada 2017

[32] STM32F4 - DS18B20, wiele czujników, obsługa alarmu

Ten post chciałbym poświęcić na opisanie sposobu podłączenia wielu czujników na linii One Wire oraz obsługę alarmu od czujnika DS18B20.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

czwartek, 23 listopada 2017

[31] STM32F4 - Obsługa czujnika DS18B20

W tym poście chciałbym zaprezentować sposób komunikacji z czujnikiem temperatury DS18B20 oraz mikrokontrolerem STM32F4.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

poniedziałek, 20 listopada 2017

[8.3] STM32F7 - UDP Serwer

W tym przedstawię sposób konfiguracji STM32F7 oraz bibliotek LWIP tak aby uzyskać serwer UDP.

[Źródło: http://www.st.com/en/evaluation-tools/32f746gdiscovery.html]

czwartek, 16 listopada 2017

[14] STM32F4 - CubeMx - Wyświetlacz TFT 240x320 ze sterownikiem ILI9341

Ten post chciałbym poświęcić na przedstawienie obsługi działania wyświetlacza ze sterownikiem ILI9341. Cały program zostanie przygotowany za pomocą CubeMx oraz Keil uVision. W bardzo łątwy sposób można cały program przenieść do Eclipsa np. AC6.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

środa, 15 listopada 2017

[6] Atxmega - UART

W tym poście przedstawię w jaki sposób wykonać komunikację po interfejsie UART. Wysyłanie danych będzie się odbywało w trybie blokującym bądź poprzez przerwanie, natomiast odbieranie będzie odbywało się tylko na przerwaniach.

[Źródło: http://www.atmel.com/images/Atmel-8135-8-and-16-bit-AVR-microcontroller-ATxmega16D4-32D4-64D4-128D4_datasheet.pdf]

środa, 8 listopada 2017

[8] ESP32 - Uruchomienie punktu dostępu do wifi z serwerem HTTP

W tym poście chciałbym przedstawić w jaki sposób uruchomić ESP32, tak aby działało jak punkt dostępu. Dzięki temu można się do niego jak do wifi, po czym odpalić na nim np. własną stronę internetową. Co przedstawię w poniższym przykładzie.

[Źródło: www.banggood.com]

niedziela, 5 listopada 2017

C# - Komunikacja z baza danych SQLite

Ten post chciałbym poświęcić na opisanie sposobu komunikacji z bazą danych SQLite.

[Źródło: https://docs.microsoft.com/en-us/dotnet/]

poniedziałek, 30 października 2017

[7] ESP32 - I2C RTC

W tym poście przedstawię sposób konfiguracji I2C w układzie ESP32 na przykładzie zegara RTC.  Przygotowany program został przetestowany z układami DS1307 oraz DS3231. Na obu działał on poprawnie. Dodatkowo do programu została dołączona funkcja odpowiedzialna za skanowanie szyny I2C w celu zdefiniowania adresów podłączonych urządzeń.

[Źródło: www.banggood.com]

czwartek, 26 października 2017

[6] ESP32 - Konfiguracja wewnętrznego zegara RTC

W tym poście chciałbym opisać sposób konfiguracji wewnętrznego zegara RTC w układzie ESP32.

[Źródło: www.banggood.com]

wtorek, 24 października 2017

[35] Arduino - Wyświetlacz TFT

Ten post chciałbym poświęcić na opisanie sposobu sterowania wyświetlaczem TFT 1.8 cala za pomocą interfejsu SPI. 

[Źródło: https://nettigo.pl/products/wyswietlacz-lcd-tft-1-8-spi-ili9163]

poniedziałek, 23 października 2017

[5] ESP32 - PN532

Ten post chciałbym poświęcić na przygotowanie programu odpowiedzialnego za czytanie kart mifare. Takim układem będzie PN532. Komunikacja z nim zostanie przeprowadzona za pomocą UART-u.

[Źródło: www.banggood.com]

piątek, 6 października 2017

sobota, 30 września 2017

[34.1] Arduino - Bluetooth HC-05 - Sterowanie diodą

Ten post chciałbym poświęcić na opisanie sposobu zaprogramowania modułu bluetooth HC-05 za pomocą Arduino Uno. Do projektu przedstawię krótki program wykonany w app inventor, który pozwala na sterowanie diodą znajdującą się na płytce.


[Źródło: https://store.arduino.cc/usa/arduino-uno-rev3]

[33.1] Arduino - ENC28J60, DHCP oraz Ping

Ten post chciałbym poświęcić na opisanie sposobu konfiguracji układu ENC28J60 za pomocą Arduino. Post będzie opisywał podstawowy sposób podłączenia układu do Arduino wraz z prostym programem pozwalającym na pingowanie do układu.

[Źródło: https://store.arduino.cc/usa/arduino-uno-rev3]

piątek, 29 września 2017

[8.2] STM32F7 - Serwer HTTP, CGI oraz SGI

Ten przykład chciałbym poświęcić na przygotowanie programu obsługującego serwer HTTP. Do przygotowanie projektu posłużyłem się przykładami umieszczonymi dla mikrokontrolera STM32F4.

[Źródło: http://www.st.com/en/evaluation-tools/32f746gdiscovery.html]

wtorek, 26 września 2017

[1] STM32L0 - Wyswietlacz E papier

W tym poście chciałbym opisać sposób obsługi wyświetlacza zamontowanego na płytce STM32L0 - Discovery. Ta rodzina mikrokontrolerów jak i pozostałe L-ki nie posiada wsparcia dla bibliotek standardowych, wobec czego zastosuje biblioteki HAL-a.
[Źródło: http://www.st.com/en/evaluation-tools/32l0538discovery.html]

niedziela, 24 września 2017

czwartek, 21 września 2017

[2] ESP32 - NVS, przechowywanie danych

W tym poście chciałbym przedstawić NVS czyli NON Volatile Storage. Jest to biblioteka obsługująca pamięć flash. Pozwoli to na przechowywanie przesłanych haseł czy ważnych danych nawet po zaniku zasilania.

[Źródło: www.banggood.com]

czwartek, 14 września 2017

C# - Aplikacje okienkowe klient oraz serwer

Ten post chciałbym poświęcić na zaprezentowanie dwóch programów odpowiedzialnych za komunikację pomiędzy klientem a serwerem. Wysyłane będzie żądanie z odpowiednią komendą, dzięki której nastąpi wykonanie podanej akcji.

[Źródło: https://docs.microsoft.com/en-us/dotnet/]

Programy są modyfikacją wersji konsolowych, umieszczonych w jednym z poprzednich postów.

środa, 13 września 2017

[1] ESP32 - Komunikacja po UART

W tym poście chciałbym opisać sposób komunikacja przez ESP32 za pomocą UARTu.

[Źródło: www.banggood.com]

poniedziałek, 11 września 2017

[30] STM32F4 - FreeRTOS - obsługa prostych zadań, mruganie diodami

Tym razem bardzo szybki post dotyczący systemu freeRTOS. W nim chciałbym przedstawić obsługę systemu FreeROTS, a dokładniej jednej części tzn. funkcji Task.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

niedziela, 10 września 2017

[32] Arduino - RTS DS3231

W tym poście chciałbym opisać podłączenie oraz programowanie zegara czasu rzeczywistego DS3231 za pomocą Arduino.

[Źródło: http://www.hobbytronics.co.uk/arduino-uno-r3, http://www.banggood.com]

wtorek, 5 września 2017

[10] Atmega - Akcelerometr LSM6DS3

Ten post chciałem poświęcić na programowanie układu LSM6DS3. Jest to trzyosiowy akcelerometr oraz żyroskop. Do komunikacji wykorzystam interfejs I2C.



[Źródło: https://learn.sparkfun.com/tutorials/lsm6ds3-breakout-hookup-guide]

niedziela, 3 września 2017

[9] Atmega328p - Dostęp do pamięci EEPROM

Ten post chciałbym poświęcić na opisanie sposobu zapisywania danych do EEPROMu.

[Źródło: https://en.wikipedia.org/wiki/ATmega328]

piątek, 1 września 2017

[29] STM32F4 - WS2812 za pomocą PWM z DMA, Biblioteki STD

Ten post chciałbym poświęcić na opisanie sterowania diodami WS2812. Program będzie wykorzystał sygnał PWM wraz z DMA z jednego z timerów:

[Źródło: https://www.tweaking4all.com/hardware/arduino/arduino-ws2812-led/]

czwartek, 24 sierpnia 2017

[20] STM32F7 - Wiegand

W tym poście chciałbym przedstawić implementację interfejsu Wiegand. Do tego celu wykorzystam płytkę z Discovery z mikrokontrolerem STM32F746VG oraz biblioteki HAL'a.

[Źródło: http://www.st.com/en/evaluation-tools/32f746gdiscovery.html]

czwartek, 17 sierpnia 2017

[1] ESP8266 - Pomiar temperatury oraz prezentacja danych na thingspeak

Ten post chciałbym poświęcić na opisanie sposobu zaprogramowania układu ESP32 za pomocą Arduino, tak aby wysyłał dane z dwóch czujników temperatury po interfejsie OneWire. Dane będą magazynowane przez darmowy serwis thingspeak.

[Źródło: https://www.banggood.com/V3-NodeMcu-Lua-WIFI-Development-Board-p-992733.html]

wtorek, 15 sierpnia 2017

C# - Aplikacje Klient, Serwer

W tym poście chciałbym przedstawić dwie aplikacje, jedna działa jako klient druga jako serwer. Każda z nich działa na jako aplikacja konsolowa.

środa, 9 sierpnia 2017

[8.1] STM32F7 - Ethernet, bez RTOS

Ten przykład chciałbym poświęcić na konfigurację STM32, w wersji bez RTOS, jako serwer ethernet.

[Źródło: http://www.st.com/en/evaluation-tools/32f746gdiscovery.html]

wtorek, 8 sierpnia 2017

[19] STM32F7 - Discovery - Przygotowanie wyświetlacza oraz panelu dotykowego w oparciu o CubeMx

Ten post chciałbym poświęcić na przygotowanie wyświetlacza na płytce discovery. Program będę przygotowywał w oparciu o biblioteki HAL'a bez bibliotek BSP. Przedstawię tutaj funkcje graficzne, służące do rysowania elementów na ekranie oraz wypisywanie tekstu. Przygotowane funkcje, w pewnej części będą się opierać na bibliotece udostępnionej przez ST.

Link do pobrania niezbędnych elementów znajduje się na dole strony.

[http://www.st.com/en/evaluation-tools/32f746gdiscovery.html]

czwartek, 3 sierpnia 2017

[18] STM32F7 - Odczyt kart RFID Unique za pomocą układu EM4095

W tym poście chciałbym przedstawić sposób obsługi układu EM4095 za pomocą mikrokontrolera STM32F7.

[Źródło: http://www.priority1design.com.au/em4095_rfid_ic.html]

wtorek, 1 sierpnia 2017

[28] STM32F4 - USART RX oraz TX z DMA, biblioteki STD

Ten post chciałbym poświęcić na opisanie sposobu wysyłania danych przez USART z wykorzystaniem DMA. Transmisja danych odbywa się w trybie blokującym.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]


środa, 26 lipca 2017

[27] STM32F4 - Emulacja pamięci EEPROM, biblioteki STD

Ten post chciałbym poświęcić na przygotowanie programu umożliwiającego wykonanie emulacji pamięci EEPROM.

Informacje odnoście metody jaką należy zastosować można znaleźć w nocie aplikacyjnej AN3969.

[Źródłó: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

[17] STM32F7 - Przerwania EXTI

Ten post chciałbym poświęcić na opisanie sposobu generacji przerwań zewnętrznych w mikrokontrolerze STM32F7.

[Źródło: http://www.st.com/en/evaluation-tools/32f746gdiscovery.html]

niedziela, 23 lipca 2017

[3] STM32F429I - Discovery - LCD TFT oraz panel dotykowy, biblioteki STD

Ten post chciałbym poświęcić na opisanie obsługi wyświetlacza za pomocą interfejsu SPI, oraz programowanie panelu dotykowego za pomocą interfejsu I2C.

Wszystkie funkcje nie opisane w tym poście są wyjaśnione i można je pobrać na samym dole tego postu.

[http://www.st.com/en/evaluation-tools/32f429idiscovery.html]

środa, 12 lipca 2017

[16] STM32F7 - RS485

Ten bardzo krótki post chciałbym poświęcić na opisanie sposobu komunikacji za pomocą RS485 przygotowanego w oparciu o UART7 na płytce STM32F7 - Discovery. Komunikacja będzie wykonana za pomocą układu ST3485EB. 

Wykorzystywane będą trzy linie, jedna nadająca, druga odbierająca, trzecia będzie służyła do wyboru trybu pracy, tzn czy będzie występowało nadanie czy odbieranie.

Wysyłanie i odbieranie danych będzie przebiegać w standardowy sposób. Jedyna różnica jaka dochodzi to sterowanie pinem określającym kierunek przepływu danych. Domyślnie aby układ mógł odebrać dane to ten pin musi być utrzymywany w stanie niskim. Aby wysłać dane do układu to należy ustawić go w stan wysoki, a potem zaraz po ich wysłaniu zmienić stan na niski.

poniedziałek, 3 lipca 2017

[15] STM32F7 - Discovery - QSPI, zewnętrzna pamięć Flash

W tym poście chciałbym poruszyć temat wykorzystania QSPI na płytce discovery do komunikacji z pamięcią Nor Flash. Kość umieszczona na płytce discovery to 128 Mbit pamięć N25Q128A13EF840E od Microna.

Układ został podłączony do mikrokontrolera w następujący sposób [STM32F7 Datasheet]:


niedziela, 2 lipca 2017

[2] STM32F429I - Discovery - SDRAM ISSI IS42S16400, CubeMx

Ten post chciałbym poświęcić na opisanie sposobu generacji oraz wykonania projektu, w oparciu o biblioteki hala oraz środowisko CubeMx w celu przygotowania projektu obsługującego pamieć SDRAM ISSI IS42S16400.

Cube Mx:


Poniżej przedstawię sposób wykonania projektu dla pamięci SDRAM w programie CubeMx.


środa, 28 czerwca 2017

[14] STM32F7 - Discovery - IWDG, WWDG za pomocą CubeMx

W tym poście chciałbym przedstawić sposób generacji projektu z obsługą IWDG za pomocą środowiska CubeMx oraz SystemWorkbench. 

CubeMx:


Przedstawię dwie konfiguracje IWDG, pierwsza z nich wymaga odświeżania w pętli głównej bądź w przerwaniu od timera. Druga natomiast będzie dotyczyła WWDG, którego odświeżanie nastąpi w przerwaniu.

wtorek, 27 czerwca 2017

[13] STM32F7 - Discovery - SDRAM, Generacja własnego projektu

Ten poświęcę na przygotowanie krótkiego programu pozwalającym na wprowadzanie danych do pamięci SDRAM. Na płytce Discovery F7 znajduje się zewnętrzna pamięć MT48LC4M32B2.

Pamięć SDRAM już opisywałem na tym blogu, w tym poście zajmę się przygotowaniem programu pozwalającego na wpisywanie do niej danych, bez użycia bibliotek BSP.


CubeMx:


Poniżej przejdę przez wszystkie elementy jakie muszą zostać uruchomione w celu poprawnej pracy układu.

wtorek, 20 czerwca 2017

[26] STM32F4 - RTC DS3231

Ten post chciałbym poświęcić na opisanie programowania zegara RTC DS3231. Jest to zegar czasu rzeczywistego wyprodukowany przez firmę MAXIM. Komunikacja odbywa się poprzez interfejs I2C.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

Dokumentacja do układu jest do pobrania pod tym linkiem.

niedziela, 18 czerwca 2017

[13] STM32F4 - Cube Mx - DAC

Ten post chciałbym poświęcić na omówienie sposobu uruchomienia przetwornika cyfrowo analogowego DAC w mikrokontrolerach STM32F4.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

niedziela, 11 czerwca 2017

[8] Atmega328p - PWM

Ten post chciałbym poświęcić na opisanie sposobu generowania sygnału PWM w oparciu o mikrokontroler ATmega328p.

Do wykorzystania są następujące wyprowadzenia:
  • PD3 - OC2B;
  • PD5 - OC0B;
  • PD6 - OC0A;
  • PB3 - OC2A;
  • PB2 - OC1B;
  • PB1 - OC1A;

środa, 7 czerwca 2017

[5] Atxmega - RS485

Ten post chciałbym poświęcić na opisanie sposobu wykonania komunikacji w standardzie transmisji szeregowej RS485.

Opis


Dane będą wysyłane z mikrokontrolera przy użyciu trzech linii. Dwie z nich czyli RX oraz TX wysyłają oraz odbierają dane. Natomiast trzecia będzie odpowiadała za sterowanie.

W standardzie 485 dane muszą być wysyłane naprzemiennie w trybie half-duplex. Dużym plusem takiego rodzaju transmisji jest odporność na zakłócenia przez zastosowanie skrętki dwu przewodowej, daleki zasięg oraz możliwość podłączenia wielu urządzeń na linii.  

wtorek, 30 maja 2017

[31] Arduino - Układ RFID RC522, sterowanie przekaźnikami

W tym poście chciałbym opisać projekt sterowania układem przekaźnikami za pomocą kart Mifare odczytywanych przez moduł z układem RC522. Pozwala on na odczytywanie jak i zapisywanie danych na kartę na częstotliwości 13,56 MHz. Komunikacja z nim odbywa się przez interfejs SPI. Układ zasilany jest napięciem 3.3V. Nie ma problemów z podłączeniem go do Arduino Uno, zasilanego z 5V.

piątek, 26 maja 2017

[30] Arduino - Sterowanie przekaźnikami za pomocą portu szeregowego

Ten dosyć krótki post chciałem poświęcić na opisanie sposobu sterowania przekaźnikami za pomocą portu szeregowego.

Podłączenie:


Wykorzystałem moduł dwóch przekaźników, bo akurat taki miałem, ale w ten sam sposób można obsłużyć dużo więcej urządzeń. Wystarczy dodawać kolejne definicje do programu.

  • GND - GND
  • IN1 - pin 7
  • IN2 - pin 8
  • VCC - 5V

środa, 17 maja 2017

Powerbank

W tym poście przedstawię w jaki sposób wykonać power bank z baterii od laptopa.

Potrzebne komponenty:


Ja wykorzystałem 6 baterii 18650, które pobrałem z starej baterii od laptopa, drugim komponentem jest ładowarka wykorzystałem układ TP4056 z zabezpieczeniem. 

poniedziałek, 15 maja 2017

C# - Program do obsługi ESP8266 V1.0

Ten post chciałbym poświęcić na przygotowanie prostego programu pozwalającego na wysyłanie komend do układu ESP8266. Do testów wykorzystałem układ ESPWROOM - 02. 

Komunikacja z układem zostanie wykonana za pomocą komend AT.

Dokumentację można znaleźć pod tymi linkami: ESP AT Instruction set, Command Examples.

Raspberry Pi - Poprawne wyłączanie, watchdog oraz sprawdzanie temperatury

W tym poście chciałbym opisać sposób poprawnego wyłączania Raspberry Pi oraz w jaki sposób uruchomić watchdoga w Raspberry pi.

Poprawne wyłączenie


W tej części chciałby zaprezentować w jaki sposób wykonać poprawne wyłączenie oraz poprawne ponowne uruchomienie płytki. 

piątek, 5 maja 2017

C - Makro assert()

Ten post chciałbym poświęcić na opisanie makra assert, które pozwalają na sprawdzanie danych jakie są podawane do funkcji, obliczeń.

Makro sprawdza czy dane wyrażenie jest różne od 0, jeśli nie, to program zostanie zatrzymany. Jest ono zdefiniowane w bibliotece assert,h, bądź można przygotować jego własną implementację.

wtorek, 2 maja 2017

C - Wskaźniki zastosowanie

W tym poście chciałbym przedstawić kilka krótki zastosowań wskaźników.

Poruszone zostaną następujące zagadnienia: przesłanie łańcucha znakowego do funkcji, przekazywanie wskaźnika do funkcji, przekazywanie tablicy oraz wskaźnika do tablicy do funkcji, zwracanie wskaźnika przez funkcje.

sobota, 22 kwietnia 2017

C - Przydatne rady oraz pułapki dla programowania mikrokontrolerów

Ten post chciałbym poświęcić na opisanie kilku przydatnych elementów, rad, pułapek jakie można spotkać podczas programowania w C.

Instrukcja If:


Instrukcja warunkowa if nie wymaga opisania, należy przy niej pamiętać, że w przypadku takiej instrukcji:

  1. int i;
  2. if(i)
  3. {
  4.     //........
  5. }

wtorek, 18 kwietnia 2017

[4] ATxmega - Zapis danych do pamięci EEPROM

W tym poście chciałbym opisać sposób zapisu oraz odczytu danych z pamięci EEPROM mikrokontrolera ATXmega.

Krótki dokument od Atmela można znaleźć pod tym linkiem.

Dostęp do EEPROMu jest zapewniony przez kontroler NVM. Jest on także wykorzystywany aby uzyskać dostęp do fuse oraz lock bitów. Podczas korzystania z kontrolera należy się upewnić, że nie wykonuje on innych operacji. Wykonuje się to poprzez sprawdzenie bitu NVMBUSY w rejestrze STATUS.

piątek, 14 kwietnia 2017

[V] STM32F429I - Projekt - Zegar RTC, Wyświetlacz, Touchpad

Ten post poświęcę na przygotowanie programu obsługującego zegar czasu rzeczywistego w mikrokontrolerze STM32F429I. Do projektu dodatkowo zostanie dołożona obsługa wyświetlacza oraz touchpada w oparciu o biblioteki HAL'a.

Kwarc:


Jeśli chodzi o źródło taktowania układu to możliwe są dwa rozwiązania, kwarc wewnętrzny oraz zewnętrzny. Oba o wartościach 32.768 kHz. W obu płytkach discovery (STM32F407VG oraz STM32F429I) kwarc zewnętrzny nie został zamontowany, zostało na niego tylko przygotowane miejsce.

sobota, 8 kwietnia 2017

C# - Program komunikacyjny po Usarcie wersja V1.1

Tym razem chciałem przedstawić trochę zmienioną wersję programu komunikacyjnego po porcie COM.

Zmianie  uległ sposób wprowadzania danych oraz zostało dodane rysowanie wykresów dla procesora oraz dla portu COM. Usunąłem też dodatkowe zakładki, będą one dodawane w kolejnych wersjach programu.

Wykres danych od USART-u:


Tutaj w pierwszej kolejności został przygotowany program testowy dla Arduino Uno. Prezentuje się on następująco:

poniedziałek, 3 kwietnia 2017

[12] STM32F7 - ESP8266 cz. 3. Konfiguracja komend TCP/IP, zebrany kod

W tym poście chciałbym przedstawić komendy dotyczące TCP/IP dla układu ESP. Na końcu tego postu znajduje się pełna biblioteka z opisanym w trzech częściach kodem.

Komendy dotyczące TCP/IP:


AT+CIPSTATUS - (format: AT+CIPSTATUS) - sprawdza status połączenia. Nie podaje się do niej żadnego parametru. Należy tylko obsłużyć zwracane przez nie wartości. Są one w formacie:

[12] STM32F7 - ESP8266 cz. 2. Konfiguracja komend Wifi

Ten post będzie rozwinięciem poprzedniego dotyczącego mikrokontrolera ESP8266

Komendy Wifi


AT+CWMODE - (format: AT+CWMODE=[1..3]) - ustawienie trybu pracy Wifi. Do wyboru jest tryb klienta (1 ang. station mode), tryb dostępu (2 - ang. access point), czyli tworzona jest własne urządzenie do którego można się połączyć poprzez sieć wifi oraz połączenie obu trybów (3).

  1.         case Command_AT_CWMODE:
  2.             if(Wifi_Mode_Station == param || Wifi_Mode_Ap == param || Wifi_Mode_Ap_Station == param)
  3.             {
  4.                 sprintf(dane, "AT+CWMODE=%u", param);
  5.                 UART_SENDSTRING(ESP8266_USART, dane, CR_LF);
  6.             }
  7.         break;

[12] STM32F7 - ESP8266 cz.1 Konfiguracja USART-u oraz podstawowe komendy

Poniżej chciałbym przedstawić kod obsługujący ESP8266 po komendach AT na płytce STM32F7 Discovery. Dane przesyłane są przez UART, ja wybrałem UART7. Testowanie układu odbyło się na module ESP-WROOM-02.

Rys. 1. Układ ESP-WROOM-02 [elty]

sobota, 25 marca 2017

[11] PCB - STM32F4, płytka prototypowa

Ten post chciałbym poświęcić na przedstawienie projektu płytki prototypowej dla mikrokontrolera STM32F4. 

Schemat:


Podstawowa część to oczywiście sam mikrokontroler wraz z wyprowadzonymi sygnałami:

poniedziałek, 13 marca 2017

C# - Usart, program komunikacyjny.

W tym poście chciałbym przedstawić program, który pozwoli na odbieranie danych z układu USART. Tutaj do testów wykorzystam arduino. Dane będą wyświetlane na ekranie w oknie standardowym czyli jak dla programu Terminal bądź innych tego typu. W kolejnym poście przedstawię w jaki sposób wykonać rysowanie wykresu dla danych odpowiednio sformatowanych dla USART'u.

Przedstawiony poniżej program jest wersją wstępną, prototypową, która w kolejnych postach będzie coraz bardziej rozwijana i będą do niej dodawane kolejne elementy.

Program dla Arduino:

[1] PSOC4 - CY8CKIT-049-42xx - Uart, Capsense, LCD2x16

Ten post będzie krótkim projektem jaki wykonałem na nowych dla mnie mikrokontrolerach PSOC4. W obsłudze poprzez wbudowane biblioteki są one niezwykle proste.

Po zainstalowaniu środowiska i włączeniu czystego projektu można rozpocząć pracę z układem. Dosyć dużo informacji można znaleźć na youtubie na kanale Future Electronics. Ja tutaj przedstawię tylko kod programu oraz opis poszczególnych bloków, przynajmniej tych z których ja korzystałem.

piątek, 10 marca 2017

PCB - Projektowanie USB

Ten post chciałbym poświęcić na opisanie sposobu wykonania złącza USB na płytce drukowanej. Te zagadnienia zawierają dwie rzeczy, pierwsza dotyczy filtrowania zasilania, które w przypadku USB jest niezwykle istotne.

Sygnały przesyłane przez USB na linii danych znajdują się się w przeciwnych stanach. Oznacza to że dobrym pomysłem było by poprowadzenie ich na płytce jako pary różnicowej. Najlepiej byłoby je poprowadzić bardzo blisko siebie tak aby ich długości były w miarę jednakowe. Poprzez kontrolę impedancji tych ścieżek zredukuje się także możliwość odbić sygnałów czy występowania innych zakłóceń podczas transmisji danych. Jeśli stosowane będzie zabezpieczenie ESD to najlepszym rozwiązaniem jest umieszczenie tego komponentu jak najbliżej ścieżki a najlepiej bezpośrednio na niej. Dodatkowo dla linii danych należy pamiętać o w miarę krótkim prowadzeniu sygnałów bez ostrych kątów. Dobrym rozwiązaniem jest także otoczenie ich polem masy.

środa, 8 marca 2017

[7] Atmega328P - Karty Unique, układ EM4095

Ten post chciałbym poświęcić na opisanie sposobu podłączenia układu EM4095 do mikrokontrolera Atmega328p zamontowane na płytce Arduino Nano.

Standard Unique:


Poniżej przedstawię tylko skrótowo najważniejsze informacje. Większą ilość wiedzy można znaleźć np. na tej stronie.

Jest to najprostszy oraz najbardziej podstawowy standard RFID. Pozwala na odczyt kart z odległości kilku cm do 0,5 metra. Karty mają możliwość wyłącznie odczytu ich przez użytkownika,

niedziela, 26 lutego 2017

[12] STM32F4 - CubeMx - USB podłączenie pendriva

Ten post dotyczy obsługi pendriva za pomocą mikrokontrolera STM32F4 zamontowanego na płytce Discovery. Przygotowany program będzie tworzył na pendrivie plik tekstowy, do którego wprowadzone zostaną dane.

Aby tego dokonać należy jeszcze zakupić kabel USB OTG, który z jednej strony ma złącze microUSB, które można podłączyć do płytki Discovery, z drugiej natomiast jest wyposażone w złącze USB żeńskie do którego zostaje podłączony pendrive.

Poniżej przykładowy link do sklepu z takim kablem. Jest on w każdym sklepie z takimi akcesoriami w różnych wariantach cenowych, jakościowych jak i o różnym wyglądzie (w postaci kabla, bądź jednolitej wtyczki).

adapter Unitek Y-C438
Zdjęcie pobrane ze strony: www.euro.com.pl

[11] STM32F4 - CubeMx - USB VCP

W tym poście chciałbym przedstawić sposób wykonania Virtual Com Port z wykorzystanie układu Discovery.

[Źródło: http://www.st.com/en/evaluation-tools/stm32f4discovery.html]

piątek, 24 lutego 2017

[6] Atmega328p - USART

Ten post poświęcę na opisanie sposobu komunikacja za pośrednictwem USART-u w mikrokontrolerze ATmega328p. Zostaną przedstawione zarówno funkcje wysyłające jak i odbierające dane. Po drobnych przeróbkach powinna ona działać z większość procesorów z tej rodziny.

wtorek, 14 lutego 2017

C - Poprawne wykorzystywanie funkcji sizeof

W tym poście chciałbym krótko opisać poprawny sposób wykorzystywanie operatora sizeof w kontakcie z tablicami.

Funkcja sizeof określa wielkość danego argumentu, który jest prezentowany w bajtach. Wartość zwracana jest stała, może ona zostać przygotowana przez program na etapie kompilacji. 

piątek, 10 lutego 2017

[5] Atmega328p - Watchdog

Ten post chciałbym poświęcić na przedstawienie konfiguracji Watchdoga w mikrokontrolerze ATmega328p.

Watchdog taktowany jest oddzielnym zegarem 128kHz. Pozwala na generowanie przerwań czy reset mikrokontrolera. 

Rejestry konfiguracyjne zostały opisane w dokumentacji na stronie 54. 


 W rejestrze konfiguracyjnym można ustawić takie parametry jak: