Прошу помогите с SPI из USI на tiny85

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Engineer_Keen »

Не пойму суть вот этой строчки

Код: Выделить всё

while(count--)  OCR1B =  _FF_spi(0xFF);
Это такая попытка записать число в регистр сравнения 1 раз за цикл счета таймера? Почему не сделать это в прерывании по переполнению этого таймера?
Ну и конечно строчки

Код: Выделить всё

 _FF_spi(0x3);
   _FF_spi(0x0);
   _FF_spi(0x0);
   _FF_spi(0x0);
Сами-то подумайте, что у вас считается? Правильно, один и тот же нулевой байт. Если в ШИМ пихать одно и тоже значение никакого звука не услышать. Считывать нужно последовательность байтов, для этого заведите переменные, которые нужно подставлять в качестве адреса, и инкрементировать в каждом цикле считывания.
А зачем задержка в 1мс?
Реклама
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Dimon49773 »

Код: Выделить всё

while(count--)  OCR1B =  _FF_spi(0xFF);
эта строчка читает одну страницу в 128 байт

Код: Выделить всё

 _FF_spi(0x3);
   _FF_spi(0x0);
   _FF_spi(0x0);
   _FF_spi(0x0);
0х3 это код команды чтения из епрома
а остальное это первоначальный адрес 00 00 00 H


а задержку можно и убрать...
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Engineer_Keen »

Dimon49773 писал(а): эта строчка читает одну страницу в 128 байт
То есть подряд 128 байт? И сразу их в OCR1B? Во-первых там двойная буферизация, и пока таймер не переполнится, регистр не обновится, а когда он будет обновляться, там уже останется только 128-й байт (или ХЗ который из них, смотря в какой момент это будет). Во-вторых у вас как-нибудь код соотносится с частотой квантования (обзовем ее Fs), с которой записан звук?
Нужно либо: а) с частотой Fs читать по одному байту данных (по слову, если вдруг 16-битный звук) и выводить их в OCR, либо б)читать кучу байт в буфер, и оттуда с частотой Fs выводить их в OCR, периодически догружая буфер.
Dimon49773 писал(а): а остальное это первоначальный адрес 00 00 00 H
Даже если бы код сработал, вы получили бы циклическое вопроизведение первых 128 семплов. При частоте Fs=11025кГц, это примерно сотая доля секунды.
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Dimon49773 »

Даже если бы код сработал, вы получили бы циклическое вопроизведение первых 128 семплов. При частоте Fs=11025кГц, это примерно сотая доля секунды.
я понимаю...я потом уже сделаю функцию которая будет читать нормально...мне бы сейчас первые 128 байт загнать в пвм...

я работаю методом тыка так что я сейчас экспериментирую...если можете помогите с пвм
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Engineer_Keen »

Dimon49773 писал(а):я работаю методом тыка так что я сейчас экспериментирую...если можете помогите с пвм
Зачем использовать метод тыка, если есть форум. Сделайте как я написал. Читайте в прерывании по переполнению таймера по одному байту, там же суйте этот байт в OCR и прибавляйте +1 к адресу. А в главном цикле вообще ничего не будет.
Реклама
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Dimon49773 »

адрес сам инкрементируется...а прерывания имеете ввиду чтоб таймер считал до 128 или как??
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Engineer_Keen »

Dimon49773 писал(а):адрес сам инкрементируется...
Да, адрес инкрементируется сам в памяти, но только при последовательном чтении. Как только чтение кончается (перепад на CS - 0->1), для следующего чтения нужно опять подать команду 0х03, а за ней опять нужно передать адрес. Можно конечно всю жизнь держать CS в 0, но что если вдруг в процессе нужно будет подать другую команду, или если нужно воспроизводить не с 0-го адреса? Так сложно завести 3 байта для адреса?
Dimon49773 писал(а):а прерывания имеете ввиду чтоб таймер считал до 128 или как??
Таймер по любому должен считать до максимума (или от 0 до макс а потом от макс до 0, если phase correct PWM). Просто регистр сравнения нет никакого смысла обновлять чаще чем один раз в период. Он просто не будет обновляться. А раз в период как раз происходит переполнение, так что это прерывание можно использовать для обновления OCR.
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: Прошу помогите с SPI из USI на tiny85

Сообщение phanis »

Это я ему выкладывал пример работы USI в режиме SPI, для того чтоб он посмотрел в протеусе, общение МК и епромки. А задержка для того чтоб комп не загружать. А он возьми да используй его для воспроизведения с епромки. И еще людей путает. Слов нет нужен кольцевой буфер прерывание по таймеру функция чтения с епромки.
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Dimon49773 »

:cry: :cry: :cry:
ладно...извините что побеспокоил....

из слов я всёровно не пойму!!!
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: Прошу помогите с SPI из USI на tiny85

Сообщение phanis »

Да дело не в этом, увидя код в начале темы, и название Прошу помогите с SPI из USI на tiny85,я подумал что у вас имеется не большой опыт в программировании. Помогать не отказывался. Чем с могу как говорится. Тем более на форуме есть гуру своего дела и они думаю мимо не пройдут.

Вообщем так, качество звука какое требуется и время в секундах воспроизведения сколько?
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Dimon49773 »

я пробывал это дело с флешки на макетнице, звук отличный....а с епрома одна композиция нужна допустим 8б/сек и 44кГц
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: Прошу помогите с SPI из USI на tiny85

Сообщение phanis »

В личку отписал, на всякий.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Engineer_Keen »

Тут есть одно ограничение. Частота квантования получается из частоты тактирования МК. Т.е. либо подбирать кварц чтобы получилось 44100*256=11.2МГц либо перекодировать звук под доступный кварц или встроенный RC-генератор (8МГц/256=31250Гц). Частоту можно делать и меньше, например читать байт только раз в 3 прерывания, так при кварце/RC на 8МГц можно получить например 10.5кГц.
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: Прошу помогите с SPI из USI на tiny85

Сообщение phanis »

Вроде у атини85 PLL, шимка до 250 КГЦ..
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Dimon49773 »

меня качество не волнует...главное чтобы ясно воспроизводил звук
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Прошу помогите с SPI из USI на tiny85

Сообщение Engineer_Keen »

phanis писал(а):Вроде у атини85 PLL, шимка до 250 КГЦ..
Верно, забыл что x5-я серия это умеет.
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: Прошу помогите с SPI из USI на tiny85

Сообщение phanis »

Вот примерно так, чтение и воспроизведение с внешней епромки, Думаю если что подправят.
attiny85+eeprom.c
(2.91 КБ) 410 скачиваний
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»