{"id":237,"date":"2017-11-23T00:07:03","date_gmt":"2017-11-22T23:07:03","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=237"},"modified":"2023-03-04T23:51:10","modified_gmt":"2023-03-04T22:51:10","slug":"19-i2c_m24c02-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/19-i2c_m24c02-library-stm32f4\/","title":{"rendered":"19-I2C_M24C02-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/18-i2c_lolevel-library-stm32f4\/\" title=\"18-I2C_LoLevel-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 18-I2C_LoLevel-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/20-fatfs_picture-library-stm32f4\/\" title=\"20-FATFS_Picture-Library (STM32F4)\">20-FATFS_Picture-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>-diese Library dient zum ansteuern eines M24C02 (256Byte EEprom) von einem externen Modul das per I2C an den STM32F4 angeschlossen ist.<br \/>\n(das IC ist kompatibel mit dem PCF8582)<\/p>\n<p>-auf der Hardware d\u00fcrfen die zwei externen Pull-Up Widerst\u00e4nde (je 4k7) an SCL und SDA nicht vergessen werden, sonst funktioniert das ganze nicht.<\/p>\n<p>-es k\u00f6nnen bis zu 8 M24C02 gleichzeitig an die I2C angeschlossen werden, dazu muss aber bei allen eine eindeutige Hardwareadresse eingestellt werden (mit den 3 Adresspins).<\/p>\n<p>-es wird die I2C-LoLevel-Library benutzt (mit I2C1)<\/p>\n<p><strong>Beispielbild :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/m24c02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-758\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/m24c02-300x179.jpg\" alt=\"m24c02\" width=\"300\" height=\"179\" \/><\/a><\/p>\n<p><strong>Benutzte Pins :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">SCL an PB6\r\nSDA an PB7<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : keine\r\nBenutzte Librarys : STM32_UB_I2C1<\/pre>\n<p><strong>Enumerationen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  M24C02_0 = 0xA0, \/\/ A2=0, A1=0, A0=0\r\n  M24C02_1 = 0xA2, \/\/ A2=0, A1=0, A0=1\r\n  M24C02_2 = 0xA4, \/\/ A2=0, A1=1, A0=0\r\n  M24C02_3 = 0xA6, \/\/ A2=0, A1=1, A0=1\r\n  M24C02_4 = 0xA8, \/\/ A2=1, A1=0, A0=0\r\n  M24C02_5 = 0xAA, \/\/ A2=1, A1=0, A0=1\r\n  M24C02_6 = 0xAC, \/\/ A2=1, A1=1, A0=0\r\n  M24C02_7 = 0xAE  \/\/ A2=1, A1=1, A0=1\r\n}I2C_ADR_M24C02_t;<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">ErrorStatus UB_M24C02_Init(I2C_ADR_M24C02_t slave);                             \/\/ um das EEProm zu initialisieren\r\nint16_t UB_M24C02_ReadByte(I2C_ADR_M24C02_t slave, uint8_t adr);                \/\/ um ein Byte aus dem EEprom zu lesen\r\nint16_t UB_M24C02_WriteByte(I2C_ADR_M24C02_t slave, uint8_t adr, uint8_t wert); \/\/ um ein Byte ins EEprom zu schreiben<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 07.03.2013\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.0\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der M24C02 Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_m24c02.h\"\r\n#include \"stm32_ub_led.h\"\r\n\r\nint main(void)\r\n{\r\n  ErrorStatus check;\r\n  int16_t wert;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  UB_Led_Init(); \/\/ Init aller LEDs\r\n\r\n  \/\/ init vom EEprom an I2C-1 mit Adr. 0xA2\r\n  check=UB_M24C02_Init(M24C02_1);\r\n  if(check==SUCCESS) {\r\n    UB_Led_On(LED_GREEN);\r\n\r\n    \/\/ Wert 0x12 in Adr 0x03 schreiben\r\n    UB_M24C02_WriteByte(M24C02_1,0x03,0x12);\r\n    \/\/ Wert wieder auslesen\r\n    wert=UB_M24C02_ReadByte(M24C02_1,0x03);\r\n    \/\/ auswerten ob alles OK\r\n    if(wert==0x12) {\r\n      UB_Led_On(LED_BLUE);\r\n    }\r\n    else {\r\n      UB_Led_On(LED_ORANGE);\r\n    }\r\n  }\r\n  else {\r\n    UB_Led_On(LED_RED);\r\n  }\r\n\r\n  while(1)\r\n  {\r\n\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/ub_stm32f4_i2c_m24c02_v100.zip\">ub_stm32f4_i2c_m24c02_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/Demo_19_I2C_M24C02.zip\">Demo_19_I2C_M24C02<\/a><\/p>\n<h3 id=\"comments-title\">7 Antworten auf <em>19-I2C_M24C02-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-745\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-745\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/e11693e9724c8093f2e1303f7a10e437?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Sefco<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">4. September 2013 um 13:26<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo!<br \/>\nDanke f\u00fcr diese Anleitung! Du solltest jedoch dringend erg\u00e4nzen, dass man ca. 10k Pull-up Widerst\u00e4nde zwischen SDA -&gt; Vcc und SCL-&gt; Vcc anbringen muss! Ich habe das nur auf dem Bild gesehen sonst w\u00fcrde es immer noch nicht laufen.<\/p>\n<p>Gru\u00df<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-747\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-747\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">4. September 2013 um 17:51<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Danke f\u00fcr den Hinweis, hab es erg\u00e4nzt.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-746\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-746\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">4. September 2013 um 13:41<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Sefco,<br \/>\nPB6 auf dem STMF4Discovery hat schon einen Pullup von 4,7k (siehe Schemantics)<br \/>\nes reicht also ein 4,7k Pullup am PB9.<\/p>\n<p>PB6 und PB7 (beide mit Pullups) werden f\u00fcr den Audio Chip dort benutzt.<\/p>\n<p>Im \u00fcbrigen sollte allgemein bekannt sein, dass I2C Pullups ben\u00f6tigt.<\/p>\n<p>J\u00f6rg<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-4250\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-4250\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/7fa89cf356105cf1b3d066728feb37db?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">vasa<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">20. Oktober 2015 um 11:40<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Good afternoon!<br \/>\nCan I use this library to EEPROM at24c64?<br \/>\nThank You!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4258\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-4258\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">23. Oktober 2015 um 18:09<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>no. at24c64 needs a two byte address command<br \/>\ninstead of one byte.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-4508\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-4508\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a28b52f40d8ef7edc94914c2b69e9473?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">To<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">12. Januar 2016 um 09:36<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hi,<br \/>\nw\u00fcrde das ganze auch mit einem 24C512 funktionieren?<br \/>\nvg<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4521\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-4521\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">16. Januar 2016 um 13:26<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>nein, aber ich habe schon eine Library f\u00fcr den 24C512 geschrieben<br \/>\n<a href=\"indexe58c.html?page_id=4908\" rel=\"nofollow\">http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=4908<\/a><br \/>\nist zwar f\u00fcr den F429 kannst du aber per Copy&amp;Paste<br \/>\nin die Version vom F407 reinkopieren<br \/>\ndie I2C-LoLovel funktionen f\u00fcr den 16bit zugriff musst du auch kopieren.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>-diese Library dient zum ansteuern eines M24C02 (256Byte EEprom) von einem externen Modul das per I2C an den STM32F4 angeschlossen ist. (das IC ist kompatibel mit dem PCF8582) -auf der Hardware d\u00fcrfen die zwei externen Pull-Up Widerst\u00e4nde (je 4k7) an &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/19-i2c_m24c02-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":19,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[98,9,32,7],"class_list":["post-237","page","type-page","status-publish","hentry","category-stm32f4","tag-i2c","tag-library","tag-m24c02","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=237"}],"version-history":[{"count":4,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/237\/revisions"}],"predecessor-version":[{"id":3669,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/237\/revisions\/3669"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}