{"id":531,"date":"2017-11-25T15:07:19","date_gmt":"2017-11-25T14:07:19","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=531"},"modified":"2017-12-30T19:41:23","modified_gmt":"2017-12-30T18:41:23","slug":"93-otp-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/93-otp-library-stm32f4\/","title":{"rendered":"93-OTP-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\/92-id_check-library-stm32f4\/\" title=\"92-ID_Check-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 92-ID_Check-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\/94-simple_gui-library-stm32f4\/\" title=\"94-Simple_GUI-Library (STM32F4)\">94-Simple_GUI-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Mit dieser Library k\u00f6nnen die \u201cOne-Time-Programmable-Bytes\u201d beschrieben werden.<\/p>\n<p>Die STM32F4 CPU besitzt 512 Bytes die nur einmalig beschrieben werden k\u00f6nnen.<br \/>\nBei Auslieferung sind diese Bits auf \u201c1\u2033 gesetzt und k\u00f6nnen per Software nur auf \u201c0\u2033 gel\u00f6scht werden.<\/p>\n<p>Die 512 Bytes sind aufgeteilt in 16 B\u00e4nke (zu je 32 Bytes) von denen jede Bank mit einem zus\u00e4tzlichen Lock-Register f\u00fcr weiteres beschreiben gesch\u00fctzt werden kann.<br \/>\n(Dieses Lock-Register kann auch nur gel\u00f6scht werden)<\/p>\n<p>Ich habe 4 Funktionen geschrieben. Zwei um die Daten Bytes einzeln lesen und schreiben zu k\u00f6nnen. (schreiben geht wie gesagt nur Bits auf \u201c0\u2033 setzen)<\/p>\n<p>Mit den zwei anderen Funktionen kann das Lock-Register gelesen und geschrieben werden.<\/p>\n<p>Hinweis : Damit beim testen der Software nicht aus versehen in ein OTP-Register<br \/>\ngeschrieben wird, ist im H-File die \u201cwrite protection\u201d aktiviert. Wenn ihr sicher seid, das euer Programm funktioniert, k\u00f6nnt ihr diese deaktivieren.<\/p>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : FLASH\r\nBenutzte Librarys : keine<\/pre>\n<p><strong>Funktionen \u00a0:<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">uint8_t UB_OTP_Read_DataByte(uint8_t block_nr, uint8_t byte_nr);                          \/\/ zum lesen eines OTP-Bytes\r\nErrorStatusUB_OTP_Write_DataByte(uint8_t block_nr, uint8_t byte_nr, uint8_t byte_value);  \/\/ zum schreiben eines OTP-Bytes\r\nuint8_t UB_OTP_Read_Lock(uint8_t block_nr);                                               \/\/ zum lesen vom Lock-Register\r\nErrorStatusUB_OTP_Lock_Block(uint8_t block_nr);                                           \/\/ zum setzen vom Lock-Register<\/pre>\n<p><strong>Beispiel \u00a0:<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 01.01.2015\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.4\r\n\/\/ GCC      : 4.7 2012q4\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der OTP-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_otp.h\"\r\n\r\nint main(void)\r\n{\r\n  uint8_t value;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ OTP-Byte auslesen (Block=3, Byte=7)\r\n  value=UB_OTP_Read_DataByte(3,7);\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=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/01\/ub_stm32f4_otp_v100.zip\">ub_stm32f4_otp_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/01\/Demo_93_OTP.zip\">Demo_93_OTP<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit dieser Library k\u00f6nnen die \u201cOne-Time-Programmable-Bytes\u201d beschrieben werden. Die STM32F4 CPU besitzt 512 Bytes die nur einmalig beschrieben werden k\u00f6nnen. Bei Auslieferung sind diese Bits auf \u201c1\u2033 gesetzt und k\u00f6nnen per Software nur auf \u201c0\u2033 gel\u00f6scht werden. Die 512 Bytes &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/93-otp-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":93,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[9,251,7],"class_list":["post-531","page","type-page","status-publish","hentry","category-stm32f4","tag-library","tag-otp","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/531","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=531"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/531\/revisions"}],"predecessor-version":[{"id":1636,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/531\/revisions\/1636"}],"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=531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}