{"id":4933,"date":"2021-01-13T11:19:51","date_gmt":"2021-01-13T11:19:51","guid":{"rendered":"http:\/\/fastbitlab.com\/?p=4933"},"modified":"2023-09-08T12:46:00","modified_gmt":"2023-09-08T07:16:00","slug":"stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/","title":{"rendered":"STM32 I2C Lecture 56: I2C transfer sequence diagram for slave transmitter"},"content":{"rendered":"<div class=\"boldgrid-section\" style=\"background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"container\">\n<div class=\"row\" style=\"padding-top: 50px; padding-bottom: 0px; background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"col-md-1 col-sm-12 col-xs-12 col-lg-1\">\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"col-md-10 col-sm-12 col-xs-12 col-lg-10\">\n<h1 class=\"\" style=\"text-align: center; font-size: 32px; border-width: 0px; line-height: 46px;\"><span style=\"color: #000080;\">I2C transfer sequence diagram for slave transmitter<\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\" style=\"border-width: 0px; margin-top: -25px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<div>\n<p>&nbsp;<\/p>\n<div class=\"bg-hr bg-hr-10 color2-color\" style=\"border-style: solid; border-width: 0px 0px 3px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"row bg-editor-hr-wrap\">\n<hr>\n<\/div>\n<p class=\"\" style=\"font-size: 20px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><strong>Transfer Sequence Diagram for Slave Transmitter (7-bit)<\/strong><\/span><\/p>\n<figure id=\"attachment_4935\" aria-describedby=\"caption-attachment-4935\" style=\"width: 1695px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-4935 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-1-6.png\" alt=\"I2C transfer sequence diagram for slave transmitter\" width=\"1695\" height=\"816\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6.png 1695w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-300x144.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-768x370.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-1024x493.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-600x289.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-120x58.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-500x241.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-200x96.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-400x193.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-800x385.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6-1200x578.png 1200w\" sizes=\"(max-width: 1695px) 100vw, 1695px\" \/><figcaption id=\"caption-attachment-4935\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. Transfer sequence diagram for the slave transmitter.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 22px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><b>Steps to send the data from slave to master:<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">1. Initiation of Read Transaction by the Master.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">2. Master Generates the Start Condition (S)<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">3. Master is going to generate the address phase (Address).<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">4. <\/span>During the Address Phase, Slave Sends ACK (A), Triggering Event EV1:<\/span><\/p>\n<ul class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"color: #000000;\">EV1 signifies the setting of the ADDR flag (ADDR = 1), indicating an address match.<\/span><\/li>\n<li><span style=\"color: #000000;\">For the master, EV1 denotes an address sent event; for the slave, it&#8217;s an address matched event.<\/span><\/li>\n<li><span style=\"color: #000000;\">ADDR flag sets the clock low, and the master waits for the slave to release it, cleared by software.<\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">5.<\/span><span style=\"color: #000000;\">After ADDR flag clears, Event EV3-1 Occurs:<\/span><\/p>\n<ul class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"color: #000000;\">EV3-1 sets the TXE flag (TXE = 1), indicating empty shift\/data registers and stretched SCL to prevent underrun.<\/span><\/li>\n<li><span style=\"color: #000000;\">TXE flag also enables data loading into the register for transmission.<\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">6.&nbsp;<span style=\"font-weight: 400;\">The master sends an ACK after receiving the data from the slave to indicate that the master wants one more data. That\u2019s why the slave sends more data and receives ACK from the master, as shown in Figure 1.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">7.&nbsp;<span style=\"font-weight: 400;\">Remember that the EV3 happens after receiving the ACK. That means the TXE flag will be set only if the master ACKs successfully. Otherwise, the TXE will not be set.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">8.Master Sends NACK (NA) for the Last Data Byte, Resulting in Event EV3-02:<\/span><\/p>\n<ul class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"color: #000000;\">EV3-02 signifies AF = 1 (Acknowledgment Failure).<\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">9.&nbsp;<span style=\"font-weight: 400;\">Master generates the stop condition (P).<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Whenever the slave receives NACK, that\u2019s an indication for the slave to stop sending more data to the master, and the slave must conclude the end of data transfer to the master. <\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Remember that whenever the slave is transmitting, the ACK failure is the end of the data transfer.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">&nbsp;<\/span><\/p>\n<p class=\"\" style=\"font-size: 20px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><strong>Transfer Sequence Diagram for Slave Receiver (7-bit)<\/strong><\/span><\/p>\n<figure id=\"attachment_4936\" aria-describedby=\"caption-attachment-4936\" style=\"width: 1597px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-4936 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-2-6.png\" alt=\"I2C transfer sequence diagram for slave transmitter\" width=\"1597\" height=\"961\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6.png 1597w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-300x181.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-768x462.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-1024x616.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-600x361.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-120x72.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-500x301.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-200x120.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-400x241.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-800x481.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-6-1200x722.png 1200w\" sizes=\"(max-width: 1597px) 100vw, 1597px\" \/><figcaption id=\"caption-attachment-4936\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Transfer sequence diagram for the slave receiver.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 25px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 33px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><b>Steps:<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">1. In the slave receiver, the master has to generate the write transaction.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">2.&nbsp;<span style=\"font-weight: 400;\">Master first generates the start condition.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">3.&nbsp;<span style=\"font-weight: 400;\">Master generates the address phase.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">4.<span style=\"font-weight: 400;\">The ADDR is set to 1, and the clock will be stretched.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">5.&nbsp;<span style=\"font-weight: 400;\">The moment the slave clears the ADDR flag, the data will be received from the master.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">6.&nbsp;<span style=\"font-weight: 400;\">Slave ACKs for the data received.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">7.<span style=\"font-weight: 400;\">Once the slave sends ACK, the EV2 will be set. EV2 is nothing but the setting of RXNE to 1.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">8.&nbsp;<span style=\"font-weight: 400;\">When EV2 occurs, the driver should send the event to the application saying one byte is ready.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">9.&nbsp;<span style=\"font-weight: 400;\">The software reads the data.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">10.&nbsp;<span style=\"font-weight: 400;\">When the master receives the last byte, the slave sends ACK, and the event EV2 occurs. At the same time, the stop condition is generated by the master to indicate that it doesn\u2019t want more data.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Once the master generates the stop condition, the EV4 happens. The EV4 is nothing but the detection of the stop. That means the stop flag will be set to 1. <\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">The STOPF=1 is an indication for the slave that the master has ended the write transaction. If the slave detects the stop flag while receiving the data, then it is an end of data reception for the slave.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Also, note that the STOPF flag sets only in slave receiver mode but not in slave transmitter mode. The STOPF is not applicable to the master.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">When a slave is transmitting data, the stop flag doesn\u2019t appear. Look at Figure 1. There is no stop flag mentioned in that. Therefore, in the slave transmitter, AF=1 is an indication of the end of the slave transmitting the data.<\/span><\/p>\n<p class=\"\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><strong>Events and Actions Summary:<\/strong><\/span><\/p>\n<ul class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"color: #000000;\"><strong>EV1:<\/strong> Address Match Event. ADDR flag set by slave when address matches, clock stretched.<\/span><\/li>\n<li><span style=\"color: #000000;\"><strong>EV3-1:<\/strong> TXE Flag Set, Indicates Data Ready for Transmission.<\/span><\/li>\n<li><span style=\"color: #000000;\"><strong>EV3:<\/strong> Data Ready for Transmission, Occurs After Master Acknowledges.<\/span><\/li>\n<li><span style=\"color: #000000;\"><strong>EV3-02:<\/strong> AF = 1 (Acknowledgment Failure), Master Sends NACK.<\/span><\/li>\n<li><span style=\"color: #000000;\"><strong>EV4:<\/strong> STOPF = 1 (Stop Detection), Indicates End of Data Reception in Slave Receiver.<\/span><\/li>\n<\/ul>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Different events and actions to be taken when they occur are listed as follows:<\/span><\/p>\n<p class=\"\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-4938\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/1-1.png\" alt=\"\" width=\"658\" height=\"251\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/1-1.png 658w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/1-1-300x114.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/1-1-600x229.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/1-1-120x46.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/1-1-500x191.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/1-1-200x76.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/1-1-400x153.png 400w\" sizes=\"(max-width: 658px) 100vw, 658px\" \/><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In the following article, let&#8217;s explore the topic<\/span> <span style=\"color: #ff6600;\"><a style=\"color: #ff6600;\" href=\"http:\/\/fastbitlab.com\/stm32-i2c-lecture-57-i2c-slave-support-in-driver\/\" target=\"_blank\" rel=\"noopener\">I2C slave support in driver<\/a>.&nbsp;<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #800080;\"><strong>Get the I2C full course on<\/strong><span style=\"color: #0000ff;\"> <a style=\"color: #0000ff;\" href=\"https:\/\/www.udemy.com\/course\/mastering-microcontroller-with-peripheral-driver-development\/\">Here<\/a>.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 19px; line-height: 29px;\"><span style=\"color: #000080;\"><b>FastBit Embedded Brain Academy Courses<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px;\"><span style=\"color: #000000;\">Click here:&nbsp;<\/span><span style=\"color: #0000ff;\"><a style=\"color: #0000ff; text-decoration: underline;\" href=\"http:\/\/fastbitlab.com\/course1\" target=\"_blank\" rel=\"noopener\">https:\/\/fastbitlab.com\/course1<\/a><\/span><\/p>\n<div class=\"mceTemp\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; I2C transfer sequence diagram for slave transmitter &nbsp; &nbsp; Transfer Sequence Diagram for Slave Transmitter (7-bit) &nbsp; Steps to send the data from slave to master: 1. Initiation of Read Transaction by the Master. 2. Master Generates the Start Condition (S) 3. Master is going to generate the address phase (Address). 4. During the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4935,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[23],"class_list":["post-4933","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-stm32-i2c-lectures","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>I2C transfer sequence diagram for slave transmitter | STM32 I2C<\/title>\n<meta name=\"description\" content=\"I2C transfer sequence diagram for slave transmitter. Learn about events like ACKs, address matching, &amp; stop conditions in the I2C data\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"I2C transfer sequence diagram for slave transmitter | STM32 I2C\" \/>\n<meta property=\"og:description\" content=\"I2C transfer sequence diagram for slave transmitter. Learn about events like ACKs, address matching, &amp; stop conditions in the I2C data\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/\" \/>\n<meta property=\"og:site_name\" content=\"FastBit EBA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fastbiteba\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-13T11:19:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-08T07:16:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1695\" \/>\n\t<meta property=\"og:image:height\" content=\"816\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"FastBitLab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:site\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"FastBitLab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32 I2C Lecture 56: I2C transfer sequence diagram for slave transmitter\",\"datePublished\":\"2021-01-13T11:19:51+00:00\",\"dateModified\":\"2023-09-08T07:16:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/\"},\"wordCount\":734,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-6.png\",\"keywords\":[\"STM32 I2C Lectures\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/\",\"name\":\"I2C transfer sequence diagram for slave transmitter | STM32 I2C\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-6.png\",\"datePublished\":\"2021-01-13T11:19:51+00:00\",\"dateModified\":\"2023-09-08T07:16:00+00:00\",\"description\":\"I2C transfer sequence diagram for slave transmitter. Learn about events like ACKs, address matching, & stop conditions in the I2C data\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-6.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-6.png\",\"width\":1695,\"height\":816},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32 I2C Lecture 56: I2C transfer sequence diagram for slave transmitter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"name\":\"FastBit EBA\",\"description\":\"Your Online Academy of Embedded Systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\",\"name\":\"FastBit EBA\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"width\":640,\"height\":640,\"caption\":\"FastBit EBA\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fastbiteba\\\/\",\"https:\\\/\\\/x.com\\\/fastbiteba\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fastbit-embedded-brain-academy-b3167b124\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCa1REBV9hyrzGp2mjJCagBg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\",\"name\":\"FastBitLab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"caption\":\"FastBitLab\"},\"description\":\"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"I2C transfer sequence diagram for slave transmitter | STM32 I2C","description":"I2C transfer sequence diagram for slave transmitter. Learn about events like ACKs, address matching, & stop conditions in the I2C data","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/","og_locale":"en_US","og_type":"article","og_title":"I2C transfer sequence diagram for slave transmitter | STM32 I2C","og_description":"I2C transfer sequence diagram for slave transmitter. Learn about events like ACKs, address matching, & stop conditions in the I2C data","og_url":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2021-01-13T11:19:51+00:00","article_modified_time":"2023-09-08T07:16:00+00:00","og_image":[{"width":1695,"height":816,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6.png","type":"image\/png"}],"author":"FastBitLab","twitter_card":"summary_large_image","twitter_creator":"@fastbiteba","twitter_site":"@fastbiteba","twitter_misc":{"Written by":"FastBitLab","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32 I2C Lecture 56: I2C transfer sequence diagram for slave transmitter","datePublished":"2021-01-13T11:19:51+00:00","dateModified":"2023-09-08T07:16:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/"},"wordCount":734,"commentCount":5,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6.png","keywords":["STM32 I2C Lectures"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/","url":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/","name":"I2C transfer sequence diagram for slave transmitter | STM32 I2C","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6.png","datePublished":"2021-01-13T11:19:51+00:00","dateModified":"2023-09-08T07:16:00+00:00","description":"I2C transfer sequence diagram for slave transmitter. Learn about events like ACKs, address matching, & stop conditions in the I2C data","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-6.png","width":1695,"height":816},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/stm32-i2c-lecture-56-i2c-transfer-sequence-diagram-for-slave-transmitter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32 I2C Lecture 56: I2C transfer sequence diagram for slave transmitter"}]},{"@type":"WebSite","@id":"https:\/\/fastbitlab.com\/blog\/#website","url":"https:\/\/fastbitlab.com\/blog\/","name":"FastBit EBA","description":"Your Online Academy of Embedded Systems","publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fastbitlab.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fastbitlab.com\/blog\/#organization","name":"FastBit EBA","url":"https:\/\/fastbitlab.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","width":640,"height":640,"caption":"FastBit EBA"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fastbiteba\/","https:\/\/x.com\/fastbiteba","https:\/\/www.linkedin.com\/in\/fastbit-embedded-brain-academy-b3167b124\/","https:\/\/www.youtube.com\/channel\/UCa1REBV9hyrzGp2mjJCagBg"]},{"@type":"Person","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d","name":"FastBitLab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","caption":"FastBitLab"},"description":"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries."}]}},"_links":{"self":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/comments?post=4933"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4933\/revisions"}],"predecessor-version":[{"id":15870,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4933\/revisions\/15870"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/4935"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=4933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=4933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=4933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}