This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
during working on a research about using ethernet as a communication plattform for sensor data I got in touch with AM243x family of SITARA ARM microcontrollers. It was due to my focus on searching an solution to possibly join TSN in future. I noticed that AM243x could be a good solution: It combines small size for a board that is part of the sensor hardware itself and a very impressing solution with PRU-ICSSG to be able to be a full member of TSN even at speeds of 1 Gbit/s.
So I dived deeper into documentation of AM2434 with focus on a bare metal system for software as it seems to me oversized to use an Embedded Linux system in that case.
Currntly I'm at the point of missing some information in "spruim2c.pdf", the user manual of AM243x. I noticed that every peripheral unit on chip carrys a Vendor ID and a Device ID. Usually this is used in operration systems like Linux to detect which driver is neccessary to install to use that peripheral unit. But when a bare metal software system is used I found some information missing to be able to create adapted device driver by my own. Two examples given here:
When reading through description of ethernet interface I found several hints in text about some fifo structures that are destinated to carry data packets ready to send or just received. But I was confused about where to find them in memory or how to access them from software. I would be rather glad to find a description about how to manage a new data packet freshly assembled by software to go its way from memory through switch to phy and finally running over the wires to host direction. Maybe I missed a adequate description being provided with earlier members of SITARA family so I would be glad about a hint where to find something like that.
Another point was USB peripheral. Unfortunately the statement on page 6938 in chapter 12.2.4.5 was: "Details on the USB controller registers are not provided in this TRM. The existing Linux or RTOS drivers should be used for proper USB operation. ...". Where to find this exact description of registers and hardware functionality if You don't want to used drivers from Linux or other RTOS? Of course one could reengineer given drivers of Linux or RTOS but this will take time and could be easily the source of misunderstanding about the correct way of how to use USB interface.
Currently I keep on to read this user manual of AM2434 ...
Thanks!
Hi Martin,
Thanks for your query and very glad to see you finding AM243x fit for your application.
Regarding your query, my suggestion would be use existing RTOS drivers as a reference instead of going through user manual. This is because of vast amount of information present in the IP chapters as modules CPSW, USB, PCIe are very complex. For example - for scenario you mentioned for about CPSW FIFOs - these FIFO memories are not directly accessible to user and integrated DMA for CPSW pushes and pulls data from these FIFOs and puts into the user memory for application access.
I would also want to highlight about gaps (like missing chapters) in our TRM which team is currently working on.
Can you please download the AM243x MCU+ SDK, and refer to driver user guides?
AM243x MCU+ SDK: Enet LLD Introduction
AM243x MCU+ SDK: Enet Integration Guide
As you can see, we do have TSN (timesync, EST) examples in the SDK -
AM243x MCU+ SDK: Networking (ti.com)
Regards,
Prasad
Hello Prasad,
ok, I will follow the way You suggested. As I currently can not invest 100 % of myself as a ressource into this it may last a while to come back if there remain more questions.
Thank You very much!
Regards
Martin
Hi Martin,
You are welcome!
Please take your time. You can create new e2e tickets for your queries once you get started so we can add right experts to help you!
All the best!
Regards,
Prasad