Project

General

Profile

R1 I2S » History » Version 4

krufter_multiclet, 06/16/2015 11:53 AM

1 1 krufter_multiclet
h1. I2S Мультиклет R1 
2 1 krufter_multiclet
3 1 krufter_multiclet
Особенности:
4 1 krufter_multiclet
1) Работает в режиме "ведущий" и "ведомый"
5 1 krufter_multiclet
2) Выбор разрядности сэмпла от 16 до 32 бит
6 1 krufter_multiclet
3) Глубина буфера приемника-передатчика 32 строки
7 1 krufter_multiclet
4) Предделитель синхронизирующей частоты
8 1 krufter_multiclet
9 4 krufter_multiclet
Cтроки буфера приемника-передатчика размещаются в виде регистров(адреса смещения 0xC, 0x10, 0x14...) 
10 1 krufter_multiclet
Статусный бит LSBF означает, что 16 строк общего буфера заполнены.
11 1 krufter_multiclet
Статусный бит HSBF означает, что все 32 строки общего буфера заполнены.
12 1 krufter_multiclet
13 2 krufter_multiclet
*Важно:* на передачу контроллер I2S функционирует в полном объеме. На прием в текущей версии процессора недоступен буфер приема на чтение.
14 2 krufter_multiclet
    Поэтому в текущей версии процессора необходимо программно определять входное значение. Т.е. с помощью GPIOxIN определять текущий уровень 
15 2 krufter_multiclet
    тактирующего сигнала и снимать значение с линии данных(все сигналы кроме линии данных на прием работают штатно).
16 2 krufter_multiclet
17 2 krufter_multiclet
*Регистр конфигурации I2S_CFG:*
18 1 krufter_multiclet
Бит 0 - разрешение работы
19 1 krufter_multiclet
1 - разрешение прерываний
20 1 krufter_multiclet
2 - установка записи левого канала (1 - в нечетные адреса, 0 - в четные адреса)
21 1 krufter_multiclet
3 - выбор режима (1 - ведущий, 0 - ведомый)
22 1 krufter_multiclet
4 - прием или передача данных (1 - передача, 0 - прием)
23 1 krufter_multiclet
5-7 - резерв
24 1 krufter_multiclet
8-15 - предделитель (частота работы процессора делится на число записанное а данных битах)
25 1 krufter_multiclet
16-21 - размер сэмпла (16-32)
26 2 krufter_multiclet
22-31 - резерв
27 2 krufter_multiclet
28 2 krufter_multiclet
*Регистр маски прерываний I2S_MSK:*
29 2 krufter_multiclet
0 - нижний буфер LSBF аудио данных заполнен
30 2 krufter_multiclet
1 - верхний буфер HSBF аудио данных заполнен
31 2 krufter_multiclet
2-31 - резерв
32 2 krufter_multiclet
33 2 krufter_multiclet
*Регистр прерываний I2S_INT:*
34 2 krufter_multiclet
0 - нижний буфер LSBF аудио данных заполнен
35 2 krufter_multiclet
1 - верхний буфер HSBF аудио данных заполнен
36 2 krufter_multiclet
2-31 - резерв
37 2 krufter_multiclet
38 2 krufter_multiclet
*Регистр данных I2S_DATA:*
39 2 krufter_multiclet
0-31 - данные на передачу и прием (в текущей версии процессора это регистр только для передачи, см графу "Важно")