Jump to content

    
Sign in to follow this  
ReAl

avreal

Recommended Posts

Схема - OrCad Capture

Плата - PADS

 

Выходной разъем - 14-pin ARM JTAG (для OpenOCD). Для AVREAL используется внешний переходник (у меня например это IDC14 - WH6). Для AVREAL предусмотрены два светодиода (Ок и Error) и кнопка запуска программирования.

Питание выходного буфера осуществляется или от +5V с USB или с +3.3V с LDO на плате или от внешнего устройства.

 

В схеме много лишнего для обычного программатора. Поскольку сделана на 2232, то второй порт используется для создания виртуального последовательного порта (у меня это либо 232 либо 422 либо 485, выбирается джампером на плате).

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

 

Разведено для корпуса Gainta G403.

USBAVREAL.zip

Share this post


Link to post
Share on other sites
Собирать лучше что-то совместимое по раскладке выводов с поддерживаемым в OpenOCD, сразу на два фронта работать будет.

Я в своё время это дело промухал, но и пересобрать OpenOCD с поддержкой моей (да и любой) коробочки оказалось не так сложно как кажется. Один фиг его собирать если не хочется ставить левый драйвер (а его ставить не хочется ну совсем)

Проект под PCAD http://xdevs.com/kb/dx/ft2232/FT2232.AVReaL.rar

 

Тупо копировать наверно не следует, но вполне себе вариант для начала. Делал бы я его сейчас - ещё бы и драйвер 485-го на второй канал привинтил бы - часто нужен.

 

avrealft2232_02.jpg

Edited by Dx!

Share this post


Link to post
Share on other sites

Да я смотрел исходники, проблем никаких. Но и смысла плодить разное в коде тоже никакого.

У меня сейчас небольшая платка с шинником с разводкой разрешений как у amontec jtagkey

Написал в cfg ft2232_layout jtagkey, а vid-pid родные FTDI-ные, я их не переписывал в EEPROM-ке. И всё работает.

Share this post


Link to post
Share on other sites

Да, согласен. Возможно даже эти моменты хорошо бы настраиваемыми делать (джамперами или ещё как) - много всякого софта поддерживает ft2232 но почти весь он не позволяет свободно настраивать ножку включения шинника. Тот же OpenOCD - ну почему бы не сделать настройку как в сабже? Зачем эти непонятные названия коробочек разных? Тогда бы нужно было менять только конфиг, он так и так нужен, а не перекомпилировать 8) (А кроме программаторов ещё есть куча софта под Boundary scan и там те же виллы - ft2232 есть, настройки нет.)

 

И да - про мой проект - там цепочка слишком длинная получилась. На 3MHz ещё работает, а вот на 6MHz уже нет. Идет сдвиг на один бит, и, соответственно, житагу рвёт крышу. Так что задержки тоже нужно иметь в виду.

 

а vid-pid родные FTDI-ные,

Както он игнорит эти параметры. Можно совсем убрать, можно левые написать - один фиг работает.

interface ft2232
ft2232_device_desc "AVR SPI Programmer A"
ft2232_layout avr_spi
jtag_khz 3000

Edited by Dx!

Share this post


Link to post
Share on other sites

по vid-pid там под линуксом для libftd2xx.so для нестандартных vid-pid нужно

Remarks

By default, the driver will support a limited set of VID and PID matched devices (VID 0x0403 with PIDs 0x6001, 0x6010, 0x6006 only).

In order to use the driver with other VID and PID combinations the FT_SetVIDPID function

must be used prior to calling FT_ListDevices, FT_Open, FT_OpenEx or FT_CreateDeviceInfoList.

Для WIN в библиотеке этой функции нет вообще.

Т.е., полчается, если vid-pid стандартные, то ничего и не нужно делать, и так возьмёт.

Надо будт попробовать прошить vid-pid другие и глянуть, что выходит без их указания.

 

UPD:

А не надо и пробовать. Взял Altera USB-Blaster (avreal с ним не работает, но сейчас ведь и не работать, а так)

Без указания vid-pid (и, соответственно, без вызова той функции)

$ avreal -aft2232 -pd="USB-Blaster" +mega8

 

avreal/LINUX - AVR controllers programmer by Redchuk Alexandr

v1.28r5 (Oct 11 2010 22:17:20) http://real.kiev.ua/avreal

bug-reports, suggestions and so on mail to avreal@real.kiev.ua

Command:

-aft2232 -pd=USB-Blaster +mega8

Can't open FTDI device with description "USB-Blaster" (FT_DEVICE_NOT_FOUND)

С указанием

$ avreal -aft2232 -pv=09FB,p=6001,d="USB-Blaster" +mega8

 

avreal/LINUX - AVR controllers programmer by Redchuk Alexandr

v1.28r5 (Oct 11 2010 22:17:20) http://real.kiev.ua/avreal

bug-reports, suggestions and so on mail to avreal@real.kiev.ua

Command:

-aft2232 -pv=09FB,p=6001,d=USB-Blaster +mega8

Can't use opened FTDI device (some of parameters not match)

Requested FT_DEVICE_2232C (description "USB-Blaster", serial number "any")

Found FT_DEVICE_BM (description "USB-Blaster", serial number "8afaa230")

Так что это нужно, но только под линуксом (не знаю, нужно ли при работе через libftdi, а не libftd2xx) и только при не-умолчательных vid-pid.

Если стоят стандартные, то ничего не нужно.

Share this post


Link to post
Share on other sites

Фирма FTDI в начале декабря «подарочек» сделала в виде выпуска новой библиотеки FTD2XX под линукс (libftd2xx).

Раньше были версии 0.4.x, а это уже типа совсем релиз, 1.0.0. «Но мы-то с вами понимаем», на чём два нуля пишут.

 

Подробнее о засаде у меня на страничке.

 

Старую библиотеку они убрали, но у меня есть две предыдущих, 0.4.15 и 0.4.16:-)

Share this post


Link to post
Share on other sites

Так это уже давно. И скорее на МегаДжоне :-), плата взята отсюда. И там кроме avreal ещё какой-то софт упомяут. И уж точно не «уже», это далеко не первая плата, которая продаётся с рассчётом и на avreal.

 

Ну хорошо, а просто шьющий avreal-ом изделия на продажу зарабатывает на мне или нет? С тем же успехом я зарабатываю на авторах/поддерживающих gcc, включая порт avr-gcc.

avreal столь же бесплатен, так что «всё честно»

 

Тут двойственная ситуация, к которой я отношусь «философски».

 

С одной стороны — как бы кто-то зарабатывает «на мне».

С другой стороны — этих денег я всё равно не заработал бы и вопрос скорее почему я сам не пытаюсь это делать. Лень, наверно.

 

С одной стороны — а кроме «космодрома» сколько народу по всему xUSSR продавало байт-бластеры с припиской «и для AVR с avreal-ом»? Так почему «космодром» мне что-то должен, а те — нет?

С другой стороны — приятно было бы получить какую-то копеечку с таких продаж или хоть подарочек к Новому Году :-)

 

Кстати, восемь лет назад именно к новому году я получил в подарок большой пакет всякой пиротехники, как я понимаю (сверяя адреса и историю) от этих ребят.

 

Share this post


Link to post
Share on other sites

Свежая версия.

В основном мелочи, по просьбе добавлена форма ключа -k (различие в регистре буквы), при которой меняется порядок зачитывания файлов и ожидания кнопки.

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

Share this post


Link to post
Share on other sites

Пока для своего программатора я жду дефицитных микросхем, МегаДжон одолжил мне на время свой программатор (очередная разработка). Вот что странно с ним происходит- проект шьется, все проходит как надо. Но работать не хочет в плате... Стоит перезагрузить комп, сразу шьется, но теперь уже работает. Вчера вообще дело дошло до того, что загружаю проект, а он не хочет внутри работать как положено, хотя, должен был бы.

 

Кто- нибудь сталкивался с подобным? Из-за чего может возникать подобное?

Share this post


Link to post
Share on other sites

"Ну не знаю"

Если верификация проходит, то не работать не должно. Даже если на выводах адаптера мусорное состояние поначалу было (как у LPT-шных может быть), всё равно после первого программирования всё устанавливается в нормальное состояние.

Share this post


Link to post
Share on other sites

Уже грешу на мой DC-DC конвертор, что этот МК питает. Т.к. похоже странности там. Хотя, осциллом не вижу ничего плохого.

Пытаюсь сейчас другой примменить, может что посоветуете из практики? Сейчас стоит ST1S10

Share this post


Link to post
Share on other sites

У меня была поджаренная высоким напряжением (27 пришло на INT1) m162 - читалась, писалась, верифицировалась. Но где-то в самом начале программы мертво висла. Замена вопрос решила.

Share this post


Link to post
Share on other sites
Взял Altera USB-Blaster (avreal с ним не работает, ...

кстати, а было бы неплохо, если бы avreal и с usb-blasterом тоже работал.

описание того, что там epm7064 в бластере делает, вроде есть, но насколько оно соответствует действительности не проверял:

 

The CPLD knows two major modes: Bit banging mode and Byte shift mode. It starts in Bit banging mode. Each byte B of them is processed as follows:

 

Bit banging mode

Remember bit 6 (0x40) in B as the "Read bit".

If bit 7 (0x80) is set, switch to Byte shift mode for the coming X bytes ( X := B & 0x3F ), and don't do anything else now.

Otherwise, set the JTAG signals as follows:

TCK/DCLK high if bit 0 was set (0x01), otherwise low

TMS/nCONFIG high if bit 1 was set (0x02), otherwise low

nCE high if bit 2 was set (0x04), otherwise low

nCS high if bit 3 was set (0x08), otherwise low

TDI/ASDI/DATAO high if bit 4 was set (0x10), otherwise low

Output Enable/LED active if bit 5 was set (0x20), otherwise low

If "Read bit" (0x40) was set, record the state of TDO(CONF_DONE) and DATAOUT/(nSTATUS) pins and put is as a byte( (DATAOUT<<1)|TDO) in the output FIFO _to_ the host.

 

Byte shift mode

Load shift register with byte from host

Do 8 times (i.e. for each bit of the byte; implemented in shift.a51)

if nCS=1, set carry bit from TDO, else set carry bit from DATAOUT (Active Serial mode)

Rotate shift register through carry bit

TDI := Carry bit

Raise TCK, then lower TCK.

If "Read bit" was set when switching into byte shift mode, record the shift register content and put it into the FIFO to the host.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this