stm32 si5351
stm32 si5351
Пытаюсь запустить si5351a с stm32F103c8t6. Нашёл на сайте https://sites.google.com/site/ja2gqp/ примеры подключения с исходниками под Ардуино stm32. Скомпилировал и прошил , всё работает. Перенес файлы в Keil 4. I2c файл новый. Ни как не могу запустить. Проект собирается, компилируется, прошивается без ошибок. На выходе si5351- 0Гц... Проблема скорее всего с I2c. Ни когда с ним не работал. Файлы в архиве прикрепил. Подскажите где косяк.
- Вложения
-
- Новая папка.rar
- (4.76 КБ) 412 скачиваний
- Реклама
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: stm32 si5351
У тебя нет не какой связи между файлами и их функциями. Компилится только майн остальные только присутствуют. Изучай структуру взаимодействия подпрограмм в СИ.
IVL ex UA6PJ
Re: stm32 si5351
Есть связь с функциями. Компилироваться без связей будет с кучей ошибок и предупреждений. В общем я его добил. Всё работает. Вводим в функцию
si5351aSetFrequency(); //CLK0 значение частоты в герцах, на выходе si5351a получаем частоту, которую ввели. Проект в Keil прикреплён.
si5351aSetFrequency(); //CLK0 значение частоты в герцах, на выходе si5351a получаем частоту, которую ввели. Проект в Keil прикреплён.
- Вложения
-
- si5351stm32_ I2C.rar
- (300.9 КБ) 469 скачиваний
Re: stm32 si5351
Подскажите пожалуйста, подключал ли кто к STM32 ДВЕ si5351 с одинаковыми адресами на шине I2C? Как лучше это реализовать? Использовать два интерфейса I2C для каждой si5351 или сдеалать переключатель линии SDA? Обмен с обеими si5351 будет весьма интенсивный ( сканирование частот).
- Andrey_B
- Сверлит текстолит когтями
- Сообщения: 1102
- Зарегистрирован: Пт апр 09, 2010 16:06:38
- Откуда: Тула
Re: stm32 si5351
khach, возможно коммутировать SCL окажется правильней. Переключать можно выбирая разные пины при конфигурации I2C-модуля контроллера.
- Реклама
Re: stm32 si5351
[uquote="khach",url="/forum/viewtopic.php?p=3745217#p3745217"]Подскажите пожалуйста, подключал ли кто к STM32 ДВЕ si5351 с одинаковыми адресами на шине I2C? Как лучше это реализовать? Использовать два интерфейса I2C для каждой si5351 или сдеалать переключатель линии SDA? Обмен с обеими si5351 будет весьма интенсивный ( сканирование частот).[/uquote]
Полюбас, посадить каждую 5351 на отдельный I2C будет лучше.
Полюбас, посадить каждую 5351 на отдельный I2C будет лучше.
Re: stm32 si5351
[uquote="khach",url="/forum/viewtopic.php?p=3745217#p3745217"]Подскажите пожалуйста, подключал ли кто к STM32 ДВЕ si5351 с одинаковыми адресами на шине I2C? Как лучше это реализовать?[/uquote]Лучше взять в том корпусе, где есть A0. И использовать эту ногу. Ну конечно если нет лишних I2C-интерфейсов....
Re: stm32 si5351
[uquote="jcxz",url="/forum/viewtopic.php?p=3746547#p3746547"]Лучше взять в том корпусе, где есть A0.[/uquote]
Это в каком корпусе у SI есть такая нога? в даташите не нашел. Вообще то адрес I2C программируется во внутреннем еепроме, но программирование однократное и заказать партию микросхем с нестандартным адресом дорого выходит. Вот вопрос- если переписать 7 регистр в одной из микросхем, отключив временно вторую, а потом замкнуть шину I2C?
Это в каком корпусе у SI есть такая нога? в даташите не нашел. Вообще то адрес I2C программируется во внутреннем еепроме, но программирование однократное и заказать партию микросхем с нестандартным адресом дорого выходит. Вот вопрос- если переписать 7 регистр в одной из микросхем, отключив временно вторую, а потом замкнуть шину I2C?
I2C_ADDR_CTRL 0x0007[7:4] 0x0007 4 4 Yes R/W
Re: stm32 si5351
[uquote="khach",url="/forum/viewtopic.php?p=3746780#p3746780"]Это в каком корпусе у SI есть такая нога? в даташите не нашел.[/uquote]

[uquote="khach",url="/forum/viewtopic.php?p=3746780#p3746780"]Вообще то адрес I2C программируется во внутреннем еепроме, но программирование однократное и заказать партию микросхем с нестандартным адресом дорого выходит.[/uquote]Не понял - что где программируется? Вроде писали про stm32F103c8t6. Приведите схему.

[uquote="khach",url="/forum/viewtopic.php?p=3746780#p3746780"]Вообще то адрес I2C программируется во внутреннем еепроме, но программирование однократное и заказать партию микросхем с нестандартным адресом дорого выходит.[/uquote]Не понял - что где программируется? Вроде писали про stm32F103c8t6. Приведите схему.
Re: stm32 si5351
[uquote="jcxz",url="/forum/viewtopic.php?p=3746832#p3746832"]Не понял - что где программируется? Вроде писали про stm32F103c8t6. Приведите схему.[/uquote]
Упс, корпуса 20-QFN и 24-QSOP для SI5351A действительно пропустил. Но они редкодоступны ( в каталогах есть а на складах нет и срок поставки большой). Ну и плату преределывать прийдется сильно.
А программируется SI5351 из встроенной OTP памяти при старте как на рисунке. Кроме начальных установок синтезатор программируется и адрес на шине. Регистр не документированный но присутствует в отчете ClockBuilder. И вроде R/W т.е можно его читать и писать по интерфейсу по старому адресу. Вот только при попытках переписать его я терял связь с микросхемой. Или не то писал, или надо как то специальным образом переустановить связь по I2C.

Упс, корпуса 20-QFN и 24-QSOP для SI5351A действительно пропустил. Но они редкодоступны ( в каталогах есть а на складах нет и срок поставки большой). Ну и плату преределывать прийдется сильно.
А программируется SI5351 из встроенной OTP памяти при старте как на рисунке. Кроме начальных установок синтезатор программируется и адрес на шине. Регистр не документированный но присутствует в отчете ClockBuilder. И вроде R/W т.е можно его читать и писать по интерфейсу по старому адресу. Вот только при попытках переписать его я терял связь с микросхемой. Или не то писал, или надо как то специальным образом переустановить связь по I2C.
- Вложения
-
- Si5351_OTP.jpg
- (6.75 КБ) 1884 скачивания
Re: stm32 si5351
[uquote="khach",url="/forum/viewtopic.php?p=3746954#p3746954"]А программируется SI5351 из встроенной OTP памяти при старте как на рисунке. Кроме начальных установок синтезатор программируется и адрес на шине.[/uquote]Эта OTP-память - она в самом чипе SI5351? Если да - наверное можно прошивать туда разные адреса при производстве вашего устройства, подключая (например джамперами или паяемыми перемычками) чипы по одному к I2C-шине.
Если так сделать нельзя, то наверное придётся что-то коммутировать - или SCL или SDA. Лучше наверное SCL, как советовали выше, так как это проще. Можно коммутировать мультиплексором пинов в МК, если возможно.
Если так сделать нельзя, то наверное придётся что-то коммутировать - или SCL или SDA. Лучше наверное SCL, как советовали выше, так как это проще. Можно коммутировать мультиплексором пинов в МК, если возможно.
Re: stm32 si5351
[uquote="jcxz",url="/forum/viewtopic.php?p=3747005#p3747005"]Эта OTP-память - она в самом чипе SI5351? Если да - наверное можно прошивать туда разные адреса при производстве вашего устройства, подключая (например джамперами или паяемыми перемычками) чипы по одному к I2C-шине.
Если так сделать нельзя, то наверное придётся что-то коммутировать - или SCL или SDA. Лучше наверное SCL, как советовали выше, так как это проще. Можно коммутировать мультиплексором пинов в МК, если возможно.[/uquote]
Чипы обычно поставляются с прошитой фабрично OTP памятью. Можно заказать на silabs партию с заданными начальными установками. Алгоритм прошивки OTP закрыт и чистных не прошитых чипов не найти в свободной продаже. Желание поменять I2C адрес программно вызвано тем, что коммутировать SCL или SDA надо будет только в процессе первой инициализации чипа ( или вообще снять питание со второго чипа синтезатора в процессе раздачи адресов) а потом оба чипа будут находится на том же самом интерфейсе и не конфликтовать между собой.
Сэкномим ресурсы проца ( второй интерфейс I2C), можно применять чипы с любыми адресами, можно не заниматься "дрыгоножеством" для управления коммутатором SCL/SDA.
Если так сделать нельзя, то наверное придётся что-то коммутировать - или SCL или SDA. Лучше наверное SCL, как советовали выше, так как это проще. Можно коммутировать мультиплексором пинов в МК, если возможно.[/uquote]
Чипы обычно поставляются с прошитой фабрично OTP памятью. Можно заказать на silabs партию с заданными начальными установками. Алгоритм прошивки OTP закрыт и чистных не прошитых чипов не найти в свободной продаже. Желание поменять I2C адрес программно вызвано тем, что коммутировать SCL или SDA надо будет только в процессе первой инициализации чипа ( или вообще снять питание со второго чипа синтезатора в процессе раздачи адресов) а потом оба чипа будут находится на том же самом интерфейсе и не конфликтовать между собой.
Сэкномим ресурсы проца ( второй интерфейс I2C), можно применять чипы с любыми адресами, можно не заниматься "дрыгоножеством" для управления коммутатором SCL/SDA.


