R. Molina-Robles, R. García-Ramírez, A. Chacón-Rodríguez, R. Rímolo-Donadío, A. Arnaud
{"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}
引用次数: 0
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.