Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2021-фев-25 02:01

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 160 сообщений ]  На страницу « 14 5 6 7 811 »
Автор Сообщение
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2014-окт-23 12:16 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-ноя-22 13:54
Сообщения: 72
Откуда: Нижний Новгород
prostoRoman писал(а):
Антон, вы поправили только в этом одном месте или ещё что-то?
Да только в этом...
prostoRoman писал(а):
Например, есть косяк в инициализации портов (кажется при подтяжке),
не увидел косяка, но поправил код для удобочитаемости...(если что пишите более конкретно что именно не так, так как в другой ветке по вашему письму я понял что возник вопрос именно по подтяжке, но в спецификации четко написано, что в регистре MDR_PORTx->PULL в разрядах с 0 по 15 устанавливается подтяжка в ноль, а в разрядах с 16 по 31 - подтяжка в питание). У меня по коду также:
void PortA_Pin0_init(void){
  MDR_RST_CLK->PER_CLOCK |= (1UL << 21); // разрешение тактирования порта A

  MDR_PORTA->OE     |= ((0 << 0)); //направление передачи данных = Вход
  MDR_PORTA->ANALOG |= ((0 << 0)); //режим работы контроллера = Аналоговый
  MDR_PORTA->PULL   |= ((0 << 0) | (0 << (0 + 16))); //запрещение подтяжки к GND и запрещение подтяжки к VCC
  MDR_PORTA->PD     |= ((0 << (0 + 16))); //режим работы входа = триггер Шмитта выкл
  MDR_PORTA->PWR    |= ((1 << 0*2)); //скорость фронта вывода = медленный
  MDR_PORTA->GFEN   |= ((0 << 0)); //входной фильтр выключен
}
prostoRoman писал(а):
есть косяк при инициализации таймеров в части обработчика (создается только для ТИМ1)
Это не косяк (так как в скобках я пометил, что пример только для обработчика TIM1, так как для других таймеров меняется только цифра), но по просьбам пользователей поправил.
prostoRoman писал(а):
возможно ещё шероховатости. Посмотрите по по возможности тему выше и личку
По поводу лички, ПРОШУ ПРОЩЕНИЯ - действительно давно не заходил.
Шероховатости есть конечно...
Постараюсь исправить....

Выкладываю поправленную программу...


Вложения:
Комментарий к файлу: Пока новых версий не ввожу...только правлю баги...
Milandr_PLLv2.5.rar [40.78 КБ]
475 скачиваний


Последний раз редактировалось AntonAS 2014-окт-23 12:44, всего редактировалось 2 раза.
Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2014-окт-23 12:39 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-ноя-22 13:54
Сообщения: 72
Откуда: Нижний Новгород
Пока писал ответ, пришло письмо в личку от пользователя YURIY с найденным багом:
Цитата:
если в меню SSP выставлять галочки сначала на один SSP, потом на другой и снять галочки, то все окошки настроек останутся недоступны, даже если потом выбрать какой-либо модуль
Исправил и вложил в предыдущем письме.


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-янв-18 22:29 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-авг-14 16:20
Сообщения: 76
Откуда: г. Саратов
Не знаю конечно, актуально это будет или нет, но как-то под впечатлением программой от AntonAS, решил написать такую небольшую софтинку. Это расчёт таймера для режима совпадения. Просто, к сожалению, страничка с расчётом не работает в Google Chrome, а при каждом запуске ещё Firefox-а, комп на работе меня наверное проклинает, ибо связка Eclipse + Google Chrome + ещё несколько программ + Firefox не особо быстра, когда работает одновременно на не особо шустром компе :) И поэтому решил нужный мне расчёт таймера оформить в виде небольшой программки, которая потребляет гораздо меньше вычислительных ресурсов, нежели Firefox :)
Программка написана под Linux, и если кому интересно, то вот ссылка на Github
тестировал под elementary OS Luna и Linux Mint (прога написана на Vala c использованием GTK+)

скриншот
Вложение:
[ attachment ]
screenshot.png [ 28.84 КБ | 14911 просмотров ]
и ещё интересно мнение, стоит ли делать похожие софтинки для расчёта ещё чего либо?

P.S. Сейчас ещё есть программка для 1508ПЛ8Т, скоро также выкину её на github, как только доделаю, но это немного не в тему, ибо 1508ПЛ8Т - это не изделие Миландра :)

_________________
Я Волшебник.


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-янв-19 09:00 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1539
Откуда: Тула
Kirra писал(а):
:)
Только таймер в 1986ВЕ9х 16-ти битный. Поэтому значение ARR = 0x1e847f только добавит проблем в поисках причин некорректной работы таймера.

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-янв-19 12:24 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-авг-14 16:20
Сообщения: 76
Откуда: г. Саратов
Kirra писал(а):
стоит ли делать похожие софтинки для расчёта ещё чего либо?
похоже, что лучше не стоит :)
ну а если серьёзно, то проверял прогу, и почему-то был свято уверен, что таймер 24-битный... Сейчас открыл документацию, и вправду косяк..
По крайней мере, задержки в 30 мс таймер выдавал верно :(

P.S. А насчёт того, стоит или нет делать, то что можете сказать? (при учёте, что они будут не кривые :) )

_________________
Я Волшебник.


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-янв-19 12:39 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1539
Откуда: Тула
а не кривых - больше и разных, имхо.

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-янв-19 14:00 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-авг-14 16:20
Сообщения: 76
Откуда: г. Саратов
prostoRoman писал(а):
а не кривых - больше и разных, имхо.
буду стараться:)
P.S. А насчёт проги для расчёта таймера, то если выбирать делитель основного счёта таким образом, чтобы значения PSG и ARR не выходили за пределы 16-ти бит, то работает всё норм. Чуть позже подправлю, чтобы если какой-нибудь из параметров (будь то ARR или PSG) выходит за пределы 0xFFFF, то прога автоматически изменяла делитель основного счёта :) prostoRoman спасибо вам большое, что обратили внимание на этот косяк :)
Вот накидал простой примерчик, где на F6 каждые 5 сек меняется уровень
Открыть скриншоты
Вложение:
[ attachment ]
IMG_20150119_134209.jpg [ 2.93 МБ | 14888 просмотров ]
Вложение:
[ attachment ]
Снимок экрана.jpg [ 760.08 КБ | 14888 просмотров ]
Закрыть
Открыть код, генерирующий импульсы каждые 5 сек
#include <stdint.h>
#include "MDR32F9Qx_config.h"
#include "MDR32F9Qx_rst_clk.h"
#include "MDR32F9Qx_port.h"
#include "MDR32F9Qx_board.h"
#include "MDR32F9Qx_timer.h"
#include "MDR32Fx.h"

uint8_t flag;

void clock_init()
{

	RST_CLK_HSEconfig(RST_CLK_HSE_ON);
	RST_CLK_CPUclkPrescaler(RST_CLK_CPUclkDIV1);
	RST_CLK_CPUclkSelection(RST_CLK_CPUclkCPU_C3);
	RST_CLK_CPU_PLLconfig(RST_CLK_CPU_PLLsrcHSEdiv1, RST_CLK_CPU_PLLmul5);/** 80 MHz */
	RST_CLK_CPU_PLLcmd(ENABLE);
	RST_CLK_CPU_PLLuse(ENABLE);
}

void gpio_init()
{
	PORT_InitTypeDef port_init;
	PORT_StructInit(&port_init);

	RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTF, ENABLE);

	port_init.PORT_FUNC = PORT_FUNC_PORT;
	port_init.PORT_MODE = PORT_MODE_DIGITAL;
	port_init.PORT_SPEED = PORT_SPEED_MAXFAST;
	port_init.PORT_OE = PORT_OE_OUT;
	port_init.PORT_Pin = PORT_Pin_6;
	PORT_Init(MDR_PORTF, &port_init);
}

void timer_init(void)
{
  MDR_RST_CLK->PER_CLOCK |= 1 << 14;
  MDR_RST_CLK->TIM_CLOCK = (5 | (1 << 24));

  MDR_TIMER1->PSG = 0x03E7;
  MDR_TIMER1->ARR = 0x09C3; /* 5s */

  MDR_TIMER1->IE = (1 << 1);
  MDR_TIMER1->CNTRL = 1;
  NVIC_EnableIRQ(Timer1_IRQn);
  flag = 0;
}

void Timer1_IRQHandler(void)
{
  if (flag == 0)
  {
    MDR_PORTF->RXTX &= ~(1 << 6);
    flag = 1;
  }
  else
  {
    MDR_PORTF->RXTX |= (1 << 6);
    flag = 0;
  }

  MDR_TIMER1->CNT = 0x0000;
  MDR_TIMER1->STATUS &= ~(1 << 1);
  NVIC_ClearPendingIRQ(Timer1_IRQn);
}


int main(void)
{
	clock_init();
	gpio_init();
	timer_init();

	while(1) {	}

	return 0;
}
Закрыть

_________________
Я Волшебник.


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-янв-19 14:26 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1539
Откуда: Тула
Kirra, пожалуйста.

Обработка и учёт граничных условий пожалуй самая нудная тема ПО такого рода.
Думаю автоматически подстраивать предделитель не стоит. Лучше обратить внимание юзера на нарушение ограничения, пусть сам решает что делать.

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-янв-20 14:45 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-авг-14 16:20
Сообщения: 76
Откуда: г. Саратов
спасибо большое, prostoRoman, за очень ценные советы :)
я учёл ваши замечания, измененный вариант в git

вот несколько скриншотов измененной софтинки
Открыть скриншоты
Вложение:
[ attachment ]
Расчёт таймера для 1986ВЕ91_017.jpg [ 60.78 КБ | 14863 просмотра ]
Вложение:
[ attachment ]
Расчёт таймера для 1986ВЕ91_016.jpg [ 62.2 КБ | 14863 просмотра ]
Вложение:
[ attachment ]
Расчёт таймера для 1986ВЕ91_014.jpg [ 60.93 КБ | 14863 просмотра ]
Закрыть

_________________
Я Волшебник.


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-июн-02 16:44 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-ноя-22 13:54
Сообщения: 72
Откуда: Нижний Новгород
Уважаемые форумчане, здравствуйте!
Предлагаю вашему вниманию новую версию программы генератора кода.
Теперь программа представляет собой .exe файл. Для его работы необходим установленный .Net FrameWork на вашем компьютере.
По сравнению с последней браузерной версией тут присутствуют небольшие изменения.
Надеюсь использование данной программы будет более удобным чем предыдущая.
На данный момент работают блоки по генерации кода:
1. CPU
2. SysTick
3. Power
4. Port
5. ADC
6. CAN
7. UART

Остальные блоки пока не доделал.
Жду отзывов и пожеланий.


Вложения:
MilandrPLL.zip [156.78 КБ]
381 скачивание
Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-июн-10 11:57 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-ноя-22 13:54
Сообщения: 72
Откуда: Нижний Новгород
Добавил блоки UART, TIMER, SSP


Вложения:
MilandrPLL v1.1.rar [104.22 КБ]
399 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-июн-23 21:34 
Не в сети
Аватара пользователя

Зарегистрирован: 2011-окт-19 17:25
Сообщения: 554
Откуда: г. Владимир ОАО "ВКБР"
AntonAS писал(а):
Добавил блоки UART, TIMER, SSP
Программка получилась ещё лучше :D , единственное что - раньше она была пожалуй самой кроссплатформенной, теперь же только под винду. Хотя быть может и в линуксе под вайном запустится, если там проблем с тэт фремворком не будет. Из пожеланий пока - допилить оставшееся и хотелось бы увидеть дополнительно авиационник:)

_________________
"В радиотехнике, как в церкви - многое не понятно, но приходится верить"
ВлГУ. к.т.н Садовский Н.В


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-июн-25 07:51 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-ноя-22 13:54
Сообщения: 72
Откуда: Нижний Новгород
Остальные блоки в работе)
Теперь я думаю можно и под авиационник сделать)))


Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-июн-29 11:54 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-ноя-22 13:54
Сообщения: 72
Откуда: Нижний Новгород
Добавлены блоки I2C, EBC , USB, COMP, BitBand, История
Изменен интерфейс


Вложения:
MilandrPLL v2.1.rar [174.51 КБ]
388 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Расчет частот тактирования
СообщениеДобавлено: 2015-июл-02 12:52 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-ноя-22 13:54
Сообщения: 72
Откуда: Нижний Новгород
Добавлен блок WDG
Изменен интерфейс в навигации
Добавлены кнопки Скопировать в буфер обмена в каждом блоке - по просьбе prostoRoman
Добавлен новый МК серии 1986ВЕ1 - (пока на стадии разработки, поэтому его выбор заблокирован) - по просьбе НЕМАН
Теперь кроме самого .exe - шника, необходимо, чтобы в папке с программой были файлы:
1. mk1986BE9x.xml - для МК серии 1986ВЕ9х;
2. mk1986BE1.xml - для МК серии 1986ВЕ1.
Эти файлы организуют загрузку "дерева" (слева). Без них приложение выдаст ошибку.
В архиве эти файлы присутствуют.


Вложения:
MilandrPLLv2.2.rar [193.16 КБ]
355 скачиваний
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 160 сообщений ]  На страницу « 14 5 6 7 811 »

Часовой пояс: UTC+03:00


Кто сейчас на конференции

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


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

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB