Разделы:
|
Новости 2013 года | 19.11.2013 | Страница MCU32-4.x. | 11.11.2013 | Запущен в производство новый модуль MCU32-4.x .
В модуле применен микроконтроллер STM32F407VET6
(ARM Cortex-M4 32b MCU+FPU /168MHz, 512KB Flash/192+4KB RAM).
Имея компактный размер, модуль функционально насыщен.
На модуле доступны Ethernet, USB device/host/OTG, RS485, CAN.
А так же приборные интерфейсы I2C, SPI.
Установлен слот microSD и литиевый элемент питания RTC.
Как и в MCU32-1, доступны 32 линии ввода вывода, но в отличии от последнего,
на новом модуле все линии толерантны к +5В.
Конструктивно модуль выполнен в виде модуля одинарной ширины комплекта MCU4.
Размеры платы 25.4 * 78.74мм.
Схема электрическая .
Расположение компонентов верх , низ . | 15.10.2013 | Опубликована новая версия терминальной программы fr_terminal_1-13. | 14.10.2013 | Опубликовано "Описание функций интерпретатора Fr-Python". | 30.09.2013 | Доступна для тестирования бета версия интерпретатора Fr-Python.
Теперь во все модули ООО "Фрактал", в которых есть микроконтроллер STM32F103, можно загрузить Fr-Python.
Процедура загрузки интерпретатора в модуль полностью аналогична загрузке обновлений Fractal-BASIC.
Нужно запустить утилиту AppSend.exe, которая через Boot-loader Fractal прошитый в модуле, загрузит интерпретатор.
Пользователь, при желании, всегда может вернуться к предыдущим версиям, использовав соответствующий архив.
В том числе, можно вернуться и к интерпретатору Fractal-BASIC.
Для получения бета версии необходимо прислать запрос с перечнем серийных номеров модулей в которые планируется загрузить новый интерпретатор. | 05.08.2013 | Выпущено обновление Fractal-BASIC-Cortex весия 3-02. | 26.06.2013 | В новой версии терминальной программы fr_terminal_1-09_win добавлен встроенный редактор. | 03.06.2013 | Опубликована новая версия терминальной программы fr_terminal_1-04_win.
В ней добавлена возможность работы и по протоколу MODBUS.
Теперь окна терминала режимов командной строки интерпретатора и режима MODBUS, доступны из одной программы.
В отличие от PIC18_Terminal, новая версия позволяет "слушать" шину MODBUS, а не только получать ответы на посланные команды. | 31.05.2013 | Опубликивана версия программы терминала fr terminal Win 32 для Win 32. | 30.05.2013 | Опубликивана новая программа терминала fr terminal Win 64 для работы с модулями со встроенным Fractal-BASIC.
Основные отличия от прежних версий
- Увеличена скорость загрузки BASIC программ в 10 раз.
- Терминал правильно обраватывает большие/маленькие и русские буквы в листингах программ. | 27.03.2013 | Выпущена версия Fractal-BASIC-Cortex весия 3-01.
В новой версии добавлены функции работы с CAN интерфейсом.
Все наши изделия где есть интерпретатор Fractal-BASIC-Cortex теперь доступны и в вариантах с CAN.
Встроенные операторы/функции предоставляют простой и удобный интерфейс взаимодействия с приборами имеющими CAN шину.
Функция/оператор CAN$ позволяет послать пакет данных(Data Frame) или пакет удаленного запроса(Remote Frame) со стандартным(St_ID) или расширенным(Ex_ID) идентификатором. До вызова функции, в памяти должен быть размещен передаваемый кадр - последовательно 4 байта ID и требуемое количество данных : 0...8 байт.
ID размещается с выравниванием к младшему разряду. Для случая с Ex_ID, оставшиеся старшие 3 бита игнорируются, для St_ID игнорируется 21 старший бит.
В качестве параметров оператора/функции указываются адрес расположения в памяти передаваемого кадра, а так же число отправляемых байт данных n содержащихся в кадре. Если n = 10...19, то размещенный в памяти ID будет трактоваться как Ex_ID 29 бит, если n = 0...9 или отсутствует, то как St_ID 11 бит.
Если параметр n равен 9, 19 или отсутствует, то будет послан кадр "Remote Frame".
Функция возвращает номер mailbox (1...3) в который попал этот пакет или число 4, в случае если все mailbox заняты и пакет не размещен.
x = CAN$ adr, n
Оператор ONCAN$ позволяет настроить узел CAN на прием пакетов. До первого вызова оператора должен быть подготовлен буфер размером не менее 12 байт, где заранее размещены фильтр ID 4 байта, его маска 4 байта и будут размещаться приходящие кадры, включающие в себя 4 байта ID и данные до 8 байт.
ID и маска выравниваются к младшему биту. Установка бита(ов) маски в 1 делает соответствующий(е) бит ID существенным при фильтрации приходящих пакетов.
Параметр оператора n устанавливает режим фильтра:
Если n < 10 то будут приниматься только кадры с St_ID, если 10 <= n < 20 то только кадры с Ex_ID.
Если младший десятичный знак n = 9 то будут приниматься только кадры "Remote Frame", если n = 0 то только кадры "Data Frame".
Если параметр n отсутствует, то будут приниматься кадры "Remote Frame" и "Data Frame" с любым типом ID.
Для этого случая в памяти должны быть размещены ID и маска в формате Ex_ID 29 бит.
После прихода кадра удовлетворяющего условиям фильтра и маски, с 0-го по 3-й байт будет размещен пришедший ID, а начиная с 4-го байта - данные. При этом будет передано управление подпрограмме с номером строки указанном в первом параметре оператора: line. Второй параметр оператора : adr - это адрес ячейки начала буфера приема.
Можно объявить до 7 разных подпрограмм с индивидуальными комплектами параметров. Комплекты параметров привязываются к номеру строки обработчика. Параметры уже объявленной подпрограммы можно переобъявить вызвав этот оператор с номером строки этой подпрограммы и адресом нового буфера. В случае переобъявления параметров обязательно надо выбрать другой заранее подготовленный буфер с комплектом фильтра и маски, т.к. текущий буфер занят приемом до момента переинициализации.
Возврат из подпрограммы обработки этого прерывания должен осуществляться оператором RETI.
ONCAN$ line, adr, n
Функция CAN возвращает признак стандартного или расширенного ID и число байт данных в пришедшем кадре.
При значениях 0...9 это стандартный ID, при 10...19 - расширенный. Последняя десятичная цифра 0...8 это число пришедших байт данных. Если последняя десятичная цифра равна 9, значит пришел кадр удалённого запроса данных.
x = CAN
Оператор CAN позволяет установить скорость работы шины.
Доступны величины 1000, 500, 250, 100, 50, 20, 10 кБит/с.
По умолчанию скорость предустановленна на 1000 кБит/с. Если для работы требуется другая скорость, то до первого использования CAN$ или ONCAN$ нужно указать одну из перечисленных скоростей.
CAN = 250
Пример №1 передача:
5 delay=5 ;пауза при старте, для возможности останова программы до инициализации CAN
10 dim $(2),12 ;буфера для исходящих телеграмм
20 adr_1=loc($(0)) ;получим адрес буфера передачи 1
30 adr_2=loc($(1)) ;получим адрес буфера передачи 2
40 mem(adr_1)=0x78,0x56,0x34,0x12 ;занесем ID 29 бит 0x12345678
50 mem=0x11,0x22,0x33,0x44,0x55 ;занесем данные 5 байт
60 mem(adr_2)=0x65,7,0,0 ;занесем ID 11 бит 0x765
70 mem=0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17 ;занесем данные 8 байт;
80 can=20 ; выбираем скорость 20 кБит/с
;основной цикл
100 if pin(23)=1 then goto 200 ;определим состояние линии 23 и выберем телеграмму
110 x1=can$ adr_1,15 ;пошлем буфер №1 5 байт c расширенным ID, x1->подтверждение
120 goto 300
200 x2=can$ adr_2,8 ;пошлем буфер №2 8 байт со стандартным ID,x2->подтверждение
300 delay=0.1 ;пауза
310 goto 100 ;циклимся
Пример №2 прием:
5 delay=5 ;пауза при старте, для возможности останова программы до
инициализации CAN
10 dim $(2),12 ;буфер приема
20 adr_1=loc($(0)) ;получим адрес буфера 1
30 adr_2=loc($(1)) ;получим адрес буфера 2
40 can=20 ; выбираем скорость 20 кБит/с
50 mem(adr_1)=0x78,0x56,0x34,0x12 ;занесем фильтр 29 бит 0x12345678
60 mem=0xFF,0xFF,0xFF,0x1F ;занесем маску - значимы все 29 бит
70 mem(adr_2)= 0x65,7 ;занесем фильтр 11 бит 0x765
80 mem(adr_2 + 4)=0xFF,7 ;занесем маску - значимы все 11 бит
90 ONCAN$ 1000,adr_1,10 ;инициализация приема в буфер adr_1 ,обработчик1000, ExID
95 ONCAN$ 2000,adr_2,0 ;инициализация приема в буфер adr_2 ,обработчик 2000, StID
;
100 delay=0.01
105 pin(24)=0: pin(25)=0
110 goto 100
;
;попадаем сюда при приходе пакета от CAN c ID=0x12345678
1000 pin(24)=1 ;вкл светодиод
;в буфере adr_1 находится пришедший кадр
1010 n_1=can ;число пришедших байт и тип ID(при исп.примера №1 будет равен 15)
1020 reti ;возврат из обработчика
;
;попадаем сюда при приходе пакета от CAN c ID=0x765
2000 pin(25)=1 ;вкл светодиод
;в буфере adr_2 находится пришедший кадр
2010 n_2=can ;число пришедших байт и тип ID(при исп.примера №1 будет равен 8)
2020 reti ;возврат из обработчика
| 13.02.2013 | Доступна для тестирования бета версия Fractal-BASIC-Cortex весия 3-00.
Интерпретатор переведен на RTOS. Это позволило оптимизировать работу многих имеющихся функций, добавить новые, и подготовить почву для дальнейшего развития.
Добавлена функция DS18B20. Она максимально упрощает работу с цифровыми термодатчиками DS18B20 с интерфейсом MicroLan. Теперь не надо заботиться о протоколе, настройке линий, запуске преобразования и контроле CRC8. Достаточно просто вызвать эту функцию, указав необходимую линию, и без ожидания получить свежий результат измерения в градусах Цельсия с полной диагностикой линии. Интерпретатор теперь позволяет параллельно работать с датчиками на 31(48) линии, при этом это никак не отражается на работе бейсик программы.
При работе с датчиками поддерживается безадресный режим с / без паразитным питанием.
Диагностика подключения возвращается в самом результате:
-при несовпадении CRC8 возвращается значение "-100.0"
-при отсутствии ответа(обрыве) "-200.0"
-при КЗ на линии "-300.0".
После первого обращения к линии, внутренний автомат начинает опрос датчика на этой линии ~ каждые 750мс, постоянно обновляя результат.
При задании номера линии допустимо указывать и "короткий " номер линии и абсолютный номер соответствующий нумерации портов микроконтроллера.
Примеры:
x = DS18B20(24) ; присваивание x результата измерения DS18B20 на линии 24
print DS18B20(0xA3) ; печать температуры датчика подключенного к линии PA3
Добавлена возможность фазового управления тиристорными регуляторами мощности. Для этого доступно 3 группы каналов, каждая с отдельным входом детектора и тремя выходами. Всего до 9 выходов.
На линию приходящую на первый канал каждого из таймеров подается сигнал с фазового детектора. В простейшем случае вполне достаточно всего 2 компонентов:
- резистора сопротивлением порядка 220 кОм / не менее 0.5 Вт и допускающим падение на нем не менее 400В;
- транзисторной оптопары с биполярным входом, например PC814.
На вход оптопары через резистор подается сетевое переменное напряжение, а выходной транзистор подключается непосредственно между землей модуля и входом фазового детектора без дополнительных компонентов. При этом не должно быть никаких соединений между высоковольтной частью и модулями, сигнал передается от сети только через оптопару. Подтягивающие резисторы к выходу оптопары не нужны.
Второй, третий и четвертый каналы таймеров могут быть проинициализированы как выходы на фазовое управление. К ним через ограничивающий резистор можно подключать оптотриаки без "детектора нуля". Для оптотриаков с входным управляющим током 10 мА это резистор порядка 200 Ом.
Управление нагрузками осуществляется через оператор PWM.
Для активации режима фазового регулирования при инициализации таймера оператором PWM задается глубина регулирования в микросекундах со знаком "-" . Для оператора PWM отрицательная величина длительности - признак режима фазового регулирования.
пример: PWM(2)=-7000 ;инициализация таймера 2 с глубиной регулирования 7мс
Пользователь имеет возможность самостоятельно задавать глубину регулирования в зависимости от конкретной реализации своей схемы и типа нагрузки. Вероятно, это окажется полезным.
Для активации конкретного выходного канала и задания момента открытия используется оператор PWM с указанием номера таймера совмещенного с номером линии и величина открытия тиристора в долях от единицы - аналогично обычному режиму ШИМ оператора PWM.
пример: PWM(23)=0.3 ;включить 3й канал таймера 2 с моментом открытия 30% от 7мс
Поскольку основой для реализации этой функции служат аппаратные таймеры, микроконтроллер не тратит программного времени на фазовое регулирование, оно работает полностью прозрачно и независимо от программы.
Для RS485, PUT$, GET$ добавлена возможность работы со всеми доступными каналами UART(до 5). При первом обращении к каналу происходит его инициализация с параметрами 115200/8/1/0. При необходимости параметры можно изменить операторами RS485F#x400, где x - номер UART.
Пример:
...
120 rs485f#2400,(0) = 9600, 8, 1, 0 ; инициализация канала UART2
130 put$ 2, adr ; инициализация указателя передачи канала UART2 на adr
140 x=get$ 3, adr1 ; инициализация указателя приема канала UART3 на adr1
...
400 put$ 2,6 ; посылка в UART2 6 байт начиная с adr
...
620 x=get$ 3,14 ;запрос из UART3 14байт с размещением с adr1,x-число полученных
Бета версия высылается по запросу. | 30.01.2013 | В продаже RSX5-5.24 - новая версия репитера RS485 с двойной гальванической развязкой (между каналами и питанием). |
|