- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Dear Intel and Edison Community,
I tried to use the Edison MCU in my project to perform low level tasks such as receiving and processing packets from UART but I've encountered some problems.
The MCU API is really poor: only 3 functions to work with UART - https://software.intel.com/en-us/node/557355# APIs_to_access_UART MCU API | Intel® Developer Zone.
In the API description it is told that only UART 2 works on MCU, but it doesn't! UART 1 works instead but not fine: I could send some data but not receive.
What should I do if I don't know packet length? How can I receive just one byte from UART stream? No data available functions, no UART interrupts, no event timer interrupts
Sometimes I succeeded to receive something from UART but mostly it was a junk.
As I understood in Edison SoC we have Intel® Quark™ microcontroller D1000 http://www.intel.com/content/www/us/en/embedded/products/quark/mcu-d1000/quark-d1000-datasheet.html Intel® Quark™ Microcontroller D1000: Datasheet
and it has a lot of peripherals and great functionality, and of course it supports UART and Timers interrupts.
What Intel is planning about Quark MCU in Edison?
Will it be possible to use this functionality? I would like to work without Viper OS - just bare-metal applications + MCU<->CPU communication library.
In conclusion I would like to say that Edison's hardware is great but software support of MCU core is mediocre and I hope it will be improved soon!
Thanks.
Andrey Antonov,
Participant of Intel IoT Roadshow Russia (Petrozavodsk).
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hello Dronchic,
The reason why you can only use UART 1 is because according to https://software.intel.com/en-us/node/557355# APIs_to_access_UART MCU API, UART 2 is used as Linux kernel console and you have to stop this service in order to use it.
Also according to https://software.intel.com/en-us/node/557355# APIs_to_access_UART MCU API, UART parameters cannot be changed, so in that case the packet length is 8 bit. So make sure you are expecting this amount of bits and that you have set the baud rate correctly.
Regarding timer interrupts, they are not mentioned at all in the https://software.intel.com/en-us/node/557355# APIs_to_access_UART MCU API, so they are not currently supported.
I understand your concerns with the current limitations of the Edison's MCU, nevertheless, Intel is constantly working on improving their products but we will have to wait for a new version of the MCU's API that hopefully increases the features available, however there's not ETA on it.
Peter.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hello Peter,
Thank you for your answer! It was more a moan when a question - it is pity that powers of this MCU are hidden from us.
I can hardly remember last time when I used UART settings different from "8 bits, 1 stop bit, no parity" , I think it was than I was a student.
What about MMU and Viper OS? Maybe I can address peripheral registers directly? I guess no but...
Looking forward to get more powerful API that matches MCU functionality or to get bare-metal access to MCU.
Andrey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Unfortunately that's the only way to interact with the Edison's MCU right now. We will have to wait for future releases to see if additional features such are those are enabled, however as I mentioned earlier there's no ETA on these releases.
Peter.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page