R. Molina-Robles, R. García-Ramírez, A. Chacón-Rodríguez, R. Rímolo-Donadío, A. Arnaud
{"title":"通用RISC-V微控制器中软件模拟I2C I/O模块的底层算法","authors":"R. Molina-Robles, R. García-Ramírez, A. Chacón-Rodríguez, R. Rímolo-Donadío, A. Arnaud","doi":"10.1109/urucon53396.2021.9647309","DOIUrl":null,"url":null,"abstract":"To date, I2C is a protocol that has a lot of use on microcontroller applications. Implementing the hardware for a I2C controller affects directly chip size, cost and time development in VLSI projects. To save on these aspects, we have used hardware emulation by software to recreate the I2C behavior through GPIO ports in a RISC-V microcontroller of our own. This paper proposes a flexible and practical low-level algorithm that replaces a physical I2C controller, to be able connect an I2C peripheral device to its driver code inside the microcontroller using GPIO ports as channels. An explanation of the application is described, along with the code structure and the logic behind the algorithm. At the end, this paper presents results with a brief analysis of its benefits and future improvements.","PeriodicalId":337257,"journal":{"name":"2021 IEEE URUCON","volume":"39 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Low-level algorithm for a software-emulated I2C I/O module in general purpose RISC-V based microcontrollers\",\"authors\":\"R. Molina-Robles, R. García-Ramírez, A. Chacón-Rodríguez, R. Rímolo-Donadío, A. Arnaud\",\"doi\":\"10.1109/urucon53396.2021.9647309\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"To date, I2C is a protocol that has a lot of use on microcontroller applications. Implementing the hardware for a I2C controller affects directly chip size, cost and time development in VLSI projects. To save on these aspects, we have used hardware emulation by software to recreate the I2C behavior through GPIO ports in a RISC-V microcontroller of our own. This paper proposes a flexible and practical low-level algorithm that replaces a physical I2C controller, to be able connect an I2C peripheral device to its driver code inside the microcontroller using GPIO ports as channels. An explanation of the application is described, along with the code structure and the logic behind the algorithm. At the end, this paper presents results with a brief analysis of its benefits and future improvements.\",\"PeriodicalId\":337257,\"journal\":{\"name\":\"2021 IEEE URUCON\",\"volume\":\"39 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-11-24\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2021 IEEE URUCON\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/urucon53396.2021.9647309\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 IEEE URUCON","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/urucon53396.2021.9647309","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Low-level algorithm for a software-emulated I2C I/O module in general purpose RISC-V based microcontrollers
To date, I2C is a protocol that has a lot of use on microcontroller applications. Implementing the hardware for a I2C controller affects directly chip size, cost and time development in VLSI projects. To save on these aspects, we have used hardware emulation by software to recreate the I2C behavior through GPIO ports in a RISC-V microcontroller of our own. This paper proposes a flexible and practical low-level algorithm that replaces a physical I2C controller, to be able connect an I2C peripheral device to its driver code inside the microcontroller using GPIO ports as channels. An explanation of the application is described, along with the code structure and the logic behind the algorithm. At the end, this paper presents results with a brief analysis of its benefits and future improvements.