Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Мелкие вопросы по МК и ПЛИС.

Чт май 03, 2018 15:44:19

Здравствуйте!

Хочу защитить схему интерфейса RS-485 от повышенного напряжения в линии.
Для этого планирую поставить на землю супрессоры SM712 и в разрыв цепи самовосстанавливающиеся предохранители.
Как на схеме (Bourns):
Изображение
Если по напряжению интерфейса RS-485 все понятно -7 В до +12 В.
То по току, протекающему по линиям интерфейса, я данных не нашел.
Нашел только: "Максимальный ток короткого замыкания драйвера 250 мА"
В приложенной выше схеме установлены самовосстанавливающиеся предохранители на 300 мА.
Есть еще подобная схема (Analog Device):
Изображение
В ней предохранители установлены на 200 мА.

И соответственно у меня вопрос: на какой ток ставить самовосстанавливающийся предохранитель?

И еще хотелось бы узнать аналогичный ответ только по интерфейсу RS-232: на какой ток устанавливать самовосстанавливающиеся предохранители в цепях защиты интерфейса RS-232.

У меня имеются в наличии самовосстанавливающиеся предохранители FSMD010-1206 - на 100 мА. Можно их поставить?

Re: Мелкие вопросы по МК и ПЛИС.

Пн май 14, 2018 00:39:17

Всем привет! Есть два устройства, которые общаются через RS485 (UART) по самопальному протоколу. Второе устройство надо переделать. Нужна программа, которая бы слушала линии что бы потом можно было просмотреть что за данные гоняются через UART. Проблема в том, что там постоянно сыпится однотипная информация. Есть ли программа, которая позволяла бы скрывать данные, которые не изменяются. Можно конечно записывать все попсовой Terminal, потом как-то обработать, что бы удалить клоны информации, идущие друг за другом, но хотелось бы в онлайн наблюдать что происходит на линии, но спам мешает. Можете посоветовать подобную софтину?

Re: Мелкие вопросы по МК и ПЛИС.

Пн май 14, 2018 20:48:03

Такая вот беда, писал код для устройства плавного пуска, только начал, буквально написал простенький код для проверки кнопок и светодиодов на плате, залил, после чего 13 тинька перестала шиться. Перепроверил все проводки, все дорожки, ничего подозрительного не нашел, расстроился, но взял новую тини, не впаивая в плату, залил в неё ту же прошивку, от чего и она закирпичилась. В чем вообще может быть причина такого странного поведения, и как роскирпичить тиньки? Что-то типа фьюздоктора нужно?

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 16, 2018 22:39:56

UPD: попробовал ресетнуть фьюзы вот этим способом : https://geektimes.com/post/255396/
Фьюзы ресетнулись, дуина спокойно считала их и сигнатуру, но при подключении к обычному программатору выдает avrdude: initialization failed, rc=-1, при этом все подключено верно, и другие мк этим же програматором шьються. :(

Добавлено after 1 hour 25 minutes 2 seconds:
уже совсем отчаялся, даже такое извращение пытался сделать https://habr.com/post/152052/ , правда не с кнопками а с другим микроконтроллером, на ножке Мисо не появляется никаких сигналов, от слова совсем.

Re: Мелкие вопросы по МК и ПЛИС.

Вс май 20, 2018 09:22:21

Серьезно? никто с подобным не сталкивался?

Re: Мелкие вопросы по МК и ПЛИС.

Вт май 22, 2018 17:34:23

Jack-SidrМожет у Вас фьюзы не прочитав заливаются, поэтому и кирпич? Зачем спасать копеечные тиньки, разве что в научных целях?

А у меня, возможно, глупый вопрос:
Что будет если на вход АЦП подать напряжение выше опорного, при этом:
а) вход выше опорного, но меньше питания ( просто будет макс в регистре?)
б) вход выше опорного, выше питания, но НЕ выше максимального для мк ( например тинька13 питается от 1.8В, на вход подали 4.2, а макс питание 5.5В)

?

Re: Мелкие вопросы по МК и ПЛИС.

Вт май 22, 2018 17:56:49

NebelWefer писал(а):А у меня, возможно, глупый вопрос:

В даташите есть ответы на эти вопросы.
а) Да, будет значение, близкое к максимальному или равное ему.
б) Подавать на выводы напряжение выше напряжения питания плюс немного (обычно 0,5 В) запрещено, т.к. при этом откроется защитный диод, включенный анодом к выводу и катодом к питанию.

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 23, 2018 08:42:01

Может у Вас фьюзы не прочитав заливаются, поэтому и кирпич? Зачем спасать копеечные тиньки, разве что в научных целях?

1)И в научных целях, и потому что робота застопорилась, боюсь дальше код писать, не хотелось бы еще пару закирпичить.
2)Вариант с фьюзами тоже не особо катит, так-как вторая превратилась в кирпич, когда я фьюзы вообще не трогал, а оставил заводские.
Нашел на другом форуме похожий случай, где у парня тини13 перестала шиться одним программатором, но USBASP спокойно прошил её, лично я пользуюсь USBTiny, попробую собрать Асп, думаю лишним не будет.

Добавлено after 5 minutes 19 seconds:
например тинька13 питается от 1.8В, на вход подали 4.2, а макс питание 5.5В)

Судя по напряжению, вы хотите измерять напряжение литиевых аккумов. Тогда почему-бы не питаться от самого аккума, и через делитель мерить его напряжение?

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 23, 2018 09:36:05

если мерять питание - часто прибегают к такому трюку: за опору берут питание, а меряют опорное напряжение - точность будет, конечно ниже, но различить заряд батареи хватит, плюс энергопотребление такого метода намного меньше чем с использованием делителя

Добавлено after 2 minutes 23 seconds:
но тини 13 вроде так не умеет

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 23, 2018 09:39:01

Ivanoff-iv писал(а):плюс энергопотребление такого метода намного меньше чем с использованием делителя
да еще и внешние выводы при этом могут вообще не использоваться.

Re: Мелкие вопросы по МК и ПЛИС.

Вт май 29, 2018 20:53:41

Друзья! Взываю к помощи тех из вас, кто программирует на STM32. Нужно срочно протестировать камень, при этом на месте нет вообще никаких приборов кроме ST-Link. Нужно сделать тестовую прошивку буквально с единственной командой. Раз в секунду (условно) слать что-то в USART. Ибо вообще МК видится как живой при программировании, но его поведение в схеме очень странное, и не похоже на ту прошивку, что мы пытаемся залить.

Камень STM32F100C8T6. USART1, пины PA9, PA10. Кварцевый резонатор стоит на 8МГц.

Сам под STM пишу редко, и сразу такое написать не могу. Надеюсь найдётся специалист со свободным получасом для работы. Уповаю и надеюсь, и да воздастся откликнувшемуся в карму!

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 30, 2018 06:59:35

Раз в секунду (условно) слать что-то в USART

тестик USART:
Спойлер
Код:
#include "stm32f10x.h"

volatile uint32_t msTicks;

unsigned char InitClk()
{
    unsigned long int TimeOut = 10000;
    //HSE
    RCC->CR   |=  RCC_CR_HSEON;
    while((RCC->CR & RCC_CR_HSERDY)==0)
        if(TimeOut) TimeOut--;
    if(TimeOut==0) return 1;
    RCC->CR   |=  RCC_CR_CSSON;
    RCC->CFGR &= ~RCC_CFGR_SW;
    RCC->CFGR |=  RCC_CFGR_SW_HSE;
    return 0;
}

void USART1_Init(void)
{
    RCC->APB2ENR |=   RCC_APB2ENR_IOPAEN;
    RCC->APB2ENR |=   RCC_APB2ENR_AFIOEN;
    RCC->APB2ENR |=   RCC_APB2ENR_USART1EN;

    GPIOA->CRH   |=   GPIO_CRH_MODE9 | GPIO_CRH_CNF9_1;
    GPIOA->CRH   |=   GPIO_CRH_CNF10_0;
   //Baud rate = F_clk/USART_BRR = 80000000/9600 = 833 = 0x341
    USART1->BRR   =   0x0341;
    USART1->CR1  |=   USART_CR1_UE | USART_CR1_TE | USART_CR1_RE;
}

void USART1_SendData(unsigned char data)
{
    USART1->DR  =  data;
    while((USART1->SR & USART_SR_TC)==0);
    USART1->SR &=  ~USART_SR_TC;
}

unsigned char USART1_ReceiveData(void)
{
    while((USART1->SR & USART_SR_RXNE)==0);
    return   USART1->DR;
}

void Delay (uint32_t dlyTicks)
{
    uint32_t curTicks;

    curTicks = msTicks;
    while ((msTicks - curTicks) < dlyTicks);
}

int main (void)
{
    InitClk();
    USART1_Init();
    SysTick_Config(8000000UL / 1000);    // SysTick 1 msec interrupts
    while (1)
    {
        USART1_SendData('H');
        USART1_SendData('e');
        USART1_SendData('l');
        USART1_SendData('l');
        USART1_SendData('o');
        USART1_SendData('\r');
        Delay(1000);
    }
}

void SysTick_Handler(void)
{
    msTicks++;
}

void NMI_Handler(void)
{
    if (RCC->CIR & RCC_CIR_CSSF) RCC->CIR |= RCC_CIR_CSSC;
}

В Протеусе работает, в железе не проверял:
Изображение
hex:
STM32F100C8T6TestUSART.zip
(1.08 KiB) Скачиваний: 203

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 30, 2018 09:42:11

http://vip-cxema.org/index.php/home/mik ... e-atmega8a
Товарищи коты, возможно я со своим вопросом немного не в тему но куда ещё обратится я незнаю. просто к брал паяльную станцию по моей ссылке.
проблема заключается в том что энкодер добавляет температуру добавляет и по часовой и против часовой стрелки. пробовал 3 разных энкодера и это ничего не дало. А вторая проблема такая что, после приветствия на экране появляются случайный набор разных символов в случайном порядке. но станция работает, заданную температуру поддерживает. Энкодер пробовал заменить кнопками, на добавление работает, кнопка выбора работает, а на убавление нет. С дисплеем вообще завал, куда копать?

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 30, 2018 11:28:10

1.
Код:
ISR (INT0_vect)                
{cli();      
                                             
if(!(PINC&2)) inc--;                                                
else inc++;
sei();                                                            
}   

Это обработка энкодера в программе. Проверьте работоспособность порта РС2 на ввод, например, тестовой прошивкой (написать по собственному разумению).
2.
после приветствия
А само приветствие выводится норм?
3. К Нагиричу Владиславу обращались?

Re: Мелкие вопросы по МК и ПЛИС.

Ср май 30, 2018 17:25:22

Само приветствие отображается нормально, более того если например при включенной станции выключить фен, и при перезагрузке этот самый фен включить то изображение выводится без всяких искажений. К Нагиричу Владиславу не обращался потому что не могу найти его контактных данных.

Добавлено after 5 minutes 20 seconds:
по поводу энкодера. Если я замыкаю спины пинцетом то на добавление работает, а вот на убавление глухо, не достаточно ли этого что бы сделать выводы? Кстати если пин на который подцеплена кнопка замыкать пинцетом то тоже работает

Re: Мелкие вопросы по МК и ПЛИС.

Чт май 31, 2018 13:13:07

По энкодеру. Судя по
Код:
if(!(PINC&2)) inc--;

попробуйте подать на РС1 землю и уже тогда замыкать PD2 пинцетом.
По ЖКИ не подскажу.

Re: Мелкие вопросы по МК и ПЛИС.

Сб июн 09, 2018 23:40:16

Доброго времени суток, уважаемые Коты. Прошу помочь мне с одной проблемой. Собираю проект http://arduino.ru/forum/proekty/khronog ... ent-371445 .(мои посты на последних страницах под ником Raven 18) Проблема в том что фьюзы там для extreme_burner_avr а у меня CodeVisionAVR. Пробовал поставить extreme_burner_avr но ей вроде как для работы нужны какие то толи драйвера толи библиотеки, хрен его знает- постоянно пишет ошибку и не запускается. Я не очень силён в программировании поэтому и прошу помощи. Что посоветуете? Может быть их (фьюзы) как то можно "конвертировать"?

Re: Мелкие вопросы по МК и ПЛИС.

Пн июн 18, 2018 05:22:28

Добрый день. Что за корпус #57? Или это все SOIC-14?

Изображение

Re: Мелкие вопросы по МК и ПЛИС.

Вт июн 19, 2018 14:46:38

SL в маркировке - да, SOIC.

Re: Мелкие вопросы по МК и ПЛИС.

Пн июн 25, 2018 16:25:20

всем привет!
Хочу прикрутить к проекту DFU bootloader от популярной ардуино (сам бутлоадер взял отсюда generic_boot20_pb9.bin).
Бут зашил, светодиод мигает. Заливаю прошивку (программа просто зажигает светодиод). Прошивка устанавливается, но юсб отваливается и комп видит неопознанное устройство.
Почему так происходит? Область памяти бутлоадера защитил от записи.
Камень STM32F103C8. IDE IAR
В настройках линкера указал начало флеша как 0x08002000, в начале функции main прописал NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);
Получился какой-то одноразовый бутлоадер...
Подскажите как заставить работать бутлоадер правильно ?

Вот код
Код:
#include "stm32f10x.h"
int main(void)
{
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);

  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , ENABLE);                             
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; ;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_SetBits(GPIOB, GPIO_Pin_9);

   while (1)
  {};
 
 
}


UPD
Вроде понял. Цитата от сюда
Чтобы не нажимать каждый раз ресет, платы основанные на libmaple/stm32duino используют трюк. Они слушают usb serial порт. Если там возникает сигнал DTR и передается ключевая последовательность байт, то микроконтроллер перегружается в бутлоадер. Смотреть в функцию rxHook().
Но вот не пойму что за ключевая последовательность байт и как этот DTR "выглядит", если рассматривать его через призму виртуального COM порта? В RS232 этот сигнал представлен отдельным проводом...
Ответить