angpeu
Sep 22 2008, 05:09
sdfev2.1_compact_0.2.4.0 + drv_pef24624e-0[1].0.0.9
я их как раз и скрестил ...... поэтому с endianом вроде порядок .... настройки взял как раз из компакта .... думаю что или чего то недосмотрел там, или чего то недопаял ...
вот чего конфигурю:
/* SDFE-4 Configuration created from Trackfile
track2sdfe4cfg stylesheet version:
Id: track2sdfe4cfg.xsl,v 1.1 2004/07/29 14:04:43 langer Exp
*/
const sdfe4_config_entry_aux_t SDFE4_CFG_PREFIXED_NAME(aux_msg)[] = {
{ CMD_WR_REG_AUX_AUX_IF_MODE /* 129 */ , 0x82 },
{ CMD_WR_REG_AUX_SDI_IF_SEL_0 /* 137 */ , 0x00 },
{ CMD_WR_REG_AUX_SDI_IF_SEL_3 /* 161 */ , 0x03 },
{ CMD_WR_REG_AUX_MUX4_LOW_SEL /* 113 */ , 0x00 },
{ CMD_WR_REG_AUX_MUX10_LOW_SEL /* 97 */ , 0x00 },
{ CMD_WR_REG_AUX_MUX10_HIGH_SEL /* 105 */ , 0x00 },
};
const cmd_cfg_sym_dsl_mode_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sym_dsl_mode_COT) =
{
0x01, /* mode */
0x00, /* repeater */
0x01, /* standard */
0x00, /* rsvd0 */
0x00, /* rsvd1 */
0x00, /* rsvd2 */
0x00, /* rsvd3 */
0x00, /* rsvd4 */
0x00, /* rsvd5 */
0x00, /* rsvd6 */
0x00, /* rsvd7 */
};
const cmd_cfg_ghs_mode_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_ghs_mode_COT) =
{
0x00, /* transaction */
0x00, /* startup_initialization */
0x00, /* pbo_mode */
0x00, /* pmms_margin_mode */
0x08, /* epl_mode */
0x00, /* rsvd1 */
0x00, /* rsvd2 */
0x00, /* rsvd3 */
0x00, /* rsvd4 */
0x00, /* rsvd5 */
0x00, /* rsvd6 */
0x00, /* rsvd7 */
};
const cmd_cfg_sym_dsl_mode_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sym_dsl_mode_RT) =
{
0x02, /* mode */
0x00, /* repeater */
0x01, /* standard */
0x00, /* rsvd0 */
0x00, /* rsvd1 */
0x00, /* rsvd2 */
0x00, /* rsvd3 */
0x00, /* rsvd4 */
0x00, /* rsvd5 */
0x00, /* rsvd6 */
0x00, /* rsvd7 */
};
const cmd_cfg_ghs_mode_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_ghs_mode_RT) =
{
0x00, /* transaction */
0x80, /* startup_initialization */
0x00, /* pbo_mode */
0x00, /* pmms_margin_mode */
0x08, /* epl_mode */
0x00, /* rsvd1 */
0x00, /* rsvd2 */
0x00, /* rsvd3 */
0x00, /* rsvd4 */
0x00, /* rsvd5 */
0x00, /* rsvd6 */
0x00, /* rsvd7 */
};
const cmd_connect_ctrl_t SDFE4_CFG_PREFIXED_NAME(cmd_connect_ctrl) =
{
0x01, /* state */
0x00, /* rsvd1 */
CPU_TO_LE16( 0x0000), /* rsvd2 */
};
const cmd_cfg_caplist_short_ver_2_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_caplist_short) =
{
/** Clocking Mode according to g.991.2 */
/*SHDSL_CLK_MODE_2,*/
0x04, //SHDSL_CLK_MODE_3a
/** Annex */
0x07, //ANNEX_A_B_EFM,
/** Power Spectral Density Mask */
0x00,
/** Power Backoff */
0x00,
/** Minimum of the range of Base Data Rates or first rate in case of asymmetric PSDs */
CPU_TO_LE16 (0x00C0),
/** Maximum of the range of Base Data Rates or second rate in case of asymmetric PSDs */
CPU_TO_LE16 (0x0900),
/** Minimum of the range of extended Base Data Rates 16 TC-PAM */
CPU_TO_LE16 (0x0900),
/** Maximum of the range of extended Base Data Rates 16 TC-PAM */
CPU_TO_LE16 (0x0f00),
/** Minimum of the range of extended Base Data Rates 32 TC-PAM */
CPU_TO_LE16 (0x0300),
/** Maximum of the range of extended Base Data Rates 32 TC-PAM */
CPU_TO_LE16 (0x1640),
/** Minimum Sub Data rate */
0x00,
/** Maximum Sub Data rate */
0x00,
/** Enable PMMS */
0x00, //PMMS_OFF,
/** pmms_margin */
0x00,
/** for future use */
0x03, //ANNEX_A_B,
/** for future use */
0x00,
/** for future use */
0x00,
/** for future use */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00,
/** number of the octet */
0x00,
/** value of the coctet */
0x00
};
const cmd_cfg_sdi_settings_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_settings) =
{
0x03, /* input_mode */
0x05, /* output_mode */
CPU_TO_LE16( 0xffff ), /* frequency */
CPU_TO_LE16( 0x0800 ), /* payload_bits */
0x30, /* frames */
0x00, /* loop */
0x00, /* ext_clk8k */
0x00, /* dpll4bclk */
0x03, /* refclkin_freq */
0x13, /* refclkout_freq */
};
const cmd_cfg_sdi_tx_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_tx) =
{
CPU_TO_LE32( 0x00000000), /* data_shift */
0x00, /* frame_shift */
0x01, /* sp_level */
0x01, /* sp_sample_edg */
0x01, /* data_sample_edg */
CPU_TO_LE32( 0x00000093), /* lstwr_1strd_dly */
0x03, /* slip_mode */
0x00, /* rsvd1 */
0x00, /* rsvd2 */
0x00, /* rsvd3 */
};
const cmd_cfg_sdi_rx_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_rx) =
{
CPU_TO_LE32( 0x00000000), /* data_shift */
0x00, /* frame_shift */
0x01, /* sp_level */
0x00, /* driving_edg */
0x00, /* data_shift_edg */
CPU_TO_LE32( 0x00000093), /* lstwr_1strd_dly */
0x03, /* slip_mode */
0x00, /* rsvd1 */
0x01, /* rsvd2 */
0x00, /* rsvd3 */
};
const cmd_cfg_sdi_il_channels_rx_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_rx_COT) =
{
0x01, /* il_ch_count */
0x01, /* active_il_ch */
0x00, /* rsvd0 */
0x00, /* rsvd1 */
};
const cmd_cfg_sdi_il_channels_tx_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_tx_COT) =
{
0x01, /* il_ch_count */
0x01, /* active_il_ch */
0x00, /* rsvd0 */
0x00, /* rsvd1 */
};
const cmd_cfg_sdi_il_channels_rx_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_rx_RT) =
{
0x03, /* il_ch_count */
0x03, /* active_il_ch */
0x00, /* rsvd0 */
0x00, /* rsvd1 */
};
const cmd_cfg_sdi_il_channels_tx_t SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_tx_RT) =
{
0x03, /* il_ch_count */
0x03, /* active_il_ch */
0x00, /* rsvd0 */
0x00, /* rsvd1 */
};
//*/
const sdfe4_config_entry_pamdsl_t SDFE4_CFG_PREFIXED_NAME(pamdsl_msg)[] = {
{ 0, CMD_CFG_SYM_DSL_MODE, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sym_dsl_mode_COT), sizeof(cmd_cfg_sym_dsl_mode_t) },
{ 0, CMD_CFG_GHS_MODE, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_ghs_mode_COT), sizeof(cmd_cfg_ghs_mode_t) },
{ 0, CMD_CFG_CAPLIST_SHORT_VER_2, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_caplist_short), sizeof(cmd_cfg_caplist_short_ver_2_t) },
{ 0, CMD_CFG_SDI_SETTINGS, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_settings), sizeof(cmd_cfg_sdi_settings_t) },
{ 0, CMD_CFG_SDI_TX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_tx), sizeof(cmd_cfg_sdi_tx_t) },
{ 0, CMD_CFG_SDI_RX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_rx), sizeof(cmd_cfg_sdi_rx_t) },
{ 0, CMD_CFG_SDI_IL_CHANNELS_RX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_rx_COT), sizeof(cmd_cfg_sdi_il_channels_rx_t) },
{ 0, CMD_CFG_SDI_IL_CHANNELS_TX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_tx_COT), sizeof(cmd_cfg_sdi_il_channels_tx_t) },
{ 0, CMD_CONNECT_CTRL, & SDFE4_CFG_PREFIXED_NAME(cmd_connect_ctrl), sizeof(cmd_connect_ctrl_t) },
{ 3, CMD_CFG_SYM_DSL_MODE, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sym_dsl_mode_RT), sizeof(cmd_cfg_sym_dsl_mode_t) },
{ 3, CMD_CFG_GHS_MODE, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_ghs_mode_RT), sizeof(cmd_cfg_ghs_mode_t) },
{ 3, CMD_CFG_CAPLIST_SHORT_VER_2, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_caplist_short), sizeof(cmd_cfg_caplist_short_ver_2_t) },
{ 3, CMD_CFG_SDI_SETTINGS, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_settings), sizeof(cmd_cfg_sdi_settings_t) },
{ 3, CMD_CFG_SDI_RX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_rx), sizeof(cmd_cfg_sdi_rx_t) },
{ 3, CMD_CFG_SDI_TX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_tx), sizeof(cmd_cfg_sdi_tx_t) },
{ 3, CMD_CFG_SDI_IL_CHANNELS_RX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_rx_RT), sizeof(cmd_cfg_sdi_il_channels_rx_t) },
{ 3, CMD_CFG_SDI_IL_CHANNELS_TX, & SDFE4_CFG_PREFIXED_NAME(cmd_cfg_sdi_il_channels_tx_RT), sizeof(cmd_cfg_sdi_il_channels_tx_t) },
{ 3, CMD_CONNECT_CTRL, & SDFE4_CFG_PREFIXED_NAME(cmd_connect_ctrl), sizeof(cmd_connect_ctrl_t) },
};
список отличий:
CMD_WR_REG_AUX_SDI_IF_SEL_n - заданы все, с параметрами 0,1,2,3
CMD_WR_REG_AUX_MUX4\10_LOW_SEL - не пользовал
cmd_cfg_sdi_settings
{
0x03,// input_mode
0x08,// output_mode
0x00,0x40, /* frequency 16384*/
0x80,0x2C, /* payload_bits 11392*/
0x30, /* frames default*/
0x00, /* loop no loop*/
0x00, /* ext_clk8k mode)*/
0x01, /* dpll4bclk SDI_DPLL4INOUT*/
0x00, /* refclkin_freq TIM_REF_CLK_IN_8KHZ*/
0x00, /* refclkout_freq
}
cmd_cfg_sdi_rx
0x00, /* align NO*/
interleaving не пользовал, не могу прокомментировать.
И я бы поставил SDI настройки в начало списка загрузки, как в оригинале.
Работаю в плезиохронном режиме(CAP_List_timing_mode 0x01, /* clock_mode SHDSL_CLK_MODE_1 (plesio)*/)
angpeu
Sep 22 2008, 06:23
>список отличий:
>CMD_WR_REG_AUX_SDI_IF_SEL_n - заданы все, с параметрами >0,1,2,3
тут есть только два (0 и 3)
>CMD_WR_REG_AUX_MUX4\10_LOW_SEL - не пользовал
по умолчанию вроде они и так в нулях, пишу для порядка больше
>cmd_cfg_sdi_settings
>{
>0x03,// input_mode
>0x08,// output_mode
>0x00,0x40, /* frequency 16384*/
>0x80,0x2C, /* payload_bits 11392*/
>0x30, /* frames default*/
>0x00, /* loop no loop*/
>0x00, /* ext_clk8k mode)*/
>0x01, /* dpll4bclk SDI_DPLL4INOUT*/
>0x00, /* refclkin_freq TIM_REF_CLK_IN_8KHZ*/
>0x00, /* refclkout_freq
>}
почему именно 11392 и refclk в нулях ?
>cmd_cfg_sdi_rx
>0x00, /* align NO*/
aligт ставил 0, а 1 вроде (23стр ) надо
>И я бы поставил SDI настройки в начало списка загрузки, как в оригинале.
ставил и в начале, хотя во всем даташите соблюдается совершенно зитрый порядок команд ?!?! (имеет ли вообще значение порядок команд ??)
>Работаю в плезиохронном режиме(CAP_List_timing_mode 0x01, /* clock_mode SHDSL_CLK_MODE_1 (plesio)*/)
по шиту смотрел мне всетаки 3а нужен
Уважаемые Гуру, начинаем работать с SDFE v2.2, есть вопросы
1. Кто-нибудь работает с SDFE исключительно через uP-интерфейс скажем intel demux. Или все же как выразился в свое время Ledol готовится родить HDLC контроллер у себя на плате ?
2. Для скоростей >5,6Mbit требуется частота 40,96MHz. Меня терзают смутные сомнения по поводу использования
кварца с двумя емкостями в данном случае. Может проще заложить генератор и не выпендриваться ?
Есть даже такие с подстройкой частоты по 1-й ноге +-100ppm. Кто что использует ?
3. По поводу Cross-talk-cancellation кто то заморачивался ? Оно того стоит или заземлить ноги ?
4. Power-up. В демо-плате забавная схема подачи питания. Запускаем 1,5 затем супервизором смотрим как
оно, а потом запускаем DC-DC на 3,3В. Оно конечно красиво, но немного неудобно и дорого. Обычно у нас
основное питание идет +5 или +3,3 а от него через low-drop стабилизаторы получаем там всякие 2,5 1,8 1,5 и др.
В данном случае использовать low-drop на 1,5 от 3,3 как то боязно и наверняка неправильно.
Другой вариант если есть +5 то вешаем 2 штуки LD стабилизатора на 3,3 и 1,5 на которых напряжение появится синхронно. Недостаток - плохой КПД устройства в целом врядле будет приемлим в регенераторах.
Еще в демо плате диод с 1,5 на 3,3 причем помоему с надписью не устанавливать, что с ним ставим/нет?
Прокомментируйте, кто как поступает.
5. Также в демо-плате заложен двухобмоточный трансформатор(sec, на стороне чипа). В реальной жизни нужно ?