{"id":386583,"date":"2024-06-29T06:48:19","date_gmt":"2024-06-29T06:48:19","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=386583"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T06:48:19","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=386583","title":{"rendered":"<span>\u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 BLE Audio \u043e\u0442 Nordic Semiconductor (\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a I2S-&gt;BLE-Audio)<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/14f\/598\/0a0\/14f5980a0d519bfea9eeebcadc3f5904.png\" width=\"1189\" height=\"440\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/14f\/598\/0a0\/14f5980a0d519bfea9eeebcadc3f5904.png\"\/><\/figure>\n<p>\u0427\u0442\u043e \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e BLE 5.3? \u042d\u0442\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u0436\u0430\u0442\u043e\u0433\u043e \u0437\u0432\u0443\u043a\u0430. \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u0438\u044e\u043b\u0435 2021 \u0433\u043e\u0434\u0430.  \u0412 2022 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0437\u0446\u044b \u0447\u0438\u043f\u043e\u0432 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 SoC <strong>nrf5340 <\/strong>\u043e\u0442 Nordic Semiconductor. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u0431\u043e\u0440\u043e\u043a \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u0432\u0443\u043a\u0430 \u043f\u043e BLE-Audio. <\/p>\n<p>\u0412\u043e\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 <strong>\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b<\/strong> \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 BLE Audio: <\/p>\n<p>1&#8212;Gateway \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 <strong>\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438<\/strong> \u043e\u0442\u043c\u0435\u0442\u043a\u0430\u043c\u0438. <\/p>\n<p>2&#8212;\u0415\u0441\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 <strong>\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f<\/strong> \u0438 \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f  <\/p>\n<p>3&#8212;\u041f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 <strong>\u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f<\/strong> \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<p>4&#8212;\u0410\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0430\u043c\u043e\u043c\u0443 BLE  \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 <strong>\u0441\u0436\u0430\u0442\u043e\u043c<\/strong> \u0432\u0438\u0434\u0435 (encoded audio data). \u0421\u0436\u0430\u0442\u0438\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u043a LC3<\/p>\n<p>5&#8212;\u0427\u0430\u0441\u0442\u043e\u0442\u0430 <strong>\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438<\/strong> \u043d\u0430\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 8kHz&#8230;..48kHz<\/p>\n<p>6&#8212;\u0411\u0438\u0442\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c 16kBit\/s&#8230;.<strong>320kBit\/s<\/strong> \u043d\u0430 \u043a\u0430\u043d\u0430\u043b<\/p>\n<p>7&#8212;\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u0430 <strong>\u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f<\/strong> \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0430\u0443\u0434\u0438\u043e \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<p>8&#8212;\u041f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0443\u0434\u0438\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430<\/p>\n<p>9&#8212;Gateway \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c 2 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a\u0430 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e (Connected Isochronous Stream (CIS). <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u043a LC3 \u0434\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f \u0437\u0432\u0443\u043a\u0430 <u>\u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0439<\/u>. \u0426\u0435\u043d\u0430 \u043d\u0430 \u043d\u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 NRF5 SDK \u0432\u0435\u0440\u0441\u0438\u0438 2.1.0.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/753\/009\/ab2\/753009ab2b1bfc1811794c6e09fc27fc.png\" width=\"611\" height=\"76\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/753\/009\/ab2\/753009ab2b1bfc1811794c6e09fc27fc.png\"\/><\/figure>\n<p><strong>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/strong><\/p>\n<p>\u0415\u0441\u0442\u044c \u043f\u043e \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043c\u0435\u0440\u0435 \u0434\u0432\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438: nRF5340-DK($66.01) nRF5340-ADK($224.03). <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ff8\/8d9\/eb0\/ff88d9eb0436fa1291092a533e1b5350.png\" alt=\"nrf5340-ADK ($224.03)\" title=\"nrf5340-ADK ($224.03)\" width=\"1268\" height=\"727\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff8\/8d9\/eb0\/ff88d9eb0436fa1291092a533e1b5350.png\"\/><\/p>\n<div><figcaption><strong>nrf5340-ADK <\/strong>($224.03)<\/figcaption><\/div>\n<\/figure>\n<p>\u0438 nrf5340-DK.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/1a8\/93a\/207\/1a893a207d9d54e0c08a623fcbfe01f4.jpg\" alt=\"nrf5340-DK($66.01)\" title=\"nrf5340-DK($66.01)\" width=\"1000\" height=\"1000\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1a8\/93a\/207\/1a893a207d9d54e0c08a623fcbfe01f4.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>nrf5340-DK($66.01)<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u0430\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0437\u0432\u0443\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u0440\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 USB \u0438\u0437 NetTop-PC. \u0412\u043e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/943\/b2f\/30a\/943b2f30a2922194066231f468c8e894.png\" alt=\"\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f BLE \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438\" title=\"\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f BLE \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438\" width=\"4360\" height=\"1843\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/943\/b2f\/30a\/943b2f30a2922194066231f468c8e894.png\"\/><\/p>\n<div><figcaption>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f BLE \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 SDK \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430 \u043d\u0430\u0434\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445 <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\"><strong>\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">DeviceTree<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">Kconfig<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">GDB<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">DTS  <\/p>\n<\/td>\n<td>\n<p align=\"left\">DeviceTree Specification  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">GCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440. \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u0431\u0438\u043d\u0430\u0440\u044f)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">GIT<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">west<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f 4\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 (RTOS, Bootloader, HAL, SDK)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">Ninja<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">CMake<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043f\u043e\u0441\u043e\u0431 \u0430\u0432\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 (Ninja, make, IDExml) <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">nrfx<\/p>\n<\/td>\n<td>\n<p align=\"left\">HAL \u0434\u043b\u044f nrf \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">VS Code<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u043a\u043e\u0439-\u0442\u043e \u0445\u0438\u043f\u0441\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">MCUboot<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">Zephyr RTOS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f MCU(\u0448\u0435\u043a)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0423 Nordic Semiconductor \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 BLE 5.3 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Zephyr RTOS \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 <strong>nrf5340<\/strong>. \u0418\u0445 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432 \u043f\u0430\u043f\u043a\u0435 <\/p>\n<pre><code>C:\\ncs\\v2.1.0\\nrf\\applications\\nrf5340_audio<\/code><\/pre>\n<p>\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u0430\u0440\u043e\u0447\u043a\u0438 \u043f\u043b\u0430\u0442 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <strong>nrf5340-ADK. <\/strong>\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f nrf5340-ADK \u043c\u043e\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0448\u0435\u0432\u044b\u0445 \u043f\u043b\u0430\u0442 nrf5340-DK. <\/p>\n<p>\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\"><strong>\u041f\u043e\u043d\u044f\u0442\u0438\u0435<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\"><strong>\u041f\u0435\u0440\u0435\u0432\u043e\u0434<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">GateWay\u00a0<\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\u0448\u043b\u044e\u0437 <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442 \u0437\u0432\u0443\u043a \u0432 BLE<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">HeadSet <\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u0432\u0443\u043a \u0438\u0437 BLE<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 BLE 5.3 \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 CIS \u0438 BIS.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\"><strong>\u0420\u0435\u0436\u0438\u043c<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"157\" width=\"157\">\n<p align=\"left\"><strong>\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <\/strong><\/p>\n<p align=\"left\"><strong>\u0434\u0430\u043d\u043d\u044b\u0445<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"133\" width=\"133\">\n<p align=\"left\"><strong>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 <\/strong><\/p>\n<p align=\"left\"><strong>\u0441 GateWay<\/strong>\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>channels<\/strong>  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">CIS <\/p>\n<\/td>\n<td data-colwidth=\"157\" width=\"157\">\n<p align=\"left\">\u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439<\/p>\n<\/td>\n<td data-colwidth=\"133\" width=\"133\">\n<p align=\"left\">\u0435\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">BIS<\/p>\n<\/td>\n<td data-colwidth=\"157\" width=\"157\">\n<p align=\"left\">\u043e\u0434\u043d\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439<\/p>\n<\/td>\n<td data-colwidth=\"133\" width=\"133\">\n<p align=\"left\">\u043d\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">?<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b BLE Audio \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 Zephyr RTOS. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c BLE Audio, \u0442\u043e \u0442\u0443\u0442 \u0431\u0435\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 Zephyr Project.<\/p>\n<p><strong>GateWay \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 (I2S->BLE 5.3)<\/strong>\u00a0  <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f GateWay. \u041f\u043b\u0430\u0442\u0430 NRF5340-DK \u0431\u0440\u0430\u043b\u0430 \u0437\u0432\u0443\u043a \u0438\u0437 I2S \u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044f BT1026 \u0438 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u044d\u0442\u043e\u0442 \u0437\u0432\u0443\u043a \u0432 BLE 5.3. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/798\/d58\/dad\/798d58dadde1415b5c9834456c013fc5.PNG\" alt=\"\u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f BLE 5.3 GateWay \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\" title=\"\u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f BLE 5.3 GateWay \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\" width=\"685\" height=\"649\"\/><\/p>\n<div><figcaption>\u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f BLE 5.3 GateWay \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e \u0442\u043e \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 BT1026 \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/700102\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/700102\/<\/a><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a BLE Audio \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430\u0434\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 GateWay. \u0412 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 GateWay \u0435\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\"><strong>#<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Thread name<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>priority<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Stack size<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">ENCODER<\/p>\n<\/td>\n<td>\n<p align=\"left\">-2<\/p>\n<\/td>\n<td>\n<p align=\"left\">6752<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">AUDIO DATAPATH<\/p>\n<\/td>\n<td>\n<p align=\"left\">-1<\/p>\n<\/td>\n<td>\n<p align=\"left\">4096<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">BT RX<\/p>\n<\/td>\n<td>\n<p align=\"left\">-8<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">BT TX<\/p>\n<\/td>\n<td>\n<p align=\"left\">-9<\/p>\n<\/td>\n<td>\n<p align=\"left\">1024<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">syswork<\/p>\n<\/td>\n<td>\n<p align=\"left\">-1<\/p>\n<\/td>\n<td>\n<p align=\"left\">4096<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">shell_rtt<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">8192<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">loggong<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">idle<\/p>\n<\/td>\n<td>\n<p align=\"left\">15<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">main<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">8192<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0440\u044f\u0434\u043e\u043c \u0441 BLE 5.3. \u0422\u043e\u0433\u0434\u0430 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c custom \u043f\u043e\u0442\u043e\u043a \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c. \u0412 Zephyr \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430, \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u043e\u0442\u043e\u043a\u0430. <\/p>\n<p>\u041a\u043e\u0434 BlueTooth \u043e\u0447\u0435\u043d\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043a \u0436\u0435\u0441\u0442\u043a\u043e\u043c\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0432\u0430\u0448\u0435\u0433\u043e custom \u043f\u043e\u0442\u043e\u043a\u0430, \u0442\u043e \u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u043c \u0437\u0432\u0443\u043a\u0435 \u0412\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0449\u0435\u043b\u0447\u043a\u0438. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0430\u0443\u0434\u0438\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f. <\/p>\n<p>Gateway \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0417\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u0417\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0436\u0438\u043c\u0430\u044e\u0442\u0441\u044f LC3 \u043a\u043e\u0434\u0435\u043a\u043e\u043c. \u0421\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0432 Bluetooth LE Host. Bluetooth LE Host \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0443 LE Audio Controller Subsystem \u0434\u043b\u044f nRF53 \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u044f\u0434\u0440\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u041f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0430\u0434\u0438\u043e \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u043c\u0438 LE Audio.<\/p>\n<p>Gateway \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 USB, \u043d\u043e \u0438 \u0438\u0437 I2S. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0430\u0443\u0434\u0438\u043e-\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0438\u0437 I2S, \u0442\u043e \u043d\u0443\u0436\u043d\u0430 \u0444\u0430\u0437\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u042d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u0437\u0432\u0443\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/15f\/b99\/968\/15fb9996898ca588d12ab932e8344971.png\" width=\"3074\" height=\"3294\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/15f\/b99\/968\/15fb9996898ca588d12ab932e8344971.png\"\/><\/figure>\n<p>Synchronization module \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435. \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u0437 I2S \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u043e\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0442\u043e\u043a \u0441\u0436\u0430\u0442\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 streamctrl.c<\/p>\n<p><strong>\u041e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438<br \/><\/strong><br \/>\u041c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 \u0444\u0430\u0439\u043b\u0435 audio_datapath.c. \u0414\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0432\u0443\u043a\u0430 \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u0435\u0440\u0435\u0432\u043e\u0434<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong> <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Presentation compensation<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Drift compensation<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/strong> \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0432\u0443\u043a \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0430\u0443\u0434\u0438\u043e \u043a\u0430\u0434\u0440\u044b, \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430\u0445. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u043d \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0431\u043b\u043e\u043a\u0438 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0445 \u0432 FIFO \u0432\u043f\u0435\u0440\u0435\u0434 \u0438\u043b\u0438 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0431\u043b\u043e\u043a\u0438 \u0442\u0438\u0448\u0438\u043d\u044b.<\/p>\n<p><strong>\u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/strong> \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u0441\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430. \u042d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 connected isochronous stream (CIS), \u0433\u0434\u0435 gateway\u00a0(\u0448\u043b\u044e\u0437) \u0438 headsets\u00a0  \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430 True Wireless Stereo (TWS). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0432\u0443\u043a\u0430. \u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u044e\u0431\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u043c\u0438 \u0432 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445 \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u044b\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u043d\u0430\u0431\u043e\u0440\u0430\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e X1 32MHz. \u041e\u0434\u043d\u0430\u043a\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u044d\u0442\u0438\u0445 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f.  \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 I2S \u043d\u0430 headset(\u0430\u0445)\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a \u0436\u0435 \u0431\u044b\u0441\u0442\u0440\u043e, \u043a\u0430\u043a \u043f\u0440\u0438\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Bluetooth. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <strong>\u043f\u0435\u0440\u0435<\/strong>\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 <strong>\u043d\u0435\u0434\u043e<\/strong>\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 I2S \u043a\u0430\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 CIS, \u0442\u0430\u043a \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 BIS.<\/p>\n<p>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5ad\/c72\/734\/5adc727345d707a6598b16399c26acc9.png\" alt=\"\u041e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0430\u0443\u0434\u0438\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 nRF5340\" title=\"\u041e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0430\u0443\u0434\u0438\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 nRF5340\" width=\"3098\" height=\"3197\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5ad\/c72\/734\/5adc727345d707a6598b16399c26acc9.png\"\/><\/p>\n<div><figcaption>\u041e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0430\u0443\u0434\u0438\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 nRF5340<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0431\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 SDU (sdu_ref) \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0448\u043b\u044e\u0437\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 I2S \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0437\u0432\u0443\u043a\u0430, \u0430 \u043f\u043e\u0442\u043e\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c (\u043e\u0442 \u0448\u043b\u044e\u0437\u0430 \u043a \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430\u043c), sdu_ref \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0437 LE Audio Controller Subsystem \u0434\u043b\u044f nRF5340 \u043d\u0430 \u0448\u043b\u044e\u0437\u0435. \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 le_audio_cis_gateway.c \u0438 le_audio_bis_gateway.c. \u0417\u0430\u0442\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f sdu_ref \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u043b\u044e\u0437\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 nRF5340 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>\u0434\u0432\u0443\u0445\u044a\u044f\u0434\u0435\u0440\u043d\u044b\u043c<\/strong> SoC, \u0442\u043e \u043e\u0431\u043e\u0438\u043c \u044f\u0434\u0440\u0430\u043c (App Core, Net Core) \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <strong>\u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f<\/strong> \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f <strong>\u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/strong>, \u043a\u0430\u0436\u0434\u043e\u0435 \u044f\u0434\u0440\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0432 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435. \u042d\u0442\u0438 \u0434\u0432\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f <strong>\u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e<\/strong> \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0432\u0430 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u0438\u0445 \u0438 \u0442\u0435\u0445 \u0436\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<br \/>Net core  nRF5340, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 LE controller \u0434\u043b\u044f nRF53, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u0438 sdu_ref \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0443\u0434\u0438\u043e \u043f\u0430\u043a\u0435\u0442\u0430. App core , \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0441 \u0430\u0443\u0434\u0438\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c nRF5340, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 cur_time \u0438 frame_start_ts.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043b\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 FIFO. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u0438 \u0431\u043b\u043e\u043a\u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 I2S, \u0431\u043b\u043e\u043a \u0437\u0430 \u0431\u043b\u043e\u043a\u043e\u043c.<\/p>\n<p>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/00d\/06b\/981\/00d06b98179872cf908ca44ca3dbdff6.png\" alt=\"\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 nRF5340 Audio \u0434\u043b\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438\" title=\"\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 nRF5340 Audio \u0434\u043b\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438\" width=\"3101\" height=\"3321\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/00d\/06b\/981\/00d06b98179872cf908ca44ca3dbdff6.png\"\/><\/p>\n<div><figcaption>\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 nRF5340 Audio \u0434\u043b\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (presentation compensation  ) \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u044b:<\/p>\n<p>&#8212; \u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c (DRIFT_STATE_LOCKED), \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044e \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u042d\u0442\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u0441\u043e\u0432, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u0437\u0432\u0443\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e. \u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (PRES_STATE_INIT). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e, \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 DRIFT_STATE_LOCKED, \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 PRES_STATE_INIT.<\/p>\n<p>&#8212; \u041f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0430\u0443\u0434\u0438\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0430\u0443\u0434\u0438\u043e\u043a\u0430\u0434\u0440 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f ISO. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 (headset) \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430 \u0441\u0432\u044f\u0437\u044c \u0441\u043e \u0448\u043b\u044e\u0437\u043e\u043c (gateway). \u041a\u043e\u0433\u0434\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 sdu_ref, \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c sdu_ref. \u0417\u0430\u0442\u0435\u043c \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 PRES_STATE_WAIT, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0437\u0432\u0443\u043a \u0432\u0441\u0435 \u0435\u0449\u0435 \u0432 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0438 \u0434\u0440\u0435\u0439\u0444, \u0438 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 (DRIFT_STATE_LOCKED \u0438 PRES_STATE_LOCKED), \u0437\u0430\u0433\u043e\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 2.<\/p>\n<p><strong>\u041a\u0430\u043a\u043e\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438?<\/strong><\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 I2S \u0438\u0434\u0443\u0442 \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0443\u0442\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\"><strong>\u041f\u043e\u0440\u044f\u0434\u043e\u043a<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">LE Audio Controller Subsystem \u0434\u043b\u044f nRF53, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u044f\u0434\u0440\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0445\u043e\u0441\u0442 Zephyr Bluetooth LE \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 Bluetooth: HCI RPMsg. \u042d\u0442\u043e \u043c\u0435\u0436\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0425\u043e\u0441\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u043c streamctrl.c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440 FIFO.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 FIFO \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 audio_datapath.c. \u041c\u043e\u0434\u0443\u043b\u044c audio_datapath.c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0443\u0434\u0438\u043e\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u043a SDU. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u043a\u0435\u0442, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u043e \u0448\u043b\u044e\u0437\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443 SDU. \u042d\u0442\u0438 \u043c\u0435\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u044b (\u0432 \u044f\u0434\u0440\u0435 \u0441\u0435\u0442\u0438). \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0438 True Wireless Stereo (TWS), \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0432\u0443\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 CIS. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 I2S \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Bluetooth.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0434\u0443\u043b\u044c audio_datapath.c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 <strong>\u0441\u0436\u0430\u0442\u044b\u0435<\/strong> \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0430\u0443\u0434\u0438\u043e\u0434\u0435\u043a\u043e\u0434\u0435\u0440 LC3 \u0434\u043b\u044f \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0443\u0434\u0438\u043e \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0441\u0436\u0430\u0442\u044b\u0435 \u0441\u044b\u0440\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 (PCM) \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u043c\u043e\u0434\u0443\u043b\u044c audio_datapath.c.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0434\u0443\u043b\u044c audio_datapath.c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043d\u0435\u0441\u0436\u0430\u0442\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 (PCM \u0441\u0435\u043c\u043f\u043b\u044b) \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0435\u043a\u0443.<\/p>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u043a (DAC) \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0435\u0441\u0436\u0430\u0442\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 I2S \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0446\u0438\u0444\u0440\u043e-\u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 (DAC) \u0432 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0430\u0443\u0434\u0438\u043e\u0441\u0438\u0433\u043d\u0430\u043b.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>HeadSet (BLE 5.3->I2S)<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f HeadSet \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0417\u0432\u0443\u043a \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u043e\u0442 BLE 5.3 \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c D \u043a\u043b\u0430\u0441\u0441\u0430 MAX98357A \u0447\u0435\u0440\u0435\u0437 4 \u041e\u043c\u043c\u043d\u044b\u0439 \u0437\u0432\u0443\u043a\u043e\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/064\/e6d\/220\/064e6d220335748902af8576f31207be.jpg\" alt=\"\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f HeadSet \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\" title=\"\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f HeadSet \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\" width=\"3508\" height=\"2480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/064\/e6d\/220\/064e6d220335748902af8576f31207be.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f HeadSet \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 HeadSet \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432\u0435\u0440\u0442\u044f\u0442\u0441\u044f \u0432\u043e\u0442 \u044d\u0442\u0438 \u043f\u043e\u0442\u043e\u043a\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\"><strong>#<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\"><strong>Name<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>priority<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>stack size<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">AUDIO DATAPATH<\/p>\n<\/td>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">4096<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">BT RX<\/p>\n<\/td>\n<td>\n<p align=\"left\">-8<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">BT TX<\/p>\n<\/td>\n<td>\n<p align=\"left\">-9<\/p>\n<\/td>\n<td>\n<p align=\"left\">1024<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">sysworkq<\/p>\n<\/td>\n<td>\n<p align=\"left\">-1<\/p>\n<\/td>\n<td>\n<p align=\"left\">4096<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">BT_LW_WQ<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">1304<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">shell_rtt<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">8192<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">shell_uart<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">8192<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">logging<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">idle<\/p>\n<\/td>\n<td>\n<p align=\"left\">15<\/p>\n<\/td>\n<td>\n<p align=\"left\">320<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"72\" width=\"72\">\n<p align=\"left\">10<\/p>\n<\/td>\n<td data-colwidth=\"210\" width=\"210\">\n<p align=\"left\">main<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">4096<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u041a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0438\u0437 \u0441\u043e\u0440\u0446\u043e\u0432?<\/strong><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a BLE Audio \u0442\u0440\u0430\u0444\u0438\u043a\u0430 (<strong>gateway<\/strong>)  \u043d\u0430\u0434\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 gateway.  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u0430\u043a\u0440\u043e\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 CONFIG_AUDIO_DEV=2. \u0421\u043a\u0440\u0438\u043f\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043e\u0440 \u0441\u0431\u043e\u0440\u043a\u0438 Cmake \u0437\u0430\u0442\u0435\u043c \u0441\u0430\u043c \u0441\u0431\u043e\u0440\u0449\u0438\u043a ninjia.  <\/p>\n<pre><code class=\"bash\">echo off cls set CUR_DIR=%~dp0 echo Cur Dir: [%CUR_DIR%]  call clean.bat  set BOARD=nrf5340dk_nrf5340_cpuapp set SDK_PROJECT_DIR=%NRF_SDK_DIR%\/nrf\/applications\/nrf5340_dk_audio_w echo Sdk Project Dir:[%SDK_PROJECT_DIR%] echo Project Dir:[%PROJECT_DIR%]  set BUILD_DIR=%SDK_PROJECT_DIR%\/build\/gateway_app set ARTEFACT_DIR=%CUR_DIR%build echo BUILD_DIR_=%BUILD_DIR%  cd %SDK_PROJECT_DIR%  cmake %CMAKE_OP% -B%BUILD_DIR% -DBOARD=%BOARD% -GNinja -DCONFIG_AUDIO_DEV=2 -DCONF_FILE=\"i2s_ble.conf\"  ninja -C %BUILD_DIR%  cd %CUR_DIR%<\/code><\/pre>\n<p><strong>Net Core<\/strong><\/p>\n<p>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0434\u043b\u044f Net core \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f \u043a\u0430\u043a \u0434\u043b\u044f GateWay \u0442\u0430\u043a \u0438 \u0434\u043b\u044f HeadSet. \u0411\u0438\u043d\u0430\u0440\u044c \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0430\u043c Vendor (Nordic Semiconductor). \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>ble5-ctr-rpmsg_3303.hex<\/strong> \u0438 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043f\u0430\u043f\u043a\u0435  C:\\ncs\\v2.1.0\\nrf\\applications\\nrf5340_dk_audio\\bin\\<\/p>\n<p><strong>\u041e\u0442\u043b\u0430\u0434\u043a\u0430<\/strong><br \/>\u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043b\u043e\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0412\u043e\u0442 \u043b\u043e\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 gateway<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<p> -><br \/> ->*** Booting Zephyr OS build v3.1.99-ncs1  ***<br \/> 0.305 :I [?] Init Writer OK0.308 :I [?] Init Log OK<br \/> 0.311 :I [GPIO] Init<br \/> 0.314 :I [?] Init Gpio OK<br \/> 0.318 :I [?] Init Pre OK<br \/> 0.321 :I [?] Init Clk OK<br \/> 0.324 :I [SYS] PowerInit..<br \/> 0.327 :I [?] Init PwrSys OK<br \/> 0.331 :I [SYS] InitHwConnectivity<br \/> 0.335 :I [SYS] WireConnectivityInit<br \/> 0.339 :I [UART] Init..<br \/> 0.342 :I [UART] Cnt: 2<br \/> 0.345 :I [UART] 0 Init<br \/> 0.348 :I [UART] 0 Device found!<br \/> Init_UART0<br \/> 0.353 :I [UART] 0 InitOk!<br \/> 0.356 :I [UART] 2 Init<br \/> 0.359 :I [UART] 2 Device found!<br \/> 0.364 :I [UART] 2 InitOk!<br \/> 0.367 :I [?] Init UART OK<br \/> 0.371 :I [I2S] Init Cnt 1<br \/> 0.468 :I [?] Init I2S OK<br \/> 0.471 :I [?] Init WireCon OK<br \/> 0.474 :I [SYS] InitWireLessConnectivity<br \/> 0.479 :I [?] Init WireLessCon OK<br \/> 0.483 :I [?] Init HwCon OK<br \/> 0.486 :I [SYS] StorageHwInit<br \/> 0.490 :I [?] Init StorageHw OK<br \/> 0.494 :I [?] Init HW OK<br \/> 0.497 :I [?] Init Time OK<br \/> 0.500 :I [SYS] ProtocolsInit<br \/> 0.504 :I [?] Init Protocol OK<br \/> 0.507 :I [SYS] TaskInit<br \/> 0.510 :I [SYS] TaskCnt 2<br \/> 0.514 :I [SYS] Task ID:0<br \/> 0.517 :I [SYS] Task ID:1<br \/> 0.520 :I [?] Init task OK<br \/> 0.523 :I [SYS] StorageSwInit<br \/> 0.527 :I [?] Init StorageSw OK<br \/> 0.531 :I [SYS] SwConnectivityInit<br \/> 0.535 :I [CLI] All 63 CommandsUnique<br \/> 0.540 :I [CLI] AllCommandsUnique!<br \/> 0.544 :I [?] Init Cli OK<br \/> 0.547 :I [?] Init ConSw OK<br \/> 0.550 :I [SYS] InitMultimedia<br \/> 0.554 :I [BT1026] Init<br \/> 0.557 :I [BT1026] Set I2S config 1<br \/> RegVal: 0x01 0b0000_0001<br \/> 5-6 resolution: 0=16 bit<br \/> 3-4 format: 0<br \/> 2 sample_rate: 0=48000<br \/> 1 role: 0=Master<br \/> 0 status: 1=On<br \/> 0.573 :I [?] Init BT1026 OK<br \/> 0.576 :I [?] Init multimedia OK<br \/> 0.580 :I [SuperLoop] Init<br \/> 0.584 :I [?] Init SuperCycle OK<br \/> 0.587 :I [?] Init SW OK<br \/> 0.591 :I [?] Init board OK<br \/> 0.594 :I [?] Init SYS OK<br \/> 0.597 :I [SYS] init [OK!]<br \/> GW [00:00:00.300,079]  audio_sync_timer: Audio sync timer initialized<br \/> GW [00:00:00.300,811]  nrf5340dk_nrf5340_cpuapp: remoteproc_mgr_boot: Network MCU released.<br \/> GW [00:00:00.305,084]  main: nRF5340 APP core started<br \/> GW [00:00:00.601,013]  main: InitRes: 1=Ok<br \/> GW [00:00:00.601,165]  fw_info:<br \/> nRF5340 nRF5340 DK cpuapp<br \/> NCS Version: 2.1.0<br \/> GW [00:00:00.601,165]  fw_info: &#8212;&#8212;- DEBUG BUILD &#8212;&#8212;-<br \/> GW [00:00:00.601,165]  fw_info:<br \/> Compiled for GATEWAY device<br \/> GW [00:00:00.601,165]  ble: init core<br \/> GW [00:00:00.601,196]  ble: Failed to create ID<br \/> GW [00:00:00.604,217]  fs_nvs: 6 Sectors of 4096 bytes<br \/> GW [00:00:00.604,217]  fs_nvs: alloc wra: 0, f70<br \/> GW [00:00:00.604,217]  fs_nvs: data wra: 0, 124<br \/> GW [00:00:00.613,830]  bt_hci_core: Controller to host flow control not support0.706 :I [SYS] StreamCtrlStart<br \/> 0.710 :I [BLE] Enable<br \/> 0.713 :I [BLE] Init<br \/> 0.715 :I [BLE] BT_AUDIO_UNICAST_CLIENT_ASE_SNK_CNT 2<br \/> 0.721 :I [BLE] initialized:0<br \/> ed0.725 :I [BLE] StartScan<br \/> 0m<br \/> GW [00.730 :I [SYS] StartSurepCycle<br \/> 0:00:00.616,790]  bt_hci_core: No ID address. App must call settings_load()<br \/> GW [00:00:00.616,790]  ble: Bluetooth initialized<br \/> GW [00:00:00.616,851]  ble: MAC: 00:00:00:00:00:00 (public)<br \/> GW [00:00:00.617,401]  ble: Controller version: 3303<br \/> GW [00:00:00.621,002]  main: Clearing all bonds<br \/> GW [00:00:00.705,322]  audio_system: AudioSysInit<br \/> GW [00:00:00.730,834]  cis_gateway: Scanning successfully started<\/p>\n<p>->GW [00:00:01.282,562]  cis_gateway: Connected: 4E:80:31:F3:BC:B9 (random)<br \/> GW [00:00:01.282,562]  cis_gateway: Connected: 4E:80:31:F3:BC:B9 (random)<br \/> ->3.584 :I [BLE] StartScan<br \/> GW [00:00:03.587,921]  cis_gateway: Scanning successfully started<br \/> GW [00:00:03.587,921]  cis_gateway: Scanning successfully started<br \/> ->7.990 :E [BT1026] LackOfLink 7256 ms 5000 ms<br \/> GW [00:00:07.984,222]  cis_gateway: Stream 0x2000a610 started<br \/> GW [00:00:08.005,279]  audio_datapath: I2S RX overrun. Single msg<br \/> GW [00:00:08.007,263]  audio_datapath: I2S RX continuing stream<br \/> GW [00:00:08.011,260]  audio_datapath: I2S RX overrun. Single msg<br \/> GW [00:00:08.012,847]  bt_hci_core: opcode 0x2061 status 0x0c<br \/> GW [00:00:08.013,275]  audio_datapath: I2S RX continuing stream<br \/> GW [00:00:08.022,277]  audio_datapath: Drft comp state: CALIB<br \/> GW [00:00:08.122,283]  audio_datapath: Drft comp state: OFFSET<br \/> GW [00:00:08.222,290]  audio_datapath: Drft comp state: LOCKED<br \/> GW [00:00:07.984,222]  cis_gateway: Stream 0x2000a610 started<br \/> GW [00:00:08.005,279]  audio_datapath: I2S RX overrun. Single msg<br \/> GW [00:00:08.007,263]  audio_datapath: I2S RX continuing stream<br \/> GW [00:00:08.011,260]  audio_datapath: I2S RX overrun. Single msg<br \/> GW [00:00:08.012,847]  bt_hci_core: opcode 0x2061 status 0x0c<br \/> GW [00:00:08.013,275]  audio_datapath: I2S RX continuing stream<br \/> GW [00:00:08.022,277]  audio_datapath: Drft comp state: CALIB<\/p>\n<\/div>\n<\/details>\n<p>\u041b\u043e\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 headset<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<p>-><br \/> ->*** Booting Zephyr OS build v3.1.99-ncs1  ***<br \/> 0.260 :I [?] Init Writer OK0.263 :I [?] Init Log OK<br \/> 0.266 :I [GPIO] Init<br \/> 0.269 :I [GPIO] TotalPins: 8<br \/> 0.273 :I [GPIO] SetDirOk Pad:P0.28 Io<br \/> 0.277 :I [GPIO] SetDirOk Pad:P0.29 Io<br \/> 0.282 :I [GPIO] SetDirOk Pad:P0.30 Io<br \/> 0.286 :I [GPIO] SetDirOk Pad:P0.31 Io<br \/> 0.290 :I [GPIO] SetDirOk Pad:P0.20 Out<br \/> 0.295 :I [GPIO] SetDirOk Pad:P0.22 In<br \/> 0.299 :I [GPIO] SetDirOk Pad:P1.3 Out<br \/> 0.303 :I [GPIO] SetDirOk Pad:P1.2 InOd<br \/> 0.308 :I [?] Init Gpio OK<br \/> 0.311 :I [?] Init Pre OK<br \/> 0.314 :I [?] Init Clk OK<br \/> 0.318 :I [SYS] PowerInit..<br \/> 0.321 :I [?] Init PwrSys OK<br \/> 0.324 :I [SYS] InitHwConnectivity<br \/> 0.328 :I [SYS] WireConnectivityInit<br \/> 0.333 :I [UART] Init..<br \/> 0.336 :I [UART] Cnt: 1<br \/> 0.339 :I [UART] 0 Init<br \/> 0.342 :I [UART] 0 Device found!<br \/> Init_UART0<br \/> 0.347 :I [UART] 0 InitOk!<br \/> 0.350 :I [?] Init UART OK<br \/> 0.353 :I [I2C] Init<br \/> 0.356 :I [I2C] 1 Init<br \/> 0.359 :I [I2C] Init 1 I2Cs<br \/> 0.362 :I [?] Init I2C OK<br \/> 0.366 :I [?] Init WireCon OK<br \/> 0.369 :I [SYS] InitWireLessConnectivity<br \/> 0.374 :I [?] Init WireLessCon OK<br \/> 0.378 :I [?] Init HwCon OK<br \/> 0.381 :I [SYS] StorageHwInit<br \/> 0.385 :I [?] Init StorageHw OK<br \/> 0.388 :I [?] Init HW OK<br \/> 0.391 :I [?] Init Time OK<br \/> 0.395 :I [HEAP] Init<br \/> 0.398 :I [?] Init Heap OK<br \/> 0.401 :I [DAC] Init 1<br \/> 0.404 :I [DAC] Init 2<br \/> 0.407 :I [DAC] Init 3<br \/> 0.410 :I [?] Init DACsw OK<br \/> 0.413 :I [SYS] ProtocolsInit<br \/> 0.417 :I [?] Init Protocol OK<br \/> 0.420 :I [SYS] StorageSwInit<br \/> 0.424 :I [?] Init StorageSw OK<br \/> 0.428 :I [SYS] SwConnectivityInit<br \/> 0.432 :I [CLI] All 47 CommandsUnique<br \/> 0.436 :I [CLI] AllCommandsUnique!<br \/> 0.440 :I [?] Init Cli OK<br \/> 0.443 :I [?] Init ConSw OK<br \/> 0.447 :I [SYS] InitMultimedia<br \/> 0.450 \ud83d\ude00 [WM8731] Spot 10 CfgRegs<br \/> &#8212; [00:00:00.255,187]  audio_sync_timer: Audio sync timer initialized<br \/> &#8212; [00:00:00.255,889]  nrf5340dk_nrf5340_cpuapp: remoteproc_mgr_boot: Ne  rk MCU released.<br \/> &#8212; [00:00:00.260,131]  main: nRF5340 APP core started<br \/> 2.608 :I [?] Init WM8731 OK<br \/> 2.611 :I [?] Init multimedia OK<br \/> 2.615 :I [SuperLoop] Init<br \/> 2.618 :I [?] Init SuperCycle OK<br \/> 2.622 :I [?] Init SW OK<br \/> 2.625 :I [?] Init board OK<br \/> 2.629 :I [?] Init SYS OK<br \/> 2.632 :I [SYS] init [OK!]<br \/> HL [00:00:02.635,711]  main: InitRes: 1=Ok<br \/> HL [00:00:02.635,864]  fw_info:<br \/> nRF5340 nRF5340 DK cpuapp<br \/> NCS Version: 2.1.0<br \/> HL [00:00:02.635,864]  fw_info: &#8212;&#8212;- DEBUG BUILD &#8212;&#8212;-<br \/> HL [00:00:02.635,864]  fw_info:<br \/> HEADSET  defaulting to AUDIO_CH_L<br \/> HL [00:00:02.635,864]  fw_info:<br \/> HEADSET left device<br \/> HL [00:00:02.635,894]  ble: init core<br \/> HL [00:00:02.635,894]  ble: Failed to create ID<br \/> HL [00:00:02.639,038]  fs_nvs: 6 Sectors of 4096 bytes<br \/> HL [00:00:02.639,068]  fs_nvs: alloc wra: 0, f98<br \/> HL [00:00:02.639,068]  fs_nvs: data wra: 0, 5c<br \/> HL [00:00:02.648,742]  bt_hci_core: Controller to host flow control not   ported<br \/> HL [00:00:02.651,733]  bt_hci_core: No ID address. App must call setting  oad()<br \/> HL [00:00:02.651,733] 2.740 :I [SYS] StreamCtrlStart<br \/> 2.746 :I [SYS] StartSurepCycle<br \/>  ble: Bluetooth initialized<br \/> HL [00:00:02.651,794]  ble: MAC: 00:00:00:00:00:00 (public)<br \/> HL [00:00:02.652,374]  ble: Controller version: 3303<br \/> HL [00:00:02.740,112]  audio_system: AudioSysInit<br \/> HL [00:00:02.748,382]  cis_headset: Regular advertising started<br \/> HL [00:00:02.635,711]  main: InitRes: 1=Ok<br \/> HL [00:00:02.635,864]  fw_info:<br \/> nRF5340 nRF5340 DK cpuapp<br \/> NCS Version: 2.1.0<br \/> Cmake run : Mon Jan 23 13:47:23 2023<br \/> HL [00:00:02.635,864]  fw_info: &#8212;&#8212;- DEBUG BUILD &#8212;&#8212;-<br \/> HL [00:00:02.635,864]  fw_info:<br \/> HEADSET  defaulting to AUDIO_CH_L<br \/> HL [00:00:02.635,864]  fw_info:<br \/> HEADSET left device<br \/> HL [00:00:02.635,894]  ble: init core<br \/> HL [00:00:02.635,894]  ble: Failed to create ID<br \/> HL [00:00:02.639,038]  fs_nvs: 6 Sectors of 4096 bytes<br \/> HL [00:00:02.639,068]  fs_nvs: alloc wra: 0, f98<br \/> HL [00:00:02.639,068]  fs_nvs: data wra: 0, 5c<br \/> HL [00:00:02.648,742]  bt_hci_core: Controller to host flow control not   ported<br \/> HL [00:00:02.651,733]  bt_hci_core: No ID address. App must call setting  oad()<br \/> HL [00:00:02.651,733]  ble: Bluetooth initialized<br \/> HL [00:00:02.651,794]  ble: MAC: 00:00:00:00:00:00 (public)<br \/> HL [00:00:02.652,374]  ble: Controller version: 3303<br \/> HL [00:00:02.740,112]  audio_system: AudioSysInit<br \/> HL [00:00:02.748,382]  cis_headset: Regular advertising started<br \/> ->HL [00:00:03.900,970]  cis_headset: Connected: 7D:32:A4:77:BB:8A (rand<br \/> HL [00:00:03.900,970]  cis_headset: Connected: 7D:32:A4:77:BB:8A (random<br \/> HL [00:00:47.601,806]  cis_headset: Disconnected: 7D:32:A4:77:BB:8A (ran  dom) (reason 0x08)<br \/> HL [00:00:47.603,179]  cis_headset: Regular advertising started<br \/> HL [00:00:47.813,476]  cis_headset: Connected: 7D:A1:F6:47:F9:D0 (random  )<br \/> HL [00:00:47.601,806]  cis_headset: Disconnected: 7D:32:A4:77:BB:8A (ran  dom) (reason 0x08)<br \/> HL [00:00:47.603,179]  cis_headset: Regular advertising started<br \/> HL [00:00:47.813,476]  cis_headset: Connected: 7D:A1:F6:47:F9:D0 (random  )<br \/> ->HL [00:01:36.014,404]  cis_headset: Disconnected: 7D:A1:F6:47:F9:D0 (r  andom) (reason 0x08)<br \/> HL [00:01:36.015,777]  cis_headset: Regular advertising started<br \/> HL [00:01:36.231,872]  cis_headset: Connected: 78:C5:58:66:A4:70 (random  )<br \/> HL [00:01:36.014,404]  cis_headset: Disconnected: 7D:A1:F6:47:F9:D0 (ran  dom) (reason 0x08)<br \/> HL [00:01:36.015,777]  cis_headset: Regular advertising started<br \/> HL [00:01:36.231,872]  cis_headset: Connected: 78:C5:58:66:A4:70 (random  )<br \/> ->HL [00:01:41.034,545]  cis_headset: Codec config for LC3:<br \/> HL [00:01:41.034,545]  cis_headset:        Frequency: 48000 Hz<br \/> HL [00:01:41.034,545]  cis_headset:        Frame Duration: 10000 us<br \/> HL [00:01:41.034,576]  cis_headset:        Channel allocation: 0x1<br \/> HL [00:01:41.034,576]  cis_headset:        Octets per frame: 120 (96000   kbps)<br \/> HL [00:01:41.034,576]  cis_headset:        Frames per SDU: 1<br \/> HL [00:01:41.034,637]  bt_gatt: Device is not subscribed to characterist  ic<br \/> HL [00:01:41.133,239]  bt_gatt: Device is not subscribed to characterist  ic<br \/> HL [00:01:41.348,022]  audio_datapath: I2S RX overrun. Single msg<br \/> HL [00:01:41.034,545]  cis_headset: Codec config for LC3:<br \/> HL [00:01:41.034,545]  cis_headset:        Frequency: 48000 Hz<br \/> HL [00:01:41.034,545]  cis_headset:        Frame Duration: 10000 us<br \/> HL [00:01:41.034,576]  cis_headset:        Channel allocation: 0x1<br \/> HL [00:01:41.034,576]  cis_headset:        Octets per frame: 120 (96000   kbps)<br \/> HL [00:01:41.034,576]  cis_headset:        Frames per SDU: 1<br \/> HL [00:01:41.034,637]  bt_gatt: Device is not subscribed to characterist  ic<br \/> HL [00:01:41.133,239]  bt_gatt: Device is not subscribed to characterist  ic<br \/> HL [00:01:41.348,022]  audio_datapath: I2S RX overrun. Single msg<br \/> ->HL [00:01:42.965,972]  audio_datapath: Drft comp state: CALIB<br \/> HL [00:01:42.967,956]  audio_datapath: Data received, total underruns: 1  627<br \/> HL [00:01:43.065,979]  audio_datapath: Drft comp state: OFFSET<br \/> HL [00:01:43.525,390]  audio_datapath: Drft comp state: LOCKED<br \/> HL [00:01:43.535,064]  audio_datapath: Pres comp state: MEAS<br \/> HL [00:01:43.645,050]  audio_datapath: Pres comp state: WAIT<br \/> HL [00:01:43.745,056]  audio_datapath: Pres comp state: INIT<br \/> HL [00:01:43.755,065]  audio_datapath: Pres comp state: MEAS<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043f\u043e BLE 5.3 Gateway \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043f\u0438\u0448\u0435\u0442 \u0432\u043e\u0442 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 UART TUI. \u0412\u043e\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 gateway \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3c8\/842\/9e0\/3c88429e08bcfacaec02980f0c8a132f.png\" alt=\"\u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 gateway \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\" title=\"\u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 gateway \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\" width=\"1475\" height=\"901\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c8\/842\/9e0\/3c88429e08bcfacaec02980f0c8a132f.png\"\/><\/p>\n<div><figcaption>\u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 gateway \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9eb\/eaf\/c70\/9ebeafc707b3cfd7f5252d5fec4e33c8.png\" alt=\"\u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 gateway \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\" title=\"\u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 gateway \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\" width=\"976\" height=\"220\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9eb\/eaf\/c70\/9ebeafc707b3cfd7f5252d5fec4e33c8.png\"\/><\/figure>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u043c\u0443\u0437\u044b\u043a\u0443 \u0432 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0430\u0445 \u043d\u0430 headset \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435.  \u042d\u0442\u043e \u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Ble 5.3 headset \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/627\/dcc\/055\/627dcc055854451bb28860d8932d62a4.png\" width=\"1337\" height=\"1015\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/627\/dcc\/055\/627dcc055854451bb28860d8932d62a4.png\"\/><\/figure>\n<p><strong>\u0418\u0434\u0435\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 BLE 5.3:<\/strong><\/p>\n<p>&#8212;\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0446\u0438\u044e \u043f\u043e BLE Audio (CIS \u0440\u0435\u0436\u0438\u043c).<\/p>\n<p>&#8212;\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0435 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0438\/\u0433\u0440\u043e\u043c\u043a\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u0438 \u043f\u043e BLE Audio. \u041d\u0435 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u0440\u043e\u0432\u043e\u0434\u043a\u0443. <\/p>\n<p>&#8212;\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0441\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439 (BIS \u0440\u0435\u0436\u0438\u043c). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u043b\u0435\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f\u0445, \u043c\u0443\u0437\u0435\u044f\u0445, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u0430\u0445 \u0438 \u0442 \u043f.<\/p>\n<p><strong>\u0418\u0442\u043e\u0433\u0438<\/strong><\/p>\n<p>\u0423\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0445 BLE 5.3 (\u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0430\u0443\u0434\u0438\u043e). \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441ustom (\u043d\u044b\u0439) \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e bare-bone \u043f\u043e\u0442\u043e\u043a\u0430. \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 16bit, 48kHz \u0437\u0432\u0443\u043a\u0430 \u043f\u043e  BLE 5.3 \u0437\u0432\u0443\u043a \u043d\u0430 \u0441\u043b\u0443\u0445 \u0447\u0438\u0441\u0442\u044b \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439. BLE 5.3 \u0432 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0437\u0432\u0443\u043a\u0430.<\/p>\n<p><strong>\u0421\u043b\u043e\u0432\u0430\u0440\u044c<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\"><strong>\u0410\u043a\u0440\u043e\u043d\u0438\u043c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">LC3<\/p>\n<\/td>\n<td>\n<p align=\"left\">Low Complexity Communication codec  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">SDK<\/p>\n<\/td>\n<td>\n<p align=\"left\">Software Development Kit  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">HCI<\/p>\n<\/td>\n<td>\n<p align=\"left\">Host Controller Interface  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">I2S  <\/p>\n<\/td>\n<td>\n<p align=\"left\">Inter-IC Sound<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">PCM<\/p>\n<\/td>\n<td>\n<p align=\"left\">Pulse-code modulation<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">TWS<\/p>\n<\/td>\n<td>\n<p align=\"left\">True Wireless Stereo<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">DAC<\/p>\n<\/td>\n<td>\n<p align=\"left\">Digital-to-analog converter<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">FOTA\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">Firmware Over-The-Air  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">DFU<\/p>\n<\/td>\n<td>\n<p align=\"left\">device firmware update<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">RPM<\/p>\n<\/td>\n<td>\n<p align=\"left\">Remote Processor Messaging<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">SDU\u00a0  <\/p>\n<\/td>\n<td>\n<p align=\"left\">S???? Data Unit <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">SoC\u00a0  <\/p>\n<\/td>\n<td>\n<p align=\"left\">System on a chip<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">BLE<\/p>\n<\/td>\n<td>\n<p align=\"left\">Bluetooth Low Energy<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">ISO<\/p>\n<\/td>\n<td>\n<p align=\"left\">isochronous channels<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">BIS<\/p>\n<\/td>\n<td>\n<p align=\"left\">broadcast isochronous stream<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">CIS<\/p>\n<\/td>\n<td>\n<p align=\"left\">connected isochronous stream<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">GNU<\/p>\n<\/td>\n<td>\n<p align=\"left\">GNU\u2019s Not UNIX<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">GCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">GNU Compiler Collection<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">HAL <\/p>\n<\/td>\n<td>\n<p align=\"left\">hardware abstraction layer  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">SBC<\/p>\n<\/td>\n<td>\n<p align=\"left\">SubBand Codec<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"111\" width=\"111\">\n<p align=\"left\">LE<\/p>\n<\/td>\n<td>\n<p align=\"left\">Low Energy<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>Links\/URLs<\/strong><\/p>\n<p>nRF5340 Audio configuration and testing <a href=\"https:\/\/developer.nordicsemi.com\/nRF_Connect_SDK\/doc\/latest\/nrf\/applications\/nrf5340_audio\/README.html#nrf53-audio-app\" rel=\"noopener noreferrer nofollow\">https:\/\/developer.nordicsemi.com\/nRF_Connect_SDK\/doc\/latest\/nrf\/applications\/nrf5340_audio\/README.html#nrf53-audio-app<\/a><\/p>\n<p>nRF5340 Audio overview and firmware architecture <a href=\"https:\/\/developer.nordicsemi.com\/nRF_Connect_SDK\/doc\/latest\/nrf\/applications\/nrf5340_audio\/doc\/firmware_architecture.html\" rel=\"noopener noreferrer nofollow\">https:\/\/developer.nordicsemi.com\/nRF_Connect_SDK\/doc\/latest\/nrf\/applications\/nrf5340_audio\/doc\/firmware_architecture.html<\/a><\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u0430 BlueTooth \u043a\u043e\u043b\u043e\u043d\u043a\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/700102\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/700102\/<\/a><\/p>\n<p>Low Complexity Communication Codec (LC3) <a href=\"https:\/\/github.com\/google\/liblc3\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/google\/liblc3<\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><\/p>\n<div class=\"tm-article-poll-container\"><!--[--><\/p>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/705506\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 MCU nRF5340?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">16.67% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">2<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 16.67%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">83.33% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">10<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 83.33%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 12 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 3 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/705506\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\u0437-\u043f\u043e\u0434 Zephyr Project?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">41.67% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">5<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 41.67%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">58.33% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">7<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 58.33%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 12 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 3 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/705506\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 BLE 5.3?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">18.18% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">2<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 18.18%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">81.82% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">9<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 81.82%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 11 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 5 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. <\/div>\n<p><!--]--><\/div>\n<p><!--]--><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/705506\/\"> https:\/\/habr.com\/ru\/articles\/705506\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u0427\u0442\u043e \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e BLE 5.3? \u042d\u0442\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u0436\u0430\u0442\u043e\u0433\u043e \u0437\u0432\u0443\u043a\u0430. \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u0438\u044e\u043b\u0435 2021 \u0433\u043e\u0434\u0430.  \u0412 2022 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0437\u0446\u044b \u0447\u0438\u043f\u043e\u0432 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 SoC <strong>nrf5340 <\/strong>\u043e\u0442 Nordic Semiconductor. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u0431\u043e\u0440\u043e\u043a \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u0432\u0443\u043a\u0430 \u043f\u043e BLE-Audio. <\/p>\n<p>\u0412\u043e\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 <strong>\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b<\/strong> \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 BLE Audio: <\/p>\n<p>1&#8212;Gateway \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 <strong>\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438<\/strong> \u043e\u0442\u043c\u0435\u0442\u043a\u0430\u043c\u0438. <\/p>\n<p>2&#8212;\u0415\u0441\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 <strong>\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f<\/strong> \u0438 \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f  <\/p>\n<p>3&#8212;\u041f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 <strong>\u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f<\/strong> \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<p>4&#8212;\u0410\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0430\u043c\u043e\u043c\u0443 BLE  \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 <strong>\u0441\u0436\u0430\u0442\u043e\u043c<\/strong> \u0432\u0438\u0434\u0435 (encoded audio data). \u0421\u0436\u0430\u0442\u0438\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u043a LC3<\/p>\n<p>5&#8212;\u0427\u0430\u0441\u0442\u043e\u0442\u0430 <strong>\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438<\/strong> \u043d\u0430\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 8kHz&#8230;..48kHz<\/p>\n<p>6&#8212;\u0411\u0438\u0442\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c 16kBit\/s&#8230;.<strong>320kBit\/s<\/strong> \u043d\u0430 \u043a\u0430\u043d\u0430\u043b<\/p>\n<p>7&#8212;\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u0430 <strong>\u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f<\/strong> \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0430\u0443\u0434\u0438\u043e \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<p>8&#8212;\u041f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0443\u0434\u0438\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430<\/p>\n<p>9&#8212;Gateway \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c 2 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a\u0430 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e (Connected Isochronous Stream (CIS). <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u043a LC3 \u0434\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f \u0437\u0432\u0443\u043a\u0430 <u>\u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0439<\/u>. \u0426\u0435\u043d\u0430 \u043d\u0430 \u043d\u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 NRF5 SDK \u0432\u0435\u0440\u0441\u0438\u0438 2.1.0.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/strong><\/p>\n<p>\u0415\u0441\u0442\u044c \u043f\u043e \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043c\u0435\u0440\u0435 \u0434\u0432\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438: nRF5340-DK($66.01) nRF5340-ADK($224.03). <\/p>\n<figure class=\"full-width\">\n<div><figcaption><strong>nrf5340-ADK <\/strong>($224.03)<\/figcaption><\/div>\n<\/figure>\n<p>\u0438 nrf5340-DK.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>nrf5340-DK($66.01)<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u0430\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0437\u0432\u0443\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u0440\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 USB \u0438\u0437 NetTop-PC. \u0412\u043e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f BLE \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 SDK \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430 \u043d\u0430\u0434\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445 <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\"><strong>\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">DeviceTree<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">Kconfig<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">GDB<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">DTS  <\/p>\n<\/td>\n<td>\n<p align=\"left\">DeviceTree Specification  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">GCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440. \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u0431\u0438\u043d\u0430\u0440\u044f)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">GIT<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">west<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f 4\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 (RTOS, Bootloader, HAL, SDK)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">Ninja<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">CMake<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043f\u043e\u0441\u043e\u0431 \u0430\u0432\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 (Ninja, make, IDExml) <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">nrfx<\/p>\n<\/td>\n<td>\n<p align=\"left\">HAL \u0434\u043b\u044f nrf \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">VS Code<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u043a\u043e\u0439-\u0442\u043e \u0445\u0438\u043f\u0441\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">MCUboot<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"136\" width=\"136\">\n<p align=\"left\">Zephyr RTOS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f MCU(\u0448\u0435\u043a)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0423 Nordic Semiconductor \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 BLE 5.3 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Zephyr RTOS \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 <strong>nrf5340<\/strong>. \u0418\u0445 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432 \u043f\u0430\u043f\u043a\u0435 <\/p>\n<pre><code>C:\\ncs\\v2.1.0\\nrf\\applications\\nrf5340_audio<\/code><\/pre>\n<p>\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u0430\u0440\u043e\u0447\u043a\u0438 \u043f\u043b\u0430\u0442 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <strong>nrf5340-ADK. <\/strong>\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f nrf5340-ADK \u043c\u043e\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0448\u0435\u0432\u044b\u0445 \u043f\u043b\u0430\u0442 nrf5340-DK. <\/p>\n<p>\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\"><strong>\u041f\u043e\u043d\u044f\u0442\u0438\u0435<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\"><strong>\u041f\u0435\u0440\u0435\u0432\u043e\u0434<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">GateWay\u00a0<\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\u0448\u043b\u044e\u0437 <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442 \u0437\u0432\u0443\u043a \u0432 BLE<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">HeadSet <\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u0432\u0443\u043a \u0438\u0437 BLE<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 BLE 5.3 \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 CIS \u0438 BIS.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\"><strong>\u0420\u0435\u0436\u0438\u043c<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"157\" width=\"157\">\n<p align=\"left\"><strong>\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <\/strong><\/p>\n<p align=\"left\"><strong>\u0434\u0430\u043d\u043d\u044b\u0445<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"133\" width=\"133\">\n<p align=\"left\"><strong>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 <\/strong><\/p>\n<p align=\"left\"><strong>\u0441 GateWay<\/strong>\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>channels<\/strong>  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">CIS <\/p>\n<\/td>\n<td data-colwidth=\"157\" width=\"157\">\n<p align=\"left\">\u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439<\/p>\n<\/td>\n<td data-colwidth=\"133\" width=\"133\">\n<p align=\"left\">\u0435\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">BIS<\/p>\n<\/td>\n<td data-colwidth=\"157\" width=\"157\">\n<p align=\"left\">\u043e\u0434\u043d\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439<\/p>\n<\/td>\n<td data-colwidth=\"133\" width=\"133\">\n<p align=\"left\">\u043d\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">?<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b BLE Audio \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 Zephyr RTOS. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c BLE Audio, \u0442\u043e \u0442\u0443\u0442 \u0431\u0435\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 Zephyr Project.<\/p>\n<p><strong>GateWay \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 (I2S->BLE 5.3)<\/strong>\u00a0  <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f GateWay. \u041f\u043b\u0430\u0442\u0430 NRF5340-DK \u0431\u0440\u0430\u043b\u0430 \u0437\u0432\u0443\u043a \u0438\u0437 I2S \u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044f BT1026 \u0438 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u044d\u0442\u043e\u0442 \u0437\u0432\u0443\u043a \u0432 BLE 5.3. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f BLE 5.3 GateWay \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e \u0442\u043e \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 BT1026 \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/700102\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/700102\/<\/a><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a BLE Audio \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430\u0434\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 GateWay. \u0412 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 GateWay \u0435\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\"><strong>#<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Thread name<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>priority<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Stack size<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">ENCODER<\/p>\n<\/td>\n<td>\n<p align=\"left\">-2<\/p>\n<\/td>\n<td>\n<p align=\"left\">6752<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">AUDIO DATAPATH<\/p>\n<\/td>\n<td>\n<p align=\"left\">-1<\/p>\n<\/td>\n<td>\n<p align=\"left\">4096<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">BT RX<\/p>\n<\/td>\n<td>\n<p align=\"left\">-8<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">BT TX<\/p>\n<\/td>\n<td>\n<p align=\"left\">-9<\/p>\n<\/td>\n<td>\n<p align=\"left\">1024<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">syswork<\/p>\n<\/td>\n<td>\n<p align=\"left\">-1<\/p>\n<\/td>\n<td>\n<p align=\"left\">4096<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">shell_rtt<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">8192<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">loggong<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">idle<\/p>\n<\/td>\n<td>\n<p align=\"left\">15<\/p>\n<\/td>\n<td>\n<p align=\"left\">2048<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">main<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">8192<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0440\u044f\u0434\u043e\u043c \u0441 BLE 5.3. \u0422\u043e\u0433\u0434\u0430 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c custom \u043f\u043e\u0442\u043e\u043a \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c. \u0412 Zephyr \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430, \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u043e\u0442\u043e\u043a\u0430. <\/p>\n<p>\u041a\u043e\u0434 BlueTooth \u043e\u0447\u0435\u043d\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043a \u0436\u0435\u0441\u0442\u043a\u043e\u043c\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0432\u0430\u0448\u0435\u0433\u043e custom \u043f\u043e\u0442\u043e\u043a\u0430, \u0442\u043e \u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u043c \u0437\u0432\u0443\u043a\u0435 \u0412\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0449\u0435\u043b\u0447\u043a\u0438. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0430\u0443\u0434\u0438\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f. <\/p>\n<p>Gateway \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0417\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u0417\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0436\u0438\u043c\u0430\u044e\u0442\u0441\u044f LC3 \u043a\u043e\u0434\u0435\u043a\u043e\u043c. \u0421\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0432 Bluetooth LE Host. Bluetooth LE Host \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0443 LE Audio Controller Subsystem \u0434\u043b\u044f nRF53 \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u044f\u0434\u0440\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u041f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0430\u0434\u0438\u043e \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u043c\u0438 LE Audio.<\/p>\n<p>Gateway \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 USB, \u043d\u043e \u0438 \u0438\u0437 I2S. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0430\u0443\u0434\u0438\u043e-\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0438\u0437 I2S, \u0442\u043e \u043d\u0443\u0436\u043d\u0430 \u0444\u0430\u0437\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u042d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u0437\u0432\u0443\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>Synchronization module \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435. \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u0437 I2S \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u043e\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0442\u043e\u043a \u0441\u0436\u0430\u0442\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 streamctrl.c<\/p>\n<p><strong>\u041e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438<br \/><\/strong><br \/>\u041c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 \u0444\u0430\u0439\u043b\u0435 audio_datapath.c. \u0414\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0432\u0443\u043a\u0430 \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u0435\u0440\u0435\u0432\u043e\u0434<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong> <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Presentation compensation<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Drift compensation<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/strong> \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0432\u0443\u043a \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0430\u0443\u0434\u0438\u043e \u043a\u0430\u0434\u0440\u044b, \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430\u0445. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u043d \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0431\u043b\u043e\u043a\u0438 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0445 \u0432 FIFO \u0432\u043f\u0435\u0440\u0435\u0434 \u0438\u043b\u0438 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0431\u043b\u043e\u043a\u0438 \u0442\u0438\u0448\u0438\u043d\u044b.<\/p>\n<p><strong>\u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/strong> \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u0441\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430. \u042d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 connected isochronous stream (CIS), \u0433\u0434\u0435 gateway\u00a0(\u0448\u043b\u044e\u0437) \u0438 headsets\u00a0  \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430 True Wireless Stereo (TWS). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0432\u0443\u043a\u0430. \u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u044e\u0431\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u043c\u0438 \u0432 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445 \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u044b\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u043d\u0430\u0431\u043e\u0440\u0430\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e X1 32MHz. \u041e\u0434\u043d\u0430\u043a\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u044d\u0442\u0438\u0445 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f.  \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 I2S \u043d\u0430 headset(\u0430\u0445)\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a \u0436\u0435 \u0431\u044b\u0441\u0442\u0440\u043e, \u043a\u0430\u043a \u043f\u0440\u0438\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Bluetooth. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <strong>\u043f\u0435\u0440\u0435<\/strong>\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 <strong>\u043d\u0435\u0434\u043e<\/strong>\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 I2S \u043a\u0430\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 CIS, \u0442\u0430\u043a \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 BIS.<\/p>\n<p>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f \u0430\u0443\u0434\u0438\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 nRF5340<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0431\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 SDU (sdu_ref) \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0448\u043b\u044e\u0437\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 I2S \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0437\u0432\u0443\u043a\u0430, \u0430 \u043f\u043e\u0442\u043e\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c (\u043e\u0442 \u0448\u043b\u044e\u0437\u0430 \u043a \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430\u043c), sdu_ref \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0437 LE Audio Controller Subsystem \u0434\u043b\u044f nRF5340 \u043d\u0430 \u0448\u043b\u044e\u0437\u0435. \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 le_audio_cis_gateway.c \u0438 le_audio_bis_gateway.c. \u0417\u0430\u0442\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f sdu_ref \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u043b\u044e\u0437\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 nRF5340 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>\u0434\u0432\u0443\u0445\u044a\u044f\u0434\u0435\u0440\u043d\u044b\u043c<\/strong> SoC, \u0442\u043e \u043e\u0431\u043e\u0438\u043c \u044f\u0434\u0440\u0430\u043c (App Core, Net Core) \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <strong>\u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f<\/strong> \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f <strong>\u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/strong>, \u043a\u0430\u0436\u0434\u043e\u0435 \u044f\u0434\u0440\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0432 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435. \u042d\u0442\u0438 \u0434\u0432\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f <strong>\u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e<\/strong> \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0432\u0430 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u0438\u0445 \u0438 \u0442\u0435\u0445 \u0436\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<br \/>Net core  nRF5340, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 LE controller \u0434\u043b\u044f nRF53, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u0438 sdu_ref \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0443\u0434\u0438\u043e \u043f\u0430\u043a\u0435\u0442\u0430. App core , \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0441 \u0430\u0443\u0434\u0438\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c nRF5340, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 cur_time \u0438 frame_start_ts.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043b\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 FIFO. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u0438 \u0431\u043b\u043e\u043a\u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 I2S, \u0431\u043b\u043e\u043a \u0437\u0430 \u0431\u043b\u043e\u043a\u043e\u043c.<\/p>\n<p>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 nRF5340 Audio \u0434\u043b\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (presentation compensation  ) \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u044b:<\/p>\n<p>&#8212; \u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c (DRIFT_STATE_LOCKED), \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044e \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u042d\u0442\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u0441\u043e\u0432, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u0437\u0432\u0443\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e. \u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (PRES_STATE_INIT). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e, \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 DRIFT_STATE_LOCKED, \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 PRES_STATE_INIT.<\/p>\n<p>&#8212; \u041f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0430\u0443\u0434\u0438\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0430\u0443\u0434\u0438\u043e\u043a\u0430\u0434\u0440 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f ISO. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 (headset) \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430 \u0441\u0432\u044f\u0437\u044c \u0441\u043e \u0448\u043b\u044e\u0437\u043e\u043c (gateway). \u041a\u043e\u0433\u0434\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 sdu_ref, \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c sdu_ref. \u0417\u0430\u0442\u0435\u043c \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 PRES_STATE_WAIT, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0437\u0432\u0443\u043a \u0432\u0441\u0435 \u0435\u0449\u0435 \u0432 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0438 \u0434\u0440\u0435\u0439\u0444, \u0438 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 (DRIFT_STATE_LOCKED \u0438 PRES_STATE_LOCKED), \u0437\u0430\u0433\u043e\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 2.<\/p>\n<p><strong>\u041a\u0430\u043a\u043e\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438?<\/strong><\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 I2S \u0438\u0434\u0443\u0442 \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0443\u0442\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\"><strong>\u041f\u043e\u0440\u044f\u0434\u043e\u043a<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">LE Audio Controller Subsystem \u0434\u043b\u044f nRF53, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u044f\u0434\u0440\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0445\u043e\u0441\u0442 Zephyr Bluetooth LE \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 Bluetooth: HCI RPMsg. \u042d\u0442\u043e \u043c\u0435\u0436\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0425\u043e\u0441\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u043c streamctrl.c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440 FIFO.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 FIFO \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 audio_datapath.c. \u041c\u043e\u0434\u0443\u043b\u044c audio_datapath.c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0443\u0434\u0438\u043e\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-386583","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/386583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=386583"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/386583\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=386583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=386583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=386583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}