2016-12-30 01:20 PM
Hello there,
Is there any list of STM32 devices with native ModBus support? I am trying to find a proper mcu and I have to open each datasheet by hand and ctrl+F for modbus. There has to be a better way. So far I have figured out that only the newer devices have it (ie. F0 and F7). I need something in between with modbus support.
I would appreciate all help.
#stm32 #modbus2016-12-31 03:57 AM
Yes its a very convenient functionality. The newer uart module also comes with automatic DE line toggle for RS485 mode, with adjustable toggle delay time. But please, this question is regarding the devices consisting of this functionality, not how good/ bad it is.
2016-12-31 04:47 AM
I am talking about them all the time. I need to know which devices exacly have them.
2016-12-31 08:53 AM
I am talking about them all the time. I need to know which devices exacly have them.
None of the features are really Modbus specific. And your first post was not quite specifc in this regard.
*Received/transmitted bytes are buffered in reserved SRAM using centralized DMA
Dropping the reserved SRAM, this is called FIFO. I guess this the most you can get (instead of DMA).
Once Modbus will be as heavily in use as CAN, vendors will put such stuff in hardware. That means, most probably never ...
2016-12-31 09:48 AM
Receiver timeout interrupt is quite modbus specific, but I understand that one could use it for anything. But again, that was not the question. I emphasized modbus in the topic because I thought it would be easier to realize about which features I am talking about, as in the datasheet they are linked with modbus as well. If this doesnt work, then I rephrase the question:
Is there a list of STM32 devices that consist of 'advanced' uart features, such as 'Modbus communication', but in the meaning of datasheet nomenclature and not how easy it is to implement?
Or for example, which devices consist of 'Receiver timeout register (USARTx_RTOR)'?
For example when I am at the STM32 selector site and I click to sort by parallel interface I can choose between quad spi, mmc or sdio. I need something similar for uart. The selector only allows to sort by number of available uarts, not what features they consist of. Sorry if I expressed myself wrong. Is this more clear now?
2016-12-31 10:08 AM
Thing is 'modbus' has metastasized across a whole slew of physical layers.
I don't see it becoming a 'peripheral' because a) there are likely to be IP costs, licenses and patents, b) it is niche and splintered. It's why people build stuff using CAN or Ethernet so as not to reinvent new bus protocols on legacy peripherals with sketchy support/compatibility.
ST isn't going to spin new features into old designs. Whatever support it is you are looking for is only likely to be in newer family/series devices, or is achievable with general functionality already provided. ST has gone for very generic and simple peripheral design, the DMA for the USART has been very general (same controller works for SPI, I2C, TIM, etc), and the USART have a single holding buffer with no depth or FIFO
2016-12-31 10:33 AM
Thats perfectly fine, I dont need ST to implement any new features in older chips. I just need a table which will tell me which parts exacly are 'new' and 'old'.
2017-01-05 07:45 AM
I also had this problem. I think need to improve product selector tools.
2017-01-09 10:36 AM
Hi STM32F072 has this feature. Why CubeMx is assigning only one pin to for communication in case I choose modbus? is this a bug?
2017-01-11 08:51 AM
Hi
Maioli.Francesco
,This is not a bug ! In modbus mode, only one pin is enabled, as mentioned in the RM0091 'USART functional description' section :
The following pin is required in RS485 Hardware control mode:
DE: Driver Enable activates the transmission mode of the external transceiver.Regards
Imen
2017-01-11 09:09 AM
Thanks for your feedback. The CubeMX is working perfectly with RS485 Hw control mode, by assigning the DE, TX and RX pins (-> DE, DI, RO pins to be connected to any transceiver): it is easy to me to connect to a transceiver and then use software library for modbus communication.
But setting CubeMX USART1 in Modbus mode , the project generated is including only the TX pin.
Cannot figure out how to connect to a transceiver for the RS485 physical layer. Could you help me? I am still convinced that it's not good