
Serg
31.01.2017
17:35:49
Можно расчетное снизить в два раза для надежности запуска?
Но при этом не 0, чтобы все таки ограничить drive level

Petr
31.01.2017
17:36:30
330 и 7к5

Google

Petr
31.01.2017
17:39:08
(http://www.sengpielaudio.com/calculator-parallel.htm)

Ibh
31.01.2017
18:14:20
дело не в номинале резистора вообще. а в его смысле. он режет ток с выхода осциллятора, чтобы кварц не выходил из режима. если у кого-то завалялся токовый трансформаторный датчик для осцилла, то можно по нему подобрать. там хоть 300 ом хоть кил, хоть два если кварц нормальный, и кондёры под него
ниже 20-50 ом в суровых условиях по эми pll глохнет у stm32

Dmitry
31.01.2017
18:44:58
Так я про тоже. Вместо 316 поставить 300 из стандартного ряда. Drive Level будет просто чуть выше расчётного, но главное, что не ниже
Можно расчетное снизить в два раза для надежности запуска?
Но при этом не 0, чтобы все таки ограничить drive level

Ibh
31.01.2017
18:56:46
если сильно снизить, где-то с 2к генератор нестабильно работал, а то и не запускался на -40 с кварцами kx-kt

Serg
31.01.2017
19:08:13
если сильно завысить?
или снизить?

Ibh
31.01.2017
19:11:45
завысить сопротивление или снизить ток резонатора
я про ток в данном случае говорил

Dmitry
31.01.2017
19:28:26

Google

Ibh
31.01.2017
19:28:46
да, 10к,2к это сопротивление

Dmitry
31.01.2017
19:29:11
Понял. Но даже 2к по сравнению с 300 Ом - многа)
А вообще надо за правило взять ставить этот резистор
Остаётся объяснить начальнику, что резистор этот не лишний

Ibh
31.01.2017
19:31:02
угу. у меня в некоторых девайсах счётчики срывов pll стоят. с резистором оно в 99% случаев работает годами без инкремента
вообще по части резистора для меня было другое сюрпризом - что бывают токовые датчики для осцилла, которые могут ток генерации измерять

Dmitry
31.01.2017
19:49:10

Ibh
31.01.2017
19:54:24
именно в stm32
там при pll fault оно переключается на внутренний rc генератор и можно записать все ошибочки во внешнюю память например

Dmitry
31.01.2017
20:29:35

Pavel
01.02.2017
01:36:42
и работает на всех платформах одинаково хорошо: винда, линукс и мак
вообще можно было бы на матлабе написать стэндалон софтину с парой крутилок вроде масштабирования осей

Dolphin
01.02.2017
01:48:34
Поздравляю! ?

LexsZero
01.02.2017
03:55:37
лол, матлаб есть в гентушных репах, оказывается

Keroronsk
01.02.2017
03:59:05
а он разве не стоит 100500 денег?

LexsZero
01.02.2017
04:01:19
не знаю. в гентушных репах есть проприетарный софт, иногда в формате "чтоб поставить пакет, скачайте официальный тарболл с сайта разработчика", например джава так ставится. один мой знакомый хотел поддержку торрентов запилить, чтоб ебилды сами все нужное выкачивали.

Eugene
01.02.2017
04:11:59

Serg
01.02.2017
08:31:47

Google

Ibh
01.02.2017
08:34:42
void NMI_Handler(void)
{
if(RCC->CIR & RCC_IT_CSS)
{
fault_clock();
RCC_ClearFlag();
}
itm_send_string("NMI handler");
while(1);
}

Serg
01.02.2017
08:35:34
if(RCC->CIR & RCC_IT_CSS)
Что это за флаги?

Ibh
01.02.2017
08:35:37
void fault_clock()
{
uint32_t SysClock = 0;
// Get system clock source
switch(RCC_GetSYSCLKSource())
{
case 0x00: // HSI used as system clock
SysClock = 16000000;
break;
case 0x04: // HSE used as system clock
SysClock = 12000000;
break;
case 0x08: // PLL used as system clock
SysClock = 180000000;
break;
default:
SysClock = 0;
break;
}
if(SysClock)
itm_init(SysClock); // reinit with new core clock
itm_send_string("Clock fault! Set clock to 0x");
swo_hex32(SysClock);
itm_send_string("Hz, and loop\n");
и дальше настраиваешь периферию на новую частоту и пишешь ошибки или делаешь что тебе надо

Serg
01.02.2017
08:37:15
itm_init бы увидеть

Ibh
01.02.2017
08:37:24
не покажу :P
да там просто инициализация передачи текста по swo
отладрочные сообщения

Serg
01.02.2017
08:37:57
аа
а в комментарии интереснее
reinit with new core clock

Ibh
01.02.2017
08:38:46
swo надо указать частоту тактовую проца. чтобы рассинхрона не было


Ibh
01.02.2017
08:39:12
void itm_init(uint32_t sysclock)
{
uint32_t SWOSpeed = 6000000;
uint32_t SWOPrescaler = (sysclock / SWOSpeed) - 1; // SWOSpeed in Hz
CoreDebug->DEMCR = 1 « CoreDebug_DEMCR_TRCENA_Pos;
DBGMCU->CR = 0x00000027; //Enabling TRACE_IOEN, DBG_STANDBY, DBG_STOP, DBG_SLEEP
//Set TPIU register->Selected pinprotocol = 10b: Serial Wire Output - NRZ, 01b = SerialWire Output (Manchester)
*((volatile unsigned *) 0xE00400F0) = 0x00000002; // "Selected PIN Protocol Register": Select which protocol to use for trace output (2: SWO)
//Set TPIU -> Async Clock Prescaler Register [bits 0-12]
*((volatile unsigned *) 0xE0040010) = SWOPrescaler; // "Async Clock Prescaler Register". Scale the baud rate of the asynchronous output
//Lock Access Register
*((volatile unsigned *) 0xE0000FB0) = 0xC5ACCE55; // ITM Lock Access Register, C5ACCE55 enables more write access to Control Register 0xE00 :: 0xFFC
*((volatile unsigned *) 0xE0000E80) = 0x0001000D; // ITM Trace Control Register
*((volatile unsigned *) 0xE0000E40) = 0x0000000F; // ITM Trace Privilege Register
*((volatile unsigned *) 0xE0000E00) = 0x00000001; // ITM Trace Enable Register. Enabled tracing on stimulus ports. One bit per stimulus port.
*((volatile unsigned *) 0xE0001000) = 0x400003FE; // DWT_CTRL
//And this is really tricky!
*((volatile unsigned *) 0xE0040304) = 0x00000100; // Formatter and Flush Control Register
}
если так интересно :D


Serg
01.02.2017
08:39:28
А какой смысл работы от HSI, если нужна более менее точная частота

Ibh
01.02.2017
08:39:37
swo на 6мгц

Admin
ERROR: S client not available

Serg
01.02.2017
08:39:44
Для USB, для UART


Ibh
01.02.2017
08:40:41
накой оно надо, если pll наебнулся? переводишь железо в безопасное состояние, сохраняешь ошибки для логов, а потом перезагружаешься и снова пытаешься пустить pll и всё остальное

Google

Serg
01.02.2017
08:41:26
я сохраняю в BkpSram прямо в NMI_Handler и делаю ресет
собственно там только запись числа в памяти

Ibh
01.02.2017
09:18:10
в жёстких условиях, когда интерфейсы из блока практически пропущены между пускателями с отгоревшими снабберами на магнитах - от 1 до нескольких сотен в месяц

Serg
01.02.2017
09:21:57
а с резистором намного лучше?

Ibh
01.02.2017
09:31:06
с резистором по нулям. никаких срывов. но это не только заслуга резистора. в обоих случаях - на интерфейсах полный фарш - опторазвязка, кондёр гасящий dv/dt +разрядный резистор, индуктивные фильтры, снабберы, разрядники

Serg
01.02.2017
10:33:43
Вообщем резистор ставить надо
Не обращать внимания на "а у меня без резистора ардуинка работает, все хорошо"

Ibh
01.02.2017
10:50:54
а вот это не факт. может в avr-ах ток ограничен внутри кристалла. не видел от них рекомендаций по последовательному резистору
в общем случае лучше читать рефдизайны от производителя микрух

Саня
01.02.2017
14:35:24
Здраствйте. Кто подскажет а handskit и saike это же одна и та же компания?
или первое подделка на второе?

Eugene
01.02.2017
15:46:37
хотя вот у saike побогаче выбор

Саня
01.02.2017
16:57:12
ну у меня вопрос возник такой в связи с тем, что она внешне идентичный
saike 909D+ и handskit 909D+

Eugene
01.02.2017
17:05:13
да, при этом они оооочень похожи на Lukey 853D
есть одинаковые станции с Atten например. кто у кого прет попробуй разберись :)

Саня
01.02.2017
17:09:58
ну похожи и идентичны комплектацией и даже функционалом( боюсь как бы это не подделка была

Eugene
01.02.2017
17:09:59
YIHUA 853D вот тебе еще один аналог твоих 909D

Google

Саня
01.02.2017
17:10:14
кстате на нее тоже смотрел

Eugene
01.02.2017
17:10:33
подозреваю что первоисточник всеже люкей
надо сидеть гуглить искать вскрытие и сравнивать