Misha_Traktorist
Участник-
Постов
50 -
Зарегистрирован
-
Посещение
-
STM32F107+uIP ICMP request
Misha_Traktorist ответил ksv198 тема в STM
Кому надо, делается это вот так: // Составляем IP заголовок ICMPBUF->vhl = 0x45; ICMPBUF->tos = 0; uint16_t len = sizeof(struct uip_icmpip_hdr); // длина будет равна заголовку ip + icmp ICMPBUF->len[0] = len >> 8; ICMPBUF->len[1] = len & 0xff; uint16_t ipid = 0; ICMPBUF->ipid[0] = ipid >> 8; ICMPBUF->ipid[1] = ipid & 0xff; ICMPBUF->ipoffset[0] = ICMPBUF->ipoffset[1] = 0; ICMPBUF->ttl = UIP_TTL; ICMPBUF->proto = UIP_PROTO_ICMP; // указываем свой ip и ip удаленного устройства. uip_gethostaddr(ICMPBUF->srcipaddr); uip_ipaddr(&ICMPBUF->destipaddr, 192,168,1,101); ICMPBUF->ipchksum = 0; ICMPBUF->ipchksum = ~(uip_ipchksum()); ICMPBUF->type = ICMP_ECHO; ICMPBUF->icode = 0; ICMPBUF->icmpchksum = 0; ICMPBUF->icmpchksum = uip_chksum((uint16_t*)&ICMPBUF->type, 8); ICMPBUF->icmpchksum = ~((ICMPBUF->icmpchksum == 0) ? 0xffff : ICMPBUF->icmpchksum); printf("type %d, code %d, icmpchksum %d\r\n", ICMPBUF->type, ICMPBUF->icode, ICMPBUF->icmpchksum); uip_len = UIP_IPH_LEN + 8; // длина равна заголовку ip + заголовку icmp uip_arp_out(); enc28j60_send_packet((uint8_t *) uip_buf, uip_len); Данный код подходит как для пинга внутренней сети, так и внешней. -
STM32F107+uIP ICMP request
Misha_Traktorist ответил ksv198 тема в STM
Не могли бы поделиться кодом? Тоже надо сделать пинг с девайса))) -
Допустимые скачки напряжения по питанию.
Misha_Traktorist опубликовал тема в AVR
Здравствуйте! Устройство питается через стабилизатор 34063 (на выходе ~5.2V), присутствует atmega32 и память at24c64. Посмотрел осцилом, а там по питанию вот что: Здесь скачки в пределах 60мв и частотой больше 1,5мгц. Являются ли такие скачки опасными для работы микронтроллера или они вполне допустимые? -
Может и действительно дешевле. Но опять же, микросхема высокочастотная, много трудностей в разводке. L5973 - $0.58 на али. Миша, не экономьте буквы. Нет такого слова "микра". И что такое "али" тоже не обязано быть всем понятным.
-
Мужики, действительно, с разводкой я сильно затупил. Посмотерл на старую плату - там разводка практический такая же, как в ДШ (хотя плата односторонняя), поэтому на ней и работало нормально. Всё таки, решил от неё отказаться. lm2576 тоже отпадает, так как сильно большая (и дроссель её нужен большой). Буду пока что ориентироваться на L5973.
-
Горят ST1S10
Misha_Traktorist опубликовал тема в Силовая Преобразовательная Техника
Доброго времени суток! Есть плата GSM модуля на базе SIM900, для питания которого используется ST1S10. MINISMDC110F-2 - самовостанавливающиеся предохранители на 1,1А. SMAJ5 - сапресор на 5В. В инете читал, что когда ST1S10 сгорает то вместе с ней сгорает всё, что она питает, поэтому предусмотрел такую защиту. Плата: Выделил саму микру и резисторы, задающие напряжение. Там ещё на выходе питания с микры подпаян электролит Low esr на 3300мкф/6,3В, на схеме и плате нет. Сначала, припаял всё кроме sim900 - на выходе было нужное напряжение, припаял sim900, немного поработало и ST1S10 сгорела (не помню, через какое время). Припаял другую ST1S10 - тоже сгорела. Раньше использовал эту же микру и таким же дросселем и по такой же схеме, ничего не сгорело. Но там даже плата была односторонняя, из-за чего не передавала тепло на обратную сторону, при этом работало нормально. Подскажите, пожалуйста, где я ошибся? Файлы DipTrace прикрепил. Плата заводская. Если отпаять микру и после дросселя подключить источник питания 4,2В, то SIM900 работает. GSM_GPRS_module.rar -
Вобщем, разобрался с токовым трансформатором и виртуальной землей, ампертмер готов))) Всем спасибо!
-
Да, можно использовать 2 АЦП, но зачем, если можно использовать один? Резистором на 30К будет подстраиваться напряжение, которое должно быть равно напряжению падения на диоде. В результате на CUR_OUT будет напряжение от 0 до максимума, в зависимости от тока на первычке. Вчера пробовал это в реале, пропускал примерно 10А и 5А, линейность была отличная.
-
Ребят, прошу прощения. Я думал, что при отсутсвии тока, напряжение на выходе (перед АЦП) будет 2,5В, а при наличии тока напряжение будет от 0 до максимума. Вчера только понял, что при наличии тока напряжение на выходе будет от 2,5 до максимума. В результате, как и написал Herz, не должно быть никаких резистивных делителей, чтобы начальной точкой было не 2,5, а 0. Но в реале нужно учитывать падение на диоде перед АЦП, поэтому резистивный делитель ставить нужно, но его выходное напряжение должно быть равно напряжению падения на диоде, или же, лучше поставить ИОН с таким же выходным напряжением.
-
Есть проблемка. Когда на первичной обмотки нет тока (полностью разомкнута), постоянный ток с резистивного делителя просто проходит через вторичную обмотку и шунтирующий резистор напрямую ко входу АЦП, в результате при отсутствии тока на первычке, на ацп всегда попадает 2,5В. Можно ли как-то детектировать отсутствие тока на первичке?
-
Постараюсь завтра документацию достать (так как не знаю даже как транс называется). Вообще, на сколько знаю, реактивное сопротивление можно узнать исходя из индуктивности.
-
Пообщался со знающим человеком по поводу данного вопроса. Оказывается, шунтирующий резистор ставится не абы-какой, его сопротивление должно соответствовать реактивному сопротивлению трансформатора, только при этом можно получить максимальноую линейность. А так, первая схема вполне подходит, но между микроконтроллером и трансформатором нужно поставить диод и параллельно кондер.
-
Если не вдаваться в подробности, то это просто источник переменного тока. Разве я не прав?
-
А как его выпрямить? Если делаю на диодах шотки, то переменное напряжение перед диодом не пропорционально постоянную после. А вот если просто поцепить резистор параллельно трансу и измерять на нем переменное напряжение, то оно как раз изменяется пропорционально силе тока. Осталось в постоянку преобразовать)))
-
Прямо по вершине измерять не нужно. Это просто устройство которое будет стоить в ящике на din рейке и отображать текущий ток.