Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 новичку в ARM что к чему
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 21:21:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8459 ]     ... , , , 130, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт ноя 20, 2015 00:11:44 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Пн янв 24, 2011 01:51:48
Сообщений: 197
Откуда: Украина, Киев
Рейтинг сообщения: 0
http://www.labcenter.com/products/vsm/cm3.cfm


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср ноя 25, 2015 15:13:41 
Сверлит текстолит когтями
Аватар пользователя

Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40
Сообщений: 1270
Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
Подскажите, почему МК сваливается в hard fault на любой инструкции после push? (stm32f103)

_________________
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср ноя 25, 2015 15:19:38 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
Alexey_N писал(а):
Подскажите, почему МК сваливается в hard fault на любой инструкции после push? (stm32f103)

Ну самое очевидное то что ?
Посмотреть, куда SP показывает.
Очень вероятно, вообще за пределы SRAMа -))


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср ноя 25, 2015 15:25:05 
Сверлит текстолит когтями
Аватар пользователя

Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40
Сообщений: 1270
Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
А да, точно! Сглупил я, вместо вершины 0x20005000 указал 0x20050000, а там то всего 20Кб :oops:

Возникла новая проблема с objdump при дизассемблировании, но исходник создается все же:
Код:
BFD: main103: invalid string offset 536870912 >= 548 for section `.strtab'

_________________
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт ноя 26, 2015 08:32:52 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
Как показал опыт, нужно ковырять fasmarm.
Почему-то очень много багов в таблице символов.
Исходник и эльф в студию :kill:


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт ноя 26, 2015 13:08:06 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
To dosikus

Спасибо за правильную подсказку, дошли руки и сделал наконец одиночные транзакции через SPI по вашему рецепту (с вычитыванием приёмного буфера). Теперь работает :beer:

Но появился новый вопрос.

Как в STM32F0F4P6 организовать SPI для посылки буфера с помощью DMA?

Нужно вручную и достаточно редко пинать DMA, чтобы выплёвывать N байт с заранее определённого буфера. Приём данных не нужен. Прерывания TC не нужны.

Сейчас сделано так (псевдокод):

CR1 = SPI_CR1_MSTR+SPI_CR1_BR_0+SPI_CR1_BR_1+SPI_CR1_BR_2+SPI_CR1_SSM+SPI_CR1_SSI

CR2 = SPI_CR2_DS_0+SPI_CR2_DS_1+SPI_CR2_DS_2+SPI_CR2_TXDMAEN+SPI_CR2_FRXTH

Включаю SPI:

CR1 = CR1 | SPI_CR1_SPE

При конфигурации DMA на канале 3 (SPI1_TX) выставляю в CPAR адрес SPI1 DR, в CMAR адрес буфера, CNDTR=0,
CCR = DMA_CCR_DIR+DMA_CCR_MINC

Передачу инициирую так:

- отключаю 3й канал DMA
- записываю в CNDTR нужное количество байт
- включаю 3й канал


Любопытно что передача данных получается нормально, но только первый раз. При последующих попытках отослать тот же буфер (с интервалом в 1 секунду) передача идёт, но такое впечатление что данных посылается больше чем нужно (непонятно откуда берутся лишние нулевые байты).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт ноя 26, 2015 14:34:51 
Сверлит текстолит когтями
Аватар пользователя

Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40
Сообщений: 1270
Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
Вот все


Вложения:
main103.zip [2.38 KiB]
Скачиваний: 139

_________________
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт ноя 26, 2015 14:58:08 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
1) Где директива processor?
2) Где stm32f10x.inc?

UPD:
Ошибок в эльфе миллиард! :o


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт ноя 26, 2015 20:03:40 
Сверлит текстолит когтями
Аватар пользователя

Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40
Сообщений: 1270
Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
А зачем эта директива? что она скажет компилятору?
Вот недостающий файл.
Еще какие-то есть ошибки в эльфе?


Вложения:
stm32f10x.zip [50.42 KiB]
Скачиваний: 113

_________________
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт ноя 26, 2015 21:22:21 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
Alexey_N писал(а):
А зачем эта директива? что она скажет компилятору?


По умолчанию этот ассемблер поддерживает все инструкции в режиме THUMB.
Но кортексы в зависимости от подсемейства поддерживает ограниченный набор. Эта директива разрешает только определённый набор инструкций и принимает в качестве аргумента набор бит. Смотрите readme.txt.
Эта фича позволяет отсекать неподдерживаемые варианты инструкций, режимы адресации и т.д. Ассемблер просто скажет, что данная инструкция на данном процессоре не поддерживается.

Alexey_N писал(а):
Еще какие-то есть ошибки в эльфе?


fasmarm напартачил в таблице символов и в line number program в нескольких местах. Всё ещё elf dwarf сырой :(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт ноя 26, 2015 21:26:54 
Сверлит текстолит когтями
Аватар пользователя

Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40
Сообщений: 1270
Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
Да, вспомнил, читал про нее, но не понял какие биты надо выставлять для Cortex-M3? ARM7TDMI? processor 0xfe, coprocessor 0x0?

_________________
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт ноя 27, 2015 09:17:14 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Andrew Martin Посылка буфера через промежутки.
В прерывании по окончанию трансфера :
Обрати внимание на ожидание освобождения FIFO.
И на то, что выключаем канала затем периферию...
Код:
void DMA1_Channel4_5_IRQHandler (void)
{
 
  if(DMA1->ISR & DMA_ISR_TCIF5)
  {
    DMA1->IFCR |=DMA_IFCR_CTCIF5;
    DMA1_Channel5->CCR&=~DMA_CCR_EN;
   while(((SPI2->SR & SPI_SR_FTLVL_0))|| ((SPI2->SR & SPI_SR_FTLVL_1))){}   
   while((SPI2->SR & SPI_SR_BSY)){}
   SPI2->CR1 &= ~SPI_CR1_SPE;
          LOAD_ON;         
          LOAD_OFF;
   
  }   
 
 
}



Запуск передачи в прерывании от таймера :
Код:
void TIM3_IRQHandler(void)
{
   static volatile uint32_t ulTim3Cnt;
  static volatile uint32_t ulPtntCnt;
   
    if (TIM3->SR & TIM_SR_UIF)
    {
        TIM3->SR &= ~TIM_SR_UIF;
            if(ulCount)
            {
               ulCount--;
            }
       
        if(ulTim3Cnt<5)KEY_STB_ON;
            else   KEY_STB_OFF;
       
        if(++ulTim3Cnt>=10)
            {               
               ulTim3Cnt=0;            
               ucKeyFlag=1;                              
            }
      if(!ulPtntCnt--)
      {
        ulPtntCnt=PrintIntrv;
        DMA1_Channel5->CNDTR=0x09;
        DMA1_Channel5->CCR |=DMA_CCR_EN;   
        SPI2->CR1 |= SPI_CR1_SPE;       
      }     
    }
}





Это на TIC55 . И извиняюсь -времени совершенно нет ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт ноя 27, 2015 12:46:19 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
dosikus писал(а):
Это на TIC55 . И извиняюсь -времени совершенно нет ...


И на том спасибо :)

Очень хотелось бы увидеть ещё инициализацию SPI и DMA к данному примеру.

А обязательно ли выключать SPI и DMA сразу после окончания трансфера в прерывании?
Можно ли отправить буфер, потом через большой промежуток времени выключить всё, сконфигурировать заново и запустить передачу?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт ноя 27, 2015 12:49:04 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
Alexey_N писал(а):
Да, вспомнил, читал про нее, но не понял какие биты надо выставлять для Cortex-M3? ARM7TDMI? processor 0xfe, coprocessor 0x0?


Посмотрите http://openefi.blogspot.com/2012/05/arm ... rrupt.html


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт ноя 27, 2015 15:01:31 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 2
Код:
   #define SPI1_DR_8b (*(__IO uint8_t *)((uint32_t)SPI1 + 0x0C))
   #define SPI2_DR_8b (*(__IO uint8_t *)((uint32_t)SPI2 + 0x0C))
   
   #define LOAD_OFF GPIOB->BSRR = GPIO_BSRR_BR_12 
  #define LOAD_ON GPIOB->BSRR = GPIO_BSRR_BS_12



Код:
void Tic55_init(void)
   {
      
   
      RCC->AHBENR |=RCC_AHBENR_GPIOBEN | RCC_AHBENR_DMA1EN;
      RCC->APB1ENR |=RCC_APB1ENR_SPI2EN;
      
      
                                                   
     GPIOB->MODER &=~
                  GPIO_MODER_MODER12 |
                  GPIO_MODER_MODER13 |
                GPIO_MODER_MODER14 |
                GPIO_MODER_MODER15
                                   ;
      GPIOB->MODER|=
             
              GPIO_MODER_MODER13_1|
              GPIO_MODER_MODER14_1|
              GPIO_MODER_MODER15_1 ;
                  
      GPIOB->MODER|=GPIO_MODER_MODER12_0;                           
                  
      

    GPIOB->PUPDR |= 
              GPIO_PUPDR_PUPDR12_1|                             
              GPIO_PUPDR_PUPDR13_1|
              GPIO_PUPDR_PUPDR14_1|
              GPIO_PUPDR_PUPDR15_1
                    ;
   
   
      SPI2->CR1 |=
                   SPI_CR1_BR_0 |     //
                   SPI_CR1_BR_1 |
                   SPI_CR1_BR_2 |
                   SPI_CR1_MSTR |
                   SPI_CR1_SSI    |            
                   SPI_CR1_SSM
                   ;   
   SPI2->CR2  = 0x700;   //  8 bit
  SPI2->CR2 |= SPI_CR2_TXDMAEN ; 
   
  DMA1_Channel5->CCR =
  DMA_CCR_MINC |
  DMA_CCR_DIR |
  DMA_CCR_PL |
  DMA_CCR_TCIE
    ;
     
   DMA1_Channel5->CNDTR=0x09;
   DMA1_Channel5->CPAR = (uint32_t)& SPI2_DR_8b;
   DMA1_Channel5->CMAR =(uint32_t)Tic55_buf;
   
 
  NVIC_SetPriority(DMA1_Channel4_5_IRQn, 14);
  NVIC_EnableIRQ(DMA1_Channel4_5_IRQn);
 
   
   }


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт ноя 27, 2015 15:39:17 
Сверлит текстолит когтями
Аватар пользователя

Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40
Сообщений: 1270
Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
О, благодарю, нашел. Есть еще вопрос, в чем разница между movs и mov в fasm? по мануалу RM0056 читаю, что от этого суффикса зависит меняются ли флаги или нет, но по дизассемблеру получаются совсем разные коды, одна инструкция 16 битная (movs) вторая 32(mov.w)

_________________
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб ноя 28, 2015 13:20:53 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
Alexey_N писал(а):
О, благодарю, нашел. Есть еще вопрос, в чем разница между movs и mov в fasm? по мануалу RM0056 читаю, что от этого суффикса зависит меняются ли флаги или нет, но по дизассемблеру получаются совсем разные коды, одна инструкция 16 битная (movs) вторая 32(mov.w)


Тут не в фасме дело.
Читайте доки от ARM.
Разбирайте кодирование инструкций. Варианты кодирования инструкций зависят от операндов.

Например, на М0 movs кодируется как adds и работает только с r0-r7:

movs r0,1 = adds r0,r0,1
movs r0,r1 = adds r0,r1,0

А mov вообще не умеет работать с константами, только с регистрами, но со всеми 16ю :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт дек 01, 2015 03:13:21 
Родился

Зарегистрирован: Чт янв 03, 2008 23:04:59
Сообщений: 7
Рейтинг сообщения: 0
В описании USARTa STM32F4, очень кратко описан IrDA SIR ENDEC block
Не совсем понятно, означает ли, что возможно использовать прием/передачу по ИК-каналу подключив только фото- и светодиод к ножкам RX/TX USARTa без использования таймеров?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс дек 06, 2015 14:28:51 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 253
Зарегистрирован: Вт июн 25, 2013 18:45:07
Сообщений: 606
Рейтинг сообщения: 0
Alexey_N

Не используйте 4-байтное выравнивание для кода, используйте 2-байтное, в режиме THUMB это правильнее. А 4-байтное только для данных.

Код:

align 2

proc:
ldr r0,[.data]

bx lr

align 4

.data dw 0x0

align 2

proc2:
.
.
.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс дек 06, 2015 18:12:24 
Сверлит текстолит когтями
Аватар пользователя

Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40
Сообщений: 1270
Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
Из-за этого эльф кривой получался? (по последней ошибке дизассемблирования)
А если я укажу в параметрах секции кода выравнивание 2, а потом по ходу кода выравнивание 4 для данных, то после данных надо опять указывать выравнивание 2 ? Я к тому, что на что влияет выравнивание в параметрах секции, если оно может явно задаваться для участков кода/данных.

_________________
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8459 ]     ... , , , 130, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y