Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
kryk27

STM8S103F3 + TDA7313 и I2C_GetFlagStatus(I2C_FLAG_BUSBUSY))

12.12.2012, 10:56. Показов 4012. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Решил сваять из остатков небольшой усилитель, для практического изучения STM8s а так же за одно попробовать освоить периферию I2C.

STM8S103F3 - Процессор.
TDA7313 - аудио процессор. (менял на PT2313L)
tda7377a -усилитель.

Всю обвязку брал из документации.
Часть платы в "районе" y2shttp://www.st.com/internet/som/SOFTWARE ... ph_lib.zip
в качестве среды STVP + Cosmic (ломаный). Для отладки использую STM8S-DISCOVERY

В примерах пишут после запуска соединения (I2C_KimerateSTART)
ожидание освобождения while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY ))
Тут всё и зависает...
В описании протокола http://www.itt-ltd.com/reference/ref_y2s.html пишут
остояния СТАРТ и СТОП всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния СТАРТ. Шина считается освободившейся через некоторое время после фиксации состояния СТОП.
То есть после старта она уже занята. Так и непонятно.

Знаю, тема избитая, но ткните носом начинающего... буксую.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//Часть инициализации тактового генератора менял на
//CLK_DeInit();
//status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
//Результат тот же.
CLK_ECKR = 0b00000001;// Вкючаем HSE
CLK_SWCR = 0b00000010;// Разрешаем переключение источника тактовой частоты
while(CLK_ECKR == (1<<1)) {}//Ждем готовности источника тактирования
CLK_CKDIVR = 0b00000000;// Предделитель равен нулю
CLK_SWR = 0xB4;// Выбираем HSE источником тактовой частоты
while(CLK_SWCR == (1<<3)){}
 
I2C_DeInit();
I2C_Cmd(ENABLE);
CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C, ENABLE);
I2C_ITConfig((I2C_IT_EVT |I2C_IT_BUF | I2C_IT_ERR), ENABLE);
I2C_Init(100000, 0x48, I2C_DUTYCYCLE_2, I2C_ACK_CURR, I2C_ADDMODE_7BIT, 16);
I2C_KimerateSTART(ENABLE);
while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY));
I2C_Send7bitAddress(0x88, I2C_DIRECTION_TX);
I2C_SendData(0b00100100);
I2C_SendData(0b01000110);
I2C_SendData(0b01000110);
I2C_SendData(0b01000100);
I2C_SendData(0b01000111);
I2C_KimerateSTOP(ENABLE);
Спасибо за внимание:-)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2012, 10:56
Ответы с готовыми решениями:

Arduino - управление tda7313 и аналогами по I2S
Уже долгий час пытаюсь подружить Ардуинку с TDA7313 по шине I2C через библиотеку Wire. Сначала я долго не мог...

Танцы с бубном вокруг I2C и TDA7313
Даже не знаю как описать свою проблему, но попробую, ибо у самого вариантов уже нет. Есть контроллер, мега8 и программная реализация...

stm8s103f3 и stm8s103k3 - почувствуйте разницу
Здравствуйте, уважаемые сообщники. Для одного маленького сверхмощного девайса (о нём обязательно напишу, как доделаю) решил...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2012, 10:56
Помогаю со студенческими работами здесь

Минимальная обвязка для запуска STM8S103F3
Как я понял, минимальная обвязка это: на NRST 10k подтяжка к питанию,кондер на 0.1 на землю, на Vcap кондер на 680н, ну и кондер на...

Рабочий код АЦП на прерывании для stm8s103f3 под IAR
Разыскивается рабочий код для запуска АЦП с любыми параметрами на любом канале под IAR для stm8s103f3. Бьюсь второй день, прерывание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru