Archive for the ‘RS485’ Category.

Simple Rh, T and p sensor with UART communication

The Pressure, temperature and humidity sensor based on MS5637 HDC1080 originally (Rev. 2) operates via RS485 interface and multidrop HDLC-like protocol.  I decided to simplify this for use with Raspberry Pi, arduion or any other mass platforms. First, I took away the RS485 transceiver and second, I simplified the communication.

First adaptation was easy:

Remove RS485 driver and connect Rx/Tx to A/B

Continue reading ‘Simple Rh, T and p sensor with UART communication’ »

Pressure, temperature and humidity sensor based on MS5637 HDC1080 Rev.2

Gal ordered some PCBs from PCB-Way a while ago. It was multiproject panel with several PCBs. One of the modules was double sided revision of the Pressure, temperature and humidity sensor based on MS5637 HDC1080 which was posted while ago.

Pressure, temperature and humidity sensor based on MS5637 HDC1080

Continue reading ‘Pressure, temperature and humidity sensor based on MS5637 HDC1080 Rev.2’ »

USB/RS485 converter on a double sided PCB

USB/RS485 module on a single sided board worked successfully for several months. The code is now stable and I decided to order small batch of double sided PCBs for this project. Here is documentation:

RS485/USB interface on a double sided board

RS485/USB interface on a double sided board

Continue reading ‘USB/RS485 converter on a double sided PCB’ »

UV index sensor with RS485 interface

This is another sensor in weather-sensor series. It is based on silabs Si1133.

Schematic:

uvindexsch

Si1133 Sensor schematic with RS485 interface

Continue reading ‘UV index sensor with RS485 interface’ »

Source code generator for Command Line Interpreter (CLI)

Microcontroller with serial bus or USB CDC (virtual COM port) is usually connected to some terminal. User then type commands and firmware in the microcontroller interprets entered commands.

Developing simple interpreter is not very scientific task, more like PITA with repeating chunks of the code. After couple of successful projects with such interpreter I can say my code is somehow tested and proven in the practice. Now I prepared one application which can shorten development process and make my life easier when I start application in new device.

The source code generator generates only command line interpreter. It provides all identifiers for selected commands, provides function prototypes for each command and text template for help. Finally only the functions for executing specific commands should be then implemented.

The final application can be either multi-threaded with RTOS, or flat single thread. In both cases, there should be some function or ISR checking for new char and feeding this char to the command line editor. When new line “arrives”, the function cmd_proc() is called and then the magic happens.

cli1

General structure of the caller thread or application

Continue reading ‘Source code generator for Command Line Interpreter (CLI)’ »

Pressure, temperature and humidity sensor based on MS5637 HDC1080

This is anothe small module to measure air pressure, temperature and humidity. Two sensors are on-board: MS5637 and HDC1080. Microcontroller is small cortex M0 in TSSOP-20 housing from STM: STM32F070CxP. The SN65HVD72DGKR provides RS485 interface functionality with half duplex mode. Voltage regulator, reverse polarity protection and some LED indicators are provided on-board. Complete module is 10x55mm, produced on single-sided PCB, easily producible in every home lab with proto-PCB capability.

RH, T and air pressure sensor with RS485

RH, T and air pressure sensor with RS485

Continue reading ‘Pressure, temperature and humidity sensor based on MS5637 HDC1080’ »

USB to RS485

Testing of sensors with RS485 using PC without proper interface is not possible. Since RS232 interfaces are very rare, the interface should be hooked to USB. The interface between USB and RS485 can be soldered with one of the many FTDI interfaces with added RS485 driver, or bought as assembled module. There is always the third option. I made it from scratch.

I took smallest STM32F0 with USB and UART interface. The best thing with UART in the STM32F0 is that signal for driver enable is provided within hardware. The complete pinout of the microcontroller is:

pinout

Continue reading ‘USB to RS485’ »

Adding RS485 to FRDM-K64F

FRDM-K64F is nice piece of development board. Unfortunately, it is “bonded” to MBED development platform, which is a nightmare! Adding RS485 “out of the box” to the FRDM-K64F in MBED is NoGo. But it is very easy.

Here is image from my scope sending single char via UART4 with enabled RTS as DE for RS485 in Half Duplex mode:

scope_0

Continue reading ‘Adding RS485 to FRDM-K64F’ »