Vaisala RPM411 Radiosonde Pressure Module

      16.12.2019 Kolega z práce mi donesl na hraní modul tlakového senzoru RPM411 (sic už očesaný, bez samotného analogového tlakoměru M21A07), který by měl pocházet z meteorologické sondy Vaisala RS41-SGP. Avšak u nás se běžně vypouští varianta RS41 bez modulu, která má vše na jedné desce. Tato sem asi doletěla z Německa. Tyto meteosondy se objevily poměrně nedávno a narozdíl od předešlých modelů se zdají být použitelné i pro další účely, obsahují totiž populární MCU ARM STM32 a plnohodnotnou GPS od uBloxu, která poskytuje NMEA data místo syrových dat, z kterých se dříve musela počítat poloha v pozemní stanici. Na EEVblogu se o nich hovoří jako o ARMových vývojových kitech padajících z nebe. Hardware už byl řádně zdokumentován a zreverzován, ale o samotném modulu RPM411 jsem toho moc nenašel.

modul tlakového senzoru RPM411 modul tlakového senzoru RPM411 připojený k ST-Linku

      Vzal jsem tedy multimetr a zkusil propípat zapojení miniaturního konektoru, který jsem si očísloval dle obrázku výše. Většina pinů je k MCU STM32F100C8T6B připojena přes odpory, některé piny jsou též vyvedeny na testpointy. Je zde napájení 3,3 V, rozhraní SPI, UART a SWD na programování MCU. Také jsem zjistil zapojení LEDky, jejíž anoda je připojena přes odpor na VDD a katoda na PB.11.

pinRsport MCUalt. funkce
11 Ωkondík na zema někam dále
2100 ΩNRST 
368 ΩPA.13SWDIO
41 kΩPA.14SWDCLK
5 NC 
610 kΩPA.10USART1.RX
768 ΩPA.9USART1.TX
8 GND 
91 ΩVDD(3,3 V)
1010 kΩPA.5SPI1.SCK
1168 ΩPA.6SPI1.MISO
1210 kΩPA.7SPI1.MOSI
1310 kΩPA.0WKUP (L->H)
14 GND 
151 kΩPD.0OSC_IN
16 GND 

      Zkusil jsem tedy připojit napájení a UART přes 3,3V FTDI USB adaptér k PC. Na rychlosti 19200 jsem dostal následující výpis, který se cca po 1 vteřině opakoval stále dokola a nereagoval na posílané znaky, jako by se MCU cyklicky restartoval.


Vaisala RPM411 Radiosonde Pressure Module SW V2.01
Copyright (c) Vaisala Oyj 2017. All rights reserved.
Module serial number: P2130065
Sensor serial number: L12A22  
Parameter setup not done

>

      Dále jsem připojil programovací rozhraní SWD k ST-Linku (použil jsem vývojový kit NUCLEO-G071RB, který jsem měl zrovna po ruce), ale programová paměť byla nepřekvapivě uzamčená pro čtení. Mohl jsem tak akorát celý čip smazat a následně ochranu vypnout. Také jsem v Option Bytes nastavil bit WDG_SW, který byl o proti výchozímu stavu vypnutý. Tzn., že po zapnutí byl watchdog automaticky zapnutý a pravděpodobně on způsoboval cyklické restarty. Pokud je aktivní bit WDG_SW, musí se watchdog nejprve aktivovat softwarově. Pak jsem naprogramoval a nahrál do MCU jednoduchý prográmek, který bliká LEDkou. Více o programování MCU STM32 zde. Destičku můžu dál na něco využít stejně jako tento levný kit z eBay.


#include "../../CMSIS/CORE/INCLUDE/stm32f100xb.h" // part of STM32CubeF1 Firmware Package

void SystemInit()
{
  //leaving default, HSI 8MHz
}

int main(void)
{
  //enable clock for GPIOB peripheral
  RCC->APB2ENR|=RCC_APB2ENR_IOPBEN;
  //set pin PB11 as push-pull output
  GPIOB->CRH|=GPIO_CRH_MODE11_0;
  //infinite loop
  while (1)
    {
    //toggle pin PB11 on Output Data Register
    GPIOB->ODR^=(1<<11);
    //make some delay
    for (volatile uint32_t i=0; i<500000; i++);
    }
}




Zpět

Aktualizováno 18.12.2019 v 17:58