{"id":3629,"date":"2025-04-21T05:37:03","date_gmt":"2025-04-21T05:37:03","guid":{"rendered":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?post_type=spl_knowledgebase&#038;p=3629"},"modified":"2025-06-10T12:09:51","modified_gmt":"2025-06-10T12:09:51","slug":"spx-communications-instructions","status":"publish","type":"spl_knowledgebase","link":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/","title":{"rendered":"SPx communications instructions"},"content":{"rendered":"\n<p>This chapter details the generic SPx communications instructions. These are the basic instructions that control command and data communications between the UV register pair inside the SPLat processor and SPx peripherals.<\/p>\n\n\n\n<p>These are generic instructions. Most peripherals will eventually get their own specific instructions as well. Those instructions will be synthesised by SPLat\/PC using the generic SPx\u00a0<em>communications<\/em>\u00a0instructions in this chapter, the generic\u00a0<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/uv-transfer-instructions\/\">UV\u00a0<em>transfer<\/em>\u00a0instructions and regular SPLat instructions.<\/a><\/p>\n\n\n\n<p>The SPx communications instructions all combine an implied command to a peripheral with a set amount of data. There are 5 instructions for outgoing commands and data and 4 to interrogate (poll) the peripheral for incoming data. Each instruction deals with a different amount of data. One of the 9 instructions supports 128 command codes, while the rest support 16 codes. A small number are reserved for fixed system related use.<\/p>\n\n\n\n<p>When the SPLat processor executes an SPx communications&nbsp;<em>instruction<\/em>, it composes and sends a&nbsp;<em>message<\/em>&nbsp;to the peripheral. The message will contain the peripheral address (which is an instruction argument), a command code (which is also an instruction argument) and some data. The data comes from UV as prescribed by the instruction itself. Once the processor has sent the message, it waits for a response from the peripheral. The addressed peripheral will always respond, even if the message is not one it supports (in the event of a program bug). The normal response will always contain a prescribed amount of data, which the processor will save in UV. There is also a mechanism for error handling, i.e. an abnormal response or no response.<\/p>\n\n\n\n<p>There are instructions for transferring 0, 1, 2 or 4 bytes of data, plus one in either direction for variable length data blocks (1 to 20 bytes).<\/p>\n\n\n\n<p>The following sections describe the communications instructions. The instruction is summarized in the section heading. The following nomenclature is used:<\/p>\n\n\n\n<p>Mnemonic cc,aaaa [In] or [Out]<\/p>\n\n\n\n<p><em>Mnemonic<\/em>&nbsp;is the key word recognised by the SPLat development environment (SPLat\/PC or SPLat\/IDE).<\/p>\n\n\n\n<p><em>cc<\/em>&nbsp;is the command code. This can be a number between 0 and 127 in the instruction that has 0 bytes of data and between 0 and 15 in the remaining instructions. Each command code cc results in a different response in the peripheral.<\/p>\n\n\n\n<p><em>aaaa<\/em>\u00a0is the 16-bit peripheral address. This selects a particular peripheral as the target for the instruction. Addresses are allocated by us and will normally be locked into the\u00a0<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/glossary-of-terms\/#o370\" target=\"_blank\" rel=\"noreferrer noopener\">Firmware<\/a>\u00a0driving the peripheral.<\/p>\n\n\n\n<p>[In] or [Out] denotes which direction the resulting data will flow. [Out] means data is transferred from UV to the peripheral. [In] means it is transferred from the peripheral to UV.<\/p>\n\n\n\n<p>U(n) denotes byte n of U, counting from 0, i.e. the 20 bytes of the U register are designated U(0) through U(19).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This chapter details the generic SPx communications instructions. These are the basic instructions that control command and data communications between the UV register pair inside&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3610,"menu_order":3,"template":"","class_list":["post-3629","spl_knowledgebase","type-spl_knowledgebase","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SPx communications instructions - SPLat Controls<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SPx communications instructions - SPLat Controls\" \/>\n<meta property=\"og:description\" content=\"This chapter details the generic SPx communications instructions. These are the basic instructions that control command and data communications between the UV register pair inside...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/\" \/>\n<meta property=\"og:site_name\" content=\"SPLat Controls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-10T12:09:51+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/\",\"name\":\"SPx communications instructions - SPLat Controls\",\"isPartOf\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\"},\"datePublished\":\"2025-04-21T05:37:03+00:00\",\"dateModified\":\"2025-06-10T12:09:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorials, application notes and white papers\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The SPLat Expansion Framework\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"SPx communications instructions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\",\"name\":\"SPLat Controls\",\"description\":\"OEM Embedded Machine Controllers\",\"publisher\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization\",\"name\":\"SPLat Controls\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg\",\"contentUrl\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg\",\"caption\":\"SPLat Controls\"},\"image\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SPx communications instructions - SPLat Controls","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"SPx communications instructions - SPLat Controls","og_description":"This chapter details the generic SPx communications instructions. These are the basic instructions that control command and data communications between the UV register pair inside...","og_url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/","og_site_name":"SPLat Controls","article_modified_time":"2025-06-10T12:09:51+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/","name":"SPx communications instructions - SPLat Controls","isPartOf":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website"},"datePublished":"2025-04-21T05:37:03+00:00","dateModified":"2025-06-10T12:09:51+00:00","breadcrumb":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/spx-communications-instructions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/"},{"@type":"ListItem","position":2,"name":"Tutorials, application notes and white papers","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/"},{"@type":"ListItem","position":3,"name":"The SPLat Expansion Framework","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/the-splat-expansion-framework\/"},{"@type":"ListItem","position":4,"name":"SPx communications instructions"}]},{"@type":"WebSite","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/","name":"SPLat Controls","description":"OEM Embedded Machine Controllers","publisher":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization","name":"SPLat Controls","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg","contentUrl":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg","caption":"SPLat Controls"},"image":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase\/3629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase"}],"about":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/types\/spl_knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/users\/1"}],"up":[{"embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase\/3610"}],"wp:attachment":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/media?parent=3629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}