Перейти к содержанию
    

подбираю мк для преобразователя интерфейсов. требования к процессору:

 

Ядро C-m0 ... C-m4. Частота 48-100МГц (больше не нужно).

Флэш 64-128Кб

Озу 16-64 Кб (16 это совсем край, лучше 32-64).

 

интерфейсы:

usb fs (device) - 1

uart - 1 или 2. Работа с rs485. Обязательна поддержка 7, 8 и 9 битных форматов в том числе 7N1. uart должен быть удобен для честной реализации modbus rtu с его дурацкими таймингами (есть мк где не предусмотрено прерывание по окончанию передачи)

can - 1

Перечисленные интерфейсы используются одновременно.

 

Таймеры:

по 1 аппаратному таймеру на каждый uart + 2 системных.

 

Дополнительные требования:

Встроенный rom загрузчик через usb. Необходима возможность через usb прошивать флэш, заливать код в озу и запускать его.

 

 

Пока нашел только lpc15xx как условно подходящее.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

STM32CubeMX говорит, что есть 175 типов STM32F, удовлетворяющих Вашим требованиям.

Upd: Хм, а что такое 7N1 ? не, такое оно не может. может только 7N1.5 да и то ручками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

nxp lpc 17XX|182(3,5)X

Но NXP в новых чипах держит только 1 уарт с полным фукнционалом, а остальные обрезки.

Изменено пользователем Kabdim

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

nxp lpc 17XX|182(3,5)X

Но NXP в новых чипах держит только 1 уарт с полным фукнционалом, а остальные обрезки.

В LPC17XX для rs485 пригоден только uart1, в других нет управления направлением rs485 и не предусмотрено прерывание по флагу статуса Transmitter Empty, без этого прерывания в многозадачной системе не сделать программное управление трансивером rs485.

Также я не представляю как в этих уарт ловить таймауты модбас-рту не отключая фифо.

Кроме того в lpc17 boot loader работает с уарт а мне обязательно нужна загрузка прошивки по усб.

lpc1820 хорош, но корпуса монстрообразные.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С модбасом не работал, возможно прерывание Character Time-out indication подойдет? Оно на 3.5 символа насколько я помню.

Бутлоадер можно и свой вставить, апноут насколько я помню есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В LPC17XX для rs485 пригоден только uart1, в других нет управления направлением rs485 и не предусмотрено прерывание по флагу статуса Transmitter Empty, без этого прерывания в многозадачной системе не сделать программное управление трансивером rs485.

Странно.. У нас кучка устройств на LPC1768/LPC1778, во всех 1-2 RS-485, везде FIFO включен, ни один не находится на UART1, везде используется операционка, среди прочих протоколов используется и Modbus. Проблем не замечал.

Управление направлением передачи внешнего драйвера - GPIO. Обнаружение конца передачи - прерывание buffer empty, затем - поллинг в прерываниях сис.таймера с ожиданием shifter empty (при желании можно и точно рассчитать стоповый бит, взведя таймер по buffer empty, но оно имхо - не нужна такая точность).

 

Также я не представляю как в этих уарт ловить таймауты модбас-рту не отключая фифо.

Точно так же как и без FIFO - оно не влияет никак на таймауты.

 

Кроме того в lpc17 boot loader работает с уарт а мне обязательно нужна загрузка прошивки по усб.

PL2303/CP2102/FT232 ?

 

Но NXP в новых чипах держит только 1 уарт с полным фукнционалом, а остальные обрезки.

Интересно - в чём урезанность остальных UART???? CTS/RTS нету? Так оно для RS-485 и не нужно.

Если так подходить, то STM32 вообще UART полных не содержит - ни в одном нету FIFO :rolleyes:

 

PS: Любой из LPC17xx удовлетворяет всем Вашим требованиям. Ну с прерыванием опустошения сдвигового регистра там конечно туго, но можно обойтись и без него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В LPC17XX для rs485 пригоден только uart1, в других нет управления направлением rs485 и не предусмотрено прерывание по флагу статуса Transmitter Empty, без этого прерывания в многозадачной системе не сделать программное управление трансивером rs485.

Также я не представляю как в этих уарт ловить таймауты модбас-рту не отключая фифо.

Это все по тому, что Вы писать не умеете ни для чего, кроме AVR:(. Минимальный NXP UART это чистой воды 80550 - именно на этом и 8050 чипе не одно поколение RS485 писателей, включая больных на всю голову авторов MODBUS-RTU реализовывали свои все.

Кроме того в lpc17 boot loader работает с уарт а мне обязательно нужна загрузка прошивки по усб.

А мне, как полагаю и прдавляющему большинству, ни нафиг не нужен ни один из заводских загрузчиков, если, как минимум не выполняется условие загрузки шифрованного образа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно - в чём урезанность остальных UART?

Ну как еще сказать что один уарт немного ровнее других? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странно.. У нас кучка устройств на LPC1768/LPC1778, во всех 1-2 RS-485, везде FIFO включен, ни один не находится на UART1, везде используется операционка, среди прочих протоколов используется и Modbus. Проблем не замечал.

Управление направлением передачи внешнего драйвера - GPIO. Обнаружение конца передачи - прерывание buffer empty, затем - поллинг в прерываниях сис.таймера с ожиданием shifter empty (при желании можно и точно рассчитать стоповый бит, взведя таймер по buffer empty, но оно имхо - не нужна такая точность).

С поллингом уарт идите в лес а мк которые по другому не позволяют работать фтопку!

Кроме rs485 есть и другие задачи критичные в времянкам.

 

Точно так же как и без FIFO - оно не влияет никак на таймауты.

Простой вопрос: какой алгоритм определения таймаутов 1,5T и 3,5T при фифо размером 16 байт ?

 

 

Интересно - в чём урезанность остальных UART???? CTS/RTS нету? Так оно для RS-485 и не нужно.

Если так подходить, то STM32 вообще UART полных не содержит - ни в одном нету FIFO :rolleyes:

stm32 не обсуждается потому что он не поддерживает формат 7 бит данных 1 стоп без четности.

 

PS: Любой из LPC17xx удовлетворяет всем Вашим требованиям. Ну с прерыванием опустошения сдвигового регистра там конечно туго, но можно обойтись и без него.

Не удовлетворяет нифга. Загрузки по усб нету. Я в Пакистан раскирпичивать девайс не поеду.

LPC15** удовлетворяет но маловто озу. В 15-й серии уарт немного другой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я в Пакистан раскирпичивать девайс не поеду.

А не писать кирпичные девайсы не судьба? Ну откуда в этом "пакистане" USB :) может их там нет :). Нафига вообще USB, если он НЕ нужен для работы, зато по Вашим словам сей девайс есть конвертор интрефейсов у которого по определению разных интерфейсрв с которыми работает заказчик таки есть и без USB. Посему НОРМАЛЬНЫЙ подход к делу, это ВТОРИЧНЫЙ загрузчик работающий по одному или вообще по всем рабочим интерфейсам и загружающий шифрованные образы, которые уже можно хоть в Пакистан, хоть в Китай с Индией посылать - не жалко.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме того в lpc17 boot loader работает с уарт а мне обязательно нужна загрузка прошивки по усб.

 

Возьмите любой мк с усб-хостом, поднимите в бутлодыре масссторадж и обновляйте прошивку с усб-флешки, очень удобно и не надо вообще комп подключать! Клиенты скажут спасибо :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не писать кирпичные девайсы не судьба? Ну откуда в этом "пакистане" USB :) может их там нет :). Нафига вообще USB, если он НЕ нужен для работы, зато по Вашим словам сей девайс есть конвертор интрефейсов у которого по определению разных интерфейсрв с которыми работает заказчик таки есть и без USB. Посему НОРМАЛЬНЫЙ подход к делу, это ВТОРИЧНЫЙ загрузчик работающий по одному или вообще по всем рабочим интерфейсам и загружающий шифрованные образы, которые уже можно хоть в Пакистан, хоть в Китай с Индией посылать - не жалко.

Программ без ошибок не бывает. Во время обновления могут вырубить электричество. Юзер может быть идиоттом и не дождавшить завершения процесса нажмет ресет / выдернет шнурок / отключит питание.

Нормальный подход к делу - это гарантировать восстановление физически исправного изделия из любых состояний включая полностью чистую флэш силами пользователя без применения специального оборудования.

usb есть в составе нашего аппаратного коплекса.

В разрабатываемом конверторе интерфейсов первичным вяляется интерфейс usb.

С шифрованными образами идите к Сноудену.

Как показала многолетняя практика голый бинарник прошивки он как неуловимый Джо : нафиг никому не нужен.

Секретить имеет смысл репозитарий исходников + багтрекер.

Основную ценность имеет история коммитов с обоснованием принятых решений.

 

вообще мы отвелекаемся. Не надо обсуждать загрузку по усб. Это обязательное требование.

мне понравились rom-less lpc18xx. Если бы не ужасные копуса применил бы. Даже цена устраивает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нормальный подход к делу - это гарантировать восстановление физически исправного изделия из любых состояний включая полностью чистую флэш силами пользователя без применения специального оборудования.

Нормальный подход к делу это решать, а не придумывать проблемы. С какого, такого бадуна

включая полностью чистую флэш
как пользователь этого добился
без применения специального оборудования

 

Теперь как это решается.

 

1. делаете маленькую программу - загрузчик расположенную в первых адресах. Ее задача загрузиться первой из флешки, проверить целостность основной прошивки, дать механизм ее изменения, и если все нормально перейти на рабочую программу.

 

2. делаете рабочую программу работающую во из флеш, можете сделать в ней ключи которые проверяет загрузчик, вплоть до шифрации прошивки.

 

 

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

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

 

И всех делов. Уже давно выпускаем серийно устройство с обновлениями прошивки по езернет, в нашем формате, и пользователь что бы не сделал всегда может восстановить продукт без применения спец оборудования. Работает все на lpc1768, у которого нет заводского загрузчика езернет....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Программ без ошибок не бывает. Во время обновления могут вырубить электричество. Юзер может быть идиоттом и не дождавшить завершения процесса нажмет ресет / выдернет шнурок / отключит питание.

Никаких проблем - вторичный бутлоадер обязан остаться живым.

Нормальный подход к делу - это гарантировать восстановление физически исправного изделия из любых состояний включая полностью чистую флэш силами пользователя без применения специального оборудования.

Про восстановление - написал выше. Про "полностью чистую флешь" - дикакя глупость. Почему - тоже уже писал.

Как показала многолетняя практика голый бинарник прошивки он как неуловимый Джо : нафиг никому не нужен.

Вообще-то ни о чем кроме нулевой ценности Ваших программных работ это не говорит.

Не надо обсуждать загрузку по усб. Это обязательное требование.

А чего ее обсуждать? Надо - взял и написал, хоть по USB, хоть по всем интерфейсам сразу. Проблема ровно нулевая и это Вы ее чего-то вдруг поминать как какую-то проблему стали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...