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

Есть небольшая работенка для плисоводов на ALTERA.

Суть работы такая:

На альтере (в корпусе TQFP) изобразить урезанную копию XR16V798IQ фирмы EXAR

https://www.exar.com/Files/Documents/xr16v798_101_070108.pdf

Альтеру желательно взять из дешевых.

 

Что мы в итоге хотим получить:

Это поставить альтеру вместо ексара, но не переписывать софт, не менять драйвера на нашем железе.

 

Драйвер используем 8250.c, правда слегка подправленный.

linux/drivers/char/8250.c

* Driver for 8250/16550-type serial ports

* Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o.

* Copyright © 2001 Russell King.

 

 

То есть по сути нам надо 8ми канальный UART с питанием The XR16V7981 (798), is a 2.25V to 3.6V

Мы точно не используем аппаратный DTR/RTS ( в функционал не закладываем, в ноги тоже)

не используем аппаратный CTS/DSR (в функционал не закладываем, в ноги тоже)

не используем аппаратный RI/CD ( в функционал не закладываем, в ноги тоже)

не используем аппаратный TMRCK ( в функционал не закладываем, в ноги тоже)

ENIR можно внутри корпуса бросить на землю (gnd)

INFRARED не делаем целиком

Режим ■ RS485 не поддерживаем

 

 

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

 

Мы точно используем

A7:A0 Address lines [7:0]. A0:A3 selects individual UART’s 16 configuration registers,A4:A6 selects UART channel 0 to7, and A7 selects the global device configuration registers.

 

D7:D0 Data bus lines [7:0] (bidirectional).

 

IOR# When 16/68# pin is HIGH, it selects Intel bus interface and this input is read strobe

(active LOW). The falling edge instigates an internal read cycle and retrieves the

data byte from an internal register pointed by the address lines [A7:A0], places it on

the data bus to allow the host processor to read it on the leading edge.

When 16/68# pin is LOW, it selects Motorola bus interface and this input should be

connected to VCC.

 

IOW#(R/W#) When 16/68# pin is HIGH, it selects Intel bus interface and this input becomes write

strobe (active LOW). The falling edge instigates the internal write cycle and the

leading edge transfers the data byte on the data bus to an internal register pointed

by the address lines.

When 16/68# pin is LOW, it selects Motorola bus interface and this input becomes

read (HIGH) and write (LOW) signal (R/W#).

 

CS# When 16/68# pin is HIGH, this input is chip select (active LOW) to enable the

XR16V798 device.

When 16/68# pin is LOW, this input becomes the read and write strobe (active

LOW) for the Motorola bus interface.

 

INT# Global interrupt output from XR16V798 (open drain, active LOW). This output

requires an external pull-up resistor (47K-100K ohms) to operate properly. It may be

shared with other devices in the system to form a single interrupt line to the host processor

and have the software driver polls each device for the interrupt status.

 

MODEM OR SERIAL I/O INTERFACE

TX0-7 UART channel 0 Transmit Data or infrared transmit data.

 

RX0-7 UART channel 0 Receive Data or infrared receive data. Normal RXD input idles

 

ANCILLARY SIGNALS

 

XTAL1 Crystal or external clock input. Caution: this input is not 5V tolerant.

XTAL2 Crystal or buffered clock output.

 

ENIR - не используем

 

RST# Reset (active LOW). The XR16V798 does not have a Power-on reset. Therefore, a

hardware reset must be issued using this pin during power-up. The configuration

and UART registers are reset to default values,

 

16/68# 2 I Intel or Motorola data bus interface select. The Intel bus interface is selected when

this input is HIGH and the Motorola bus interface is selected when this input is LOW.

This input affects the functionality of IOR#, IOW# and CS# pins.

 

VCC 3,17,28,48,84 +2.25V to 3.6V supply with 5V tolerant serial (modem) inputs.

GND 4,18,29,47,83 Power supply common, ground.

 

Как будет проверяться и сдаваться работа:

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

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

Запас камней можем выслать естественно.

Как только ваша работа на нашем железе нас устроила, мы оплачиваем вам оговоренную в начале сумму и вы шлете нам сырцы проекта.

Может быть какой то символический задаток в начале.

Работа не особо сложная, и мы не особо торопимся, так что как сделаете так и хорошо. 2 месяца есть точно.

Наша распиновка на плате для наглядности конфигурации ног

post-7981-1484743199_thumb.jpg

 

С предложениями в личку.

Изменено пользователем -k-t-s-

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


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

Суть работы такая:

...

 

С предложениями в личку.

1. Личка у новичков не работает по определению.

2. Работу можно еще более упростить, если заранее убрать переключение шины 8/16, установить намертво в ПЛИС число передаваемых битов, нечеты и стопы... Ну и сделать намертво скорость передачи... Наверняка в процессе работы они не меняются...

3. Еще надо сказать будет ли это CPLD или FPGA...

 

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


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

1. Личка у новичков не работает по определению.

2. Работу можно еще более упростить, если заранее убрать переключение шины 8/16, установить намертво в ПЛИС число передаваемых битов, нечеты и стопы... Ну и сделать намертво скорость передачи... Наверняка в процессе работы они не меняются...

3. Еще надо сказать будет ли это CPLD или FPGA...

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

2. Полностью согласен, драйвер дам, там все есть. Скорость передачи надо менять от 9600 до максимума, у нас перебор скорости юзается.

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

 

Все урезаем в соответствии с драйвером

в картинке удалите картинку

post-7981-1484744166.jpg

Изменено пользователем -k-t-s-

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


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

Суть работы такая:

На альтере (в корпусе TQFP) изобразить урезанную копию XR16V798IQ фирмы EXAR

https://www.exar.com/Files/Documents/xr16v798_101_070108.pdf

Альтеру желательно взять из дешевых.

 

Что мы в итоге хотим получить:

Это поставить альтеру вместо ексара, но не переписывать софт, не менять драйвера на нашем железе.

 

Драйвер используем 8250.c, правда слегка подправленный.

linux/drivers/char/8250.c

* Driver for 8250/16550-type serial ports

* Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o.

* Copyright © 2001 Russell King.

 

 

То есть по сути нам надо 8ми канальный UART с питанием The XR16V7981 (798), is a 2.25V to 3.6V

Мы точно не используем аппаратный DTR/RTS ( в функционал не закладываем, в ноги тоже)

не используем аппаратный CTS/DSR (в функционал не закладываем, в ноги тоже)

не используем аппаратный RI/CD ( в функционал не закладываем, в ноги тоже)

не используем аппаратный TMRCK ( в функционал не закладываем, в ноги тоже)

ENIR можно внутри корпуса бросить на землю (gnd)

INFRARED не делаем целиком

Режим ■ RS485 не поддерживаем

 

 

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

 

Мы точно используем

A7:A0 Address lines [7:0]. A0:A3 selects individual UART’s 16 configuration registers,A4:A6 selects UART channel 0 to7, and A7 selects the global device configuration registers.

 

D7:D0 Data bus lines [7:0] (bidirectional).

 

IOR# When 16/68# pin is HIGH, it selects Intel bus interface and this input is read strobe

(active LOW). The falling edge instigates an internal read cycle and retrieves the

data byte from an internal register pointed by the address lines [A7:A0], places it on

the data bus to allow the host processor to read it on the leading edge.

When 16/68# pin is LOW, it selects Motorola bus interface and this input should be

connected to VCC.

 

IOW#(R/W#) When 16/68# pin is HIGH, it selects Intel bus interface and this input becomes write

strobe (active LOW). The falling edge instigates the internal write cycle and the

leading edge transfers the data byte on the data bus to an internal register pointed

by the address lines.

When 16/68# pin is LOW, it selects Motorola bus interface and this input becomes

read (HIGH) and write (LOW) signal (R/W#).

 

CS# When 16/68# pin is HIGH, this input is chip select (active LOW) to enable the

XR16V798 device.

When 16/68# pin is LOW, this input becomes the read and write strobe (active

LOW) for the Motorola bus interface.

 

INT# Global interrupt output from XR16V798 (open drain, active LOW). This output

requires an external pull-up resistor (47K-100K ohms) to operate properly. It may be

shared with other devices in the system to form a single interrupt line to the host processor

and have the software driver polls each device for the interrupt status.

 

MODEM OR SERIAL I/O INTERFACE

TX0-7 UART channel 0 Transmit Data or infrared transmit data.

 

RX0-7 UART channel 0 Receive Data or infrared receive data. Normal RXD input idles

 

ANCILLARY SIGNALS

 

XTAL1 Crystal or external clock input. Caution: this input is not 5V tolerant.

XTAL2 Crystal or buffered clock output.

 

ENIR - не используем

 

RST# Reset (active LOW). The XR16V798 does not have a Power-on reset. Therefore, a

hardware reset must be issued using this pin during power-up. The configuration

and UART registers are reset to default values,

 

16/68# 2 I Intel or Motorola data bus interface select. The Intel bus interface is selected when

this input is HIGH and the Motorola bus interface is selected when this input is LOW.

This input affects the functionality of IOR#, IOW# and CS# pins.

 

VCC 3,17,28,48,84 +2.25V to 3.6V supply with 5V tolerant serial (modem) inputs.

GND 4,18,29,47,83 Power supply common, ground.

 

Как будет проверяться и сдаваться работа:

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

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

Запас камней можем выслать естественно.

Как только ваша работа на нашем железе нас устроила, мы оплачиваем вам оговоренную в начале сумму и вы шлете нам сырцы проекта.

Может быть какой то символический задаток в начале.

Работа не особо сложная, и мы не особо торопимся, так что как сделаете так и хорошо. 2 месяца есть точно.

Наша распиновка на плате для наглядности конфигурации ног

post-7981-1484743199_thumb.jpg

 

С предложениями в личку.

Всё вполне реально. сообщите куда писать

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


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

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

Тут вот какое дело.

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

Поэтому плату придется переразводить.

CPLD или FPGA - либо чип прошивается и потом будет "всегда готов", либо надо будет его загружать... Но CPLD - чип дорогой..

А поскольку плату все равно переразводить, то посмотрите, может быть что-то еще в ПЛИС можно будет запихнуть...

И тем более, 8-ми канальный UART, это совсем не значит, что в FPGA надо запихнуть именно 8 ядер. Вполне достаточно и 1-го, но 8-ми канального... Поэтому можно брать что-то из самых мелких FPGA...

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


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

Тут вот какое дело.

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

Поэтому плату придется переразводить.

CPLD или FPGA - либо чип прошивается и потом будет "всегда готов", либо надо будет его загружать... Но CPLD - чип дорогой..

А поскольку плату все равно переразводить, то посмотрите, может быть что-то еще в ПЛИС можно будет запихнуть...

И тем более, 8-ми канальный UART, это совсем не значит, что в FPGA надо запихнуть именно 8 ядер. Вполне достаточно и 1-го, но 8-ми канального... Поэтому можно брать что-то из самых мелких FPGA...

Ну так и я про то говорю.

Специалист должен сам определиться как он будет или 8 ядер пихать или одно и распараллеливать. Главное чтобы на нашем железе работало, что просто проверяется.

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

То-есть адреса с данными смотрят на право, rx/tx налево, генератор вниз.

Ну и засунуть что то еще можно, но нам не нужно, все остальное работает и давно отлажено.

Изменено пользователем -k-t-s-

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


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

Специалист должен сам определиться как он будет или 8 ядер пихать или одно и распараллеливать. Главное чтобы на нашем железе работало, что просто проверяется.

Так что вот так не получится:

"Вы предположим говорите, что есть промежуточный результат, зашиваете нам камень и отправляете нам в С-Пб, мы его инсталим и смотрим на результат.

Если, что то не работает пишем что. Вы исправляете и шлете новый камень."

А должно быть пот так:

Специалист делает проект, и выдает Вам расположение выводов. Потому как сигналы могут в CPLD вписаться с трудом. После чего делается переразводка и чип паяется в плату. Там он зашивается. Потом проверяется. А вот если выберите CPLD да еще и впритык, то возможно что туда коррекция проекта не влезет и тогда ...

 

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


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

Так что вот так не получится:

"Вы предположим говорите, что есть промежуточный результат, зашиваете нам камень и отправляете нам в С-Пб, мы его инсталим и смотрим на результат.

Если, что то не работает пишем что. Вы исправляете и шлете новый камень."

А должно быть пот так:

Специалист делает проект, и выдает Вам расположение выводов. Потому как сигналы могут в CPLD вписаться с трудом. После чего делается переразводка и чип паяется в плату. Там он зашивается. Потом проверяется. А вот если выберите CPLD да еще и впритык, то возможно что туда коррекция проекта не влезет и тогда ...

Согласен, но! Плата у нас сложная 6 слоев, дорожки 0.1, ее не каждый завод берется делать.

За пробниками не набегаешься.

Мы камешек просто на проводочках припаяем на старые дорожки и проверим, благо работы на 15 минут.

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


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

Согласен, но! Плата у нас сложная 6 слоев, дорожки 0.1, ее не каждый завод берется делать.

За пробниками не набегаешься.

Мы камешек просто на проводочках припаяем на старые дорожки и проверим, благо работы на 15 минут.

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

 

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


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

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

Согласен на все 100, исполнитель делать может на чем ему нравиться, хоть на отладке, хоть в симуляторе. Нам же от него нужна зашитая микросхема.

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


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

Согласен на все 100, исполнитель делать может на чем ему нравиться, хоть на отладке, хоть в симуляторе. Нам же от него нужна зашитая микросхема.

Вы не поняли... Микросхему надо прошивать не в программаторе или "на проводках", а только на плате, с хорошими землями и питанием. И к Вашей плате "на проводках" микросхему припаивать нельзя, будет сбоить. Потому, Вам надо к старой плате проводками припаять стартовый набор, но только по сигнальным цепям. А питание и землю - от Вашей платы к стартовому набору подать толстыми проводами...

 

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


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

Вы не поняли... Микросхему надо прошивать не в программаторе или "на проводках", а только на плате, с хорошими землями и питанием. И к Вашей плате "на проводках" микросхему припаивать нельзя, будет сбоить. Потому, Вам надо к старой плате проводками припаять стартовый набор, но только по сигнальным цепям. А питание и землю - от Вашей платы к стартовому набору подать толстыми проводами...

Да, Да, все так.

Прошу макс 10 к реализации не предлагать. Это так на всякий случай - ремарка

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


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

Прошу макс 10 к реализации не предлагать. Это так на всякий случай - ремарка

:bb-offtopic:

Чем провинился? Сейчас думаю его пользовать в проекте.

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


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

Согласен на все 100, исполнитель делать может на чем ему нравиться, хоть на отладке, хоть в симуляторе. Нам же от него нужна зашитая микросхема.

 

Даже спросить боюсь, а почему не бинарник прошивки?

Из страха, что Вы его кинете, если всё работать будет? :)

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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