Hello!
Is there any documentation available on how to use the SPI commands for the MM6108-MF08651-US module. I can’t seem to find any resources online or in the forum.
Thanks already for your help.
Best Regards,
Lucas
Hello!
Is there any documentation available on how to use the SPI commands for the MM6108-MF08651-US module. I can’t seem to find any resources online or in the forum.
Thanks already for your help.
Best Regards,
Lucas
Hi Lucus,
You find find the MM6108 data sheet (which has SDIO & SPI specs) here: https://www.morsemicro.com/download/mm6108-data-sheet-ds100/
You can also check out the Linux SPI driver for the MM6108 here: morse_driver/spi.c at main · MorseMicro/morse_driver · GitHub
Cheers,
Michael
Hi Michael,
thanks this already helps! But still, is there no real ressource where the SPI commands are documented and how a communication should be initiated with these commands?
BR Lucas
Not sure if there is a more detailed manual on how to use the SPI interface - do you know @ajudge?
What are you trying to do @LucHubFHV? Are you building a driver for a certain RTOS? I believe that a full FreeRTOS driver will be made available soon.
Thanks for your help! We are using the module in a school project. So let’s say waiting for a full release isn’t really an option, as I suspect this will take some time to release.
Our application would run a very simple state-machine or RTOS implementation and if needed we would have written the driver ourselves if the relevant resources are available.
Hope this help, if you need some other information, please feel free to reach out.
Hi Lucas,
The MM6108 is a Soft MAC chip, which means that in addition to the driver it requires a software component on the host processor known as the upper MAC. On Linux this is provided by mac80211. For embedded, MCU-based systems this is provided by the Morse Micro IoT SDK, which includes the driver and upper MAC for the MM6108 as well as example integration with the LWIP and FreeRTOS-plus-TCP network stacks.
The Morse Micro IoT SDK should provide you what you need to get your application up and running, but please reach out if you have further questions.
Best regards,
Matt
Hello Matt,
thanks for the help, I hope you had a nice time throughout the holidays. I had a look at the resources you sent me.
How I understand it is that the Morse Micro IoT SDK communicates with the Host MCU on your Reference Platforms (e.g. mm-mm6108-ekh05 or mm-ekh08-f429) with the functions specified in the SDK. I also found the functions for that use case in the WLAN HAL API for the SPI interface. These functions are used to instruct the Host MCU in your Reference Platforms to send the right SPI commands and should not even be used for development but rather only from your library.
What I can’t seem to find are the place where these functions are then used in your library to try to find out which SPI commands in need to replicate on my side as I only have the compiled library. Is there a resource available where I can see how e.g. the “mmhal_wlan_spi_write_buf” function is used in the effective use case to talk to the MM6108 chip so I could replicate it. Effectively i would need a documentation for the firmware that is running on your Host MCUs. I think that would help me the most in trying to write a driver for my chip.
Would this then be enough or would need to consider other aspects to replicate the upper MAC you where talking about on my side?
Thanks already for your help and i look forward to your reply.
BR Lucas
Hi Lucas,
I hope you likewise had a nice holiday.
How I understand it is that the Morse Micro IoT SDK communicates with the Host MCU on your Reference Platforms (e.g. mm-mm6108-ekh05 or mm-ekh08-f429) with the functions specified in the SDK. I also found the functions for that use case in the WLAN HAL API for the SPI interface. These functions are used to instruct the Host MCU in your Reference Platforms to send the right SPI commands and should not even be used for development but rather only from your library.
That’s correct. We provide a library containing the necessary driver and UMAC implementation (labeled morselib in the block diagram below). You will need to link this into the application you are developing. We provide several variants of the library, compiled for most common architectures. What platform are you using?
If we do not already provide a reference implementation for your platform (BSP shim in the block diagram), you will need to implement the appropriate HAL API functions for your platform. You will also need an RTOS – we recommend FreeRTOS as we include support for this in our SDK, but you can also take a look at GitHub - MorseMicro/mm-iot-zephyr if you are interested in Zephyr.
We recommend first getting the “porting_assistant” example application running on your platform. That will help you flush out any hardware and low-level software issues. Once that works you can integrate with your own application. Your application can use the WLAN API (defined in mmwlan.h) to manage the WLAN interface (e.g., scan, connect, etc.). You can send and receive data using your network stack of choice (LWIP is recommended, and we include a reference implementation as part of our SDK).
Kind regards,
Matt