The channel descriptor table comprises 64 channel table RAM entries. Each entry is 128-bit. The first entry starts at address 00h and the 64th entry at address 3Fh. Each 128-bit entry of the channel descriptor table is referenced by a connection label and contains information about data buffer in the data buffer RAM (that is, buffer size, or address pointers). The format of each channel descriptor table entry depends on the channel type (synchronous, isochronous, asynchronous, or control).
Software must write all reserved channel descriptor bits to ’0’ when the entry is initialized.
Synchronous Channel Descriptor Table
The MLBSS provides two modes of operation (standard and multi-frame per sub-buffer) to provide flexibility for implementing synchronous channels.
Channels set up for standard mode require less buffer space. For channels configured for standard mode, the host controller must transfer one full frame of streaming data in/out of the data buffer of each streaming channel.
Channels set up for multiple-frames per sub-buffer mode require more buffer space. For channels configured for multiple-frames per sub-buffer mode, the host controller must transfer N full frames of streaming data in/out of the data buffer of each streaming channel.
To set up a channel in multi-frame per sub-buffer mode:
Program the MLB_MLBC0[17-15] FCNT bit field to
select the number of frames per sub-buffer Program the channel allocation table to enable multi-frame sub-buffering (MFE = 1) for each particular channel Set the buffer depth (BD[11-0]) in the channel descriptor table Repeat for additional synchronous channels A sample synchronous data buffer is shown in Figure 12-49 . Each data buffer contains four sub-buffers and each sub-buffer contains space
for 1 to 64 frames of data, determined by MLB_MLBC0[17-15] FCNT bit field.
The format of a synchronous channel descriptor table entry is shown in Table 12-50 . All reserved bits should be written to zero.
var tiPageName = 'Literature reader-SPRUJC6A-ja_JP';
var tiDocType = 'Technical Reference';
var tiLibraryStore = new com.TI.tiLibrary.tiLibraryStore();
var tiLibraryViewerStore = tiLibraryStore.viewer_store;
RiotControl.addStore(tiLibraryStore);
var subRoutes = riot.route.create();
subRoutes("/document-viewer/*/datasheet/*\\?*#*", function(gpn, url, params, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + gpn + "/datasheet/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/datasheet/*#*", function(gpn, url, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + gpn + "/datasheet/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/datasheet/*", function(gpn, url) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + gpn + "/datasheet/" + url,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/*/datasheet/*\\?*#*", function(locale, gpn, url, params, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/" + gpn + "/datasheet/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/*/datasheet/*#*", function(locale, gpn, url, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/" + gpn + "/datasheet/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/*/datasheet/*", function(locale, gpn, url) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/" + gpn + "/datasheet/" + url,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/datasheet#*/*", function(gpn, url, fragment) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + gpn + "/datasheet#" + url + "/" + fragment,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/*/datasheet#*/*", function(locale, gpn, url, fragment) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/" + gpn + "/datasheet#" + url + "/" + fragment,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/lit/html/*", function(litnum) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/lit/html/" + litnum,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/lit/html/*/*\\?*#*", function(litnum, url, params, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/lit/html/" + litnum + "/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/lit/html/*/*#*", function(litnum, url, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/lit/html/" + litnum + "/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/lit/html/*#*/*", function(litnum, url, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/lit/html/" + litnum + "#" + url + "/" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/lit/html/*#*/*", function(locale, litnum, url, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/lit/html/" + litnum + "#" + url + "/" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/lit/html/*/*", function(litnum, url) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/lit/html/" + litnum + "/" + url,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/lit/html/*/*\\?*#*", function(locale, litnum, url, params, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/lit/html/" + litnum + "/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/lit/html/*/*#*", function(locale, litnum, url, anchor) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/lit/html/" + litnum + "/" + url + "#" + anchor,
toc: true,
set_content: true });
});
subRoutes("/document-viewer/*/lit/html/*/*", function(locale, litnum, url) {
RiotControl.trigger("ti_library_open_viewer", {
document: tiLibraryViewerStore.document,
documentLocale: tiLibraryViewerStore.documentLocale,
url: "/document-viewer/" + locale + "/lit/html/" + litnum + "/" + url,
toc: true,
set_content: true });
});
var compose_url = function(q) {
//URL format: scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
var tempUrl = q.url.replace("//www.ti.com/", "");
var url = tempUrl.replace("//www.ti.com/", "");
if (q.search != null) {
var params = "";
var hash = "";
var url_parts = url.split('#');
if (url_parts.length == 2) {
url = url_parts[0];
hash = url_parts[1];
}
var param_parts = url.split('?');
if (param_parts.length == 2) {
url = param_parts[0];
var parsed_params = param_parts[1].split('&');
var keyword_param_found = false;
for (var i = 0; i < parsed_params.length; i++) {
if (parsed_params[i].indexOf('search=') == 0) {
keyword_param_found = true;
parsed_params[i] = 'search=' + q.search;
}
}
if (!keyword_param_found) {
parsed_params.push('search=' + q.search);
}
params = parsed_params.join('&');
} else {
params = 'search=' + q.search;
}
if (params > "") {
url = url + '?' + params;
}
if (hash > "") {
url = url + '#' + hash;
}
}
return url;
};
tiLibraryViewerStore.compose_url_route = function(location, q) {
return compose_url(q);
};
tiLibraryViewerStore.compute_content_href = function(href, url) {
return url;
};
tiLibraryViewerStore.compose_topic_url = function(location, q) {
return compose_url(q);
};
tiLibraryViewerStore.important_notice_url = "//www.ti.com/document-viewer/ja-jp/lit/html/SPRUJC6A/important_notice#ImpNotice001";
var ods_reader = riot.mount('ti-library-viewer', {
store: tiLibraryStore.list_store,
viewerstore: tiLibraryViewerStore
});
riot.route.base('/');
riot.route.start(true);
compute_document_locale = function(docName) {
var locale = 'en_US';
if (docName) {
if (docName.toLowerCase().indexOf('z')===0) {
locale = 'zh_CN';
} else if (docName.toLowerCase().indexOf('j') == 0) {
locale = 'ja_JP';
}
}
return locale;
}
open_reader = function() {
var path = window.location.pathname.split('/');
var path_minus_filename = '';
for (var i = 0; i < path.length - 1; i++) {
if (i == 0 && path[i] == '') {
console.log("double slashes found in beginning of document path; treating document path as local machine path");
continue;
}
path_minus_filename += "/" + path[i];
}
RiotControl.trigger("ti_library_open_viewer", {
documentLocale: compute_document_locale( "SPRUJC6A"),
document: {
href: path_minus_filename,
lit_num: "SPRUJC6A",
doc_type: "Technical Reference",
show_toc: "true",
translated_doc_type: "User guide",
gpn: "",
title: "AM275x Signal Processors Technical Reference Manual",
disclaimer: "",
product: "//www.ti.com/product/ja-jp/",
email: 'mailto:?subject=SPRUJC6A AM275x Signal Processors Technical Reference Manual&body=http://www.ti.com/document-viewer/ja-jp/lit/html/SPRUJC6',
download: '//www.ti.com/jp/lit/pdf/SPRUJC6A',
tistore: '//store.ti.com/Search.aspx?k=&pt=-1',
productstatusdescription: ''
},
url: "/document-viewer/ja-jp//datasheet/GUID-269AC4EC-32A8-4E34-A9C3-9D14F95EE74B",
prepopulated: true,
modalOptions: {
dismissible: false
}
});
}
open_reader();