22.12.2010, 17:16
|
|
Прописка
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Последний раз редактировалось Falconist; 14.04.2011 в 00:00.
|
|
|
|
22.12.2010, 19:59
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Ну и вот мои извращения ...
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
23.12.2010, 04:35
|
|
Прохожий
Регистрация: 06.05.2009
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Рад что разобрались (на Коте личку только сегодня увидел (или уже вчера)).
Еле осилил тему.
Что-то не заметил чтобы при разборе SPI упомянули о наличии буферов передачи и приема, возможно от того, что "забыли" о их наличии и были траблы с "ранним" снятием CS.
Итак, небольшой итог по работе с SPI (конкретно для режима мастера):
Флаг BSY - показывает, что в данный момент идет выдача/получение битов из/в регистр сдвига, при этом в буфере передачи может уже находиться очередной байт для передачи, а в буфере приема может еще находиться принятый перед этим байт.
Т.е. Он меняет свое состояние на 1, когда в регистр сдвига копируется байт из буфера передачи, и начинается собственно передача. Причем при непрерывной передаче (continuous mode), когда передается несколько байт без "перерывов", BSY сбрасываться в 0 не будет до окончания передачи всего "пакета".
Флаг TXE - показывает, что буфер передачи готов к записи в него очередного байта (при этом регистр сдвига может еще работать передавая/принимая данные). Сбрасывается в 0 после записи в него очередного байта, устанавливается в 1 через 1 SCK после копирования его значения в регистр сдвига.
Флаг RXNE - показывает, что в буфер приема был скопирован очередной принятый байт из регистра сдвига, впрочем как и то, что полностью передан байт из регистра сдвига (строго говоря он устанавливается по активному фронту SCK). Сбрасывается при чтении буфера приема (SPI_DR).
Ну и если вдруг в конце выдачи/приема очередного байта при попытке копирования его в буфер приема,в буфере приема окажется непрочитанный вовремя байт (RXNE=1), установится флаг OVR. Последующие входящие данные будут потеряны, пока этот флаг не будет сброшен чтением буфера приема (SPI_DR) с последующим чтением регистра состояния (SPI_SR).
В даташите рекомендуется для определения окончания передачи после записи в буфер передачи байта, ждать сначала установки TXE (TXE=1) а затем сброса BSY (BSY=0), поскольку между записью в буфер передачи и установкой флага BSY проходит 2 такта CPU (впрочем эти два такта можно занять чем-нибудь полезным). Хотя проверка заранее сброшенного (чтением буфера приема) флага RXNE в данном случае выглядит проще и эффективнее (Вот только работает ли этот флаг в режиме "только передача" даташит не признается).
PS: Ну и капча, с 3 раза только прочитал.
__________________
To beer or not to beer?
That is a question...
|
|
|
|
23.12.2010, 09:12
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Dr_Watson, Приветствую !!!!!
Огромное спасибо за разъяснение .
Капча - временная неприятность.
Администрация была вынуждена применить , из за нашествия троллей.
Приношу всем свои извинения за это неудобство.
__________________
Осторожно , злой кот
|
|
|
|
25.12.2010, 11:36
|
|
Частый гость
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM8(S/L), первые впечатления
Доброго всем утра!
Всё дальше мучаю ЦАП stm8L152k6 (32 ноги). При выводе 8-ми битного wav файла (частота дискретизации 22,5 кГц) нет проблем - всё ровно и гладко, только качество оставляет желать лучшего. Причём пробовал 8 бит с частотой 44,1 кГц - разницы в качестве звука не заметил.
При выводе 16-ти битного wav файла (частота дискретизации 22,5 кГц, выше частоту не получится сделать, так как считывание двух байтов из внешней флэш-памяти по spi с частотой более 27 кГц не получится) на осциллографе получается вот такая картинка, выравнивание - left align.
верхний график 8 бит
нижний 16 бит
может кто подскажет где я туплю?
|
|
|
|
25.12.2010, 12:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от mac0dee
|
При выводе 16-ти битного wav файла (частота дискретизации 22,5 кГц, выше частоту не получится сделать, так как считывание двух байтов из внешней флэш-памяти по spi с частотой более 27 кГц не получится)
|
C чего это такие выводы? Откуда цифра в 27КГц?
Последний раз редактировалось Falconist; 14.04.2011 в 00:01.
|
|
|
|
25.12.2010, 15:54
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от mac0dee
|
может кто подскажет где я туплю?
|
16-битные - знаковые. (перед выводом прибавляйте 32768 )
Последний раз редактировалось Falconist; 14.04.2011 в 00:00.
|
|
|
Сказали "Спасибо" testerplus
|
|
|
26.12.2010, 11:35
|
|
Частый гость
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
C чего это такие выводы? Откуда цифра в 27КГц?
|
Получено экспериментальным путём, замерено с помощью осциллографа (DMA не используется)
Последний раз редактировалось Falconist; 14.04.2011 в 00:00.
|
|
|
|
26.12.2010, 16:43
|
|
Частый гость
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM8(S/L), первые впечатления
Сообщение от testerplus
|
16-битные - знаковые. (перед выводом прибавляйте 32768 )
|
Спасибо.
На самом деле заработало как надо, хотя на первый взгляд звук сильно не изменился. Завтра ещё помучаю, отпишусь о результатах.
p.s. где-то я видел про разную структуру 8-ми и 16-ти битных файлов, но потом второй раз не нашёл. Просто я не думал что они так могут отличаться.
Получается при воспроизведении 16-ти битного wav файла, например в винампе, там тоже к исходному коду прибавляется 0x8000? ![Шокирован](images/smilies/icon_eek.gif)
Вообще то странно, что этот момент не был упомянут в референсе
Последний раз редактировалось Falconist; 13.04.2011 в 23:59.
|
|
|
|
28.12.2010, 11:16
|
|
Частый гость
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM8(S/L), первые впечатления
16-ти битный файл (хоть получается, что отбрасываем последние 4-ре бита на 12 битном ЦАПЕ) звучит вполне неплохо ![Крут](images/smilies/icon_cool.gif)
По-моему мнению отличный чип за отличную цену ![Ну ты даешь](images/smilies/icon_wink2.gif)
Проект ЦАПа выложу позже
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:02.
|
|