SECU-64 - порт SECU-3 на mega-64(128) (SECU-3 --> ATmega128)

Русскоязычный форум SECU-3 по общим вопросам. General discussion in Russian language. English sub-forum.

Moderator: STC

Serj_K
LQFP144 - On Top Of The Game
Posts: 330
Joined: Thu Dec 09, 2010 12:55 pm
Location: Kyiv, Ukraine

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by Serj_K »

Посмотрел видео - не понимаю, от чего так. Структура отображаемого текста не совпадает с структтурой выводимого, информация повторяется. Чудеса.
Пробовал сегодня три разных дисплея,правда все они 16X2 (по даташиту совместимые с HD44780), результат тот же
А это значит, что проблема, скорее всего, в блоке индикации, но куда рыть?
Мою вышеприложенную прошивку пробовал?
На всякий случай повторю, как работает схема в индикаторной части.
На выходе U2/11 происходит смена уровня - на выходе U3C/8 проскакивает положительный импульс, по заднему фронту которого происходит запись данных в индиатор. По осциллогрфу на выходе U3C/8 частота импульсов будет в 2 раза больше, чем на выходе U2/11. Во время пауз при передаче на выходе U3C/8 должен быть 0.
Попробуй вот что. Подключи индикатор (любой) на LPT по 4-битной схеме, но используй 8-битный обмен. Это позволит увидеть разницу в отображении.
sergey-forever
QFP80 - Contributor
Posts: 46
Joined: Fri Mar 11, 2011 2:40 pm

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by sergey-forever »

Проверил новую прошивку, работает точно также. К LPT подключится по 4-битному, не получится, так как все программы, что я нашел, написаны под 8-битный режим обмена.
Провел сегодня еще один эксперимент, изменил LCD_init, так чтобы на выходе расширителя был пересчет от 0 до F:
void LCD_init (void) // инициализация индикатора
{
uint8_t y;

pause_ms(100); //50
y=0;
slaw = PCF8574_A0;
slar = PCF8574_A0 | I2C_RD;
loop:

i2c_io_size = 0;
i2c_buffer[i2c_io_size++] = y++; // LCD_E = _/-, E= _/-\_
i2c_busy = 1; //начинаем передавать буфер - i2c занят
i2c_start;

pause_ms(1); //12
goto loop;

Посмотрел осциллографом выходи PCF8574, от младшего разряда до старшего. На каждом следующем разряде видно что длина импульса в два раза шире чем длина на предыдущем, как и должно быть. На выходе U2/11 проскакивает импульс высокий низкий высокий. А с U3С немного непонятно, на выводе 8 проскакивает кабы сдоенный импульс.
Странно как то получается, расширитель работает, индикатор рабочий, а изображения нет.

Еще одно наблюдение если в коде убрать задержку вообще, то на выходе PCF8574 проскакивают короткие хаотичные импульсы. Я уже хотел заказывать новую PCF8574, но теперь сомневаюсь.
Serj_K
LQFP144 - On Top Of The Game
Posts: 330
Joined: Thu Dec 09, 2010 12:55 pm
Location: Kyiv, Ukraine

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by Serj_K »

К LPT подключится по 4-битному, не получится, так как все программы, что я нашел, написаны под 8-битный режим обмена.
Это для проверки поведения индикатора при неправильной шине. Например 4-битная схема при 8-битном обмене или 8-битная шина при 4-битном (в нашем случае - не прошла инициализация).
На выходе U2/11 проскакивает импульс высокий низкий высокий. А с U3С немного непонятно, на выводе 8 проскакивает какбы сдоенный импульс.
Так и должно быть - по положительному импульсу на каждый перепад входного сигнала.
Прогнать бы инициализацию индикатора и вывод текста в пошаговом режиме. Можно попробовать на свободный порт повесить кнопку и выводить данные по I2C по одному байту по её нажатию, контролируя выходные сигналы. Для этого нужно в прерывание от TWI вставить анализ нажатия/отпускания кнопки. В этом режиме для контроля сигнала на выходе U3C можно увеличить ёмкость С5 хоть до нескольких мкф для более удобного наблюдения импульса.
Serj_K
LQFP144 - On Top Of The Game
Posts: 330
Joined: Thu Dec 09, 2010 12:55 pm
Location: Kyiv, Ukraine

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by Serj_K »

Доделал редактирование таблиц в реальном времени. С последним менеджером работает. Но есть 2 нюанса:
1) не работает импорт данных из файла ЕЕПРОМ так как при чтении ЕЕПРОМ для сохранения происходит сбой. Причина до сих пор не выяснена. Соответственно не работает импорт таблиц из этого файла.
2) в секу-64 редактирование таблиц - функция отключаемая, поэтому для применения изменённой таблицы этот режим нужно включать, а это возможно пока только с блока индикации. Таблицы можно менять при помощи менеджера в ОЗУ, но без включения режима редактирования изменения работать не будут.
Для тех, у кого нет блока индикации, включение режима редактирования временно реализовал из менеджера через функцию "объединение сигналов на одном выходе" (вкладка ДПКВ) - она в секу-64 реализована через параметр компиляции.
sergey-forever
QFP80 - Contributor
Posts: 46
Joined: Fri Mar 11, 2011 2:40 pm

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by sergey-forever »

Компилятор выдает ошибку:
Error[Pe247]: function "timer1_compb_isr" has already been defined (at line 641) C:\Firmware\ckps.c 758
Serj_K
LQFP144 - On Top Of The Game
Posts: 330
Joined: Thu Dec 09, 2010 12:55 pm
Location: Kyiv, Ukraine

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by Serj_K »

Спасибо, пропустил. В строке 758 должно быть timer3_compb_isr. Выше ведь TIMER3_COMPB_vect и ниже CLEARBIT(ETIMSK, OCIE3B);

Как дела с индикатором? Просто я уже не знаю, что делать.
sergey-forever
QFP80 - Contributor
Posts: 46
Joined: Fri Mar 11, 2011 2:40 pm

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by sergey-forever »

Вроде работает, помогла замена конденсатора с5 на 22pF. Я свой дисплей успешно уложил во время экспериментов, теперь заказал новый, скоро должен прийти, тогда и продолжу. Пока подключил 16x2 часть информации отображается корректно. Получается проблема, то была в С5, длине строба E.
Serj_K сможешь на какой нибудь свободный вывод контролера, прицепить управление электробензонасосом, чтоб он при включении зажигания включался на ~5с и выключался, а потом при старте двигателя снова включался?
Serj_K
LQFP144 - On Top Of The Game
Posts: 330
Joined: Thu Dec 09, 2010 12:55 pm
Location: Kyiv, Ukraine

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by Serj_K »

помогла замена конденсатора с5 на 22pF
Что-то совсем мало. Точно 22пФ? Импульс будет совсем короткий. Какой длительности он получился?

Управление бензонасосом прицепить можно. На какой выход лучше - на свободный порт на Х7 или может на неиспользуемый выход КЗ? На Х7 нет буферного силового ключа. Если нет 4-х катушек, то проще задействовать выходы на 3 или 4 катушку - предусмотрен силовой ключ и уже есть штатный выход на разъём. Какая полярность сигнала нужна?
Но лучше осваивай С и наворачивай себе всё что захочеш - резерв заложен.
Кстати, знакомый захотел себе иметь некий эконометр - линейку из 5 светодиодов на приборной панели, отображающих разрежение в карбюраторе. Так что блок индикации я решил дополнить ещё двумя регистрами - один будет про запас.
sergey-forever
QFP80 - Contributor
Posts: 46
Joined: Fri Mar 11, 2011 2:40 pm

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by sergey-forever »

Только что, специально выпаял конденсатор, и померил мультиметром, показывает 27пФ. Если поставить обратно 2,2нФ показывает белиберду. Мой осциллограф не позволяет замерить длину импульса.
Управление бензонасосом лучше прицепить на К3, он все равно свободен, а полярность сигнала, мне кажется, не столь важна. Бензонасос потребляет порядка 2А, по этому его надо подключать через реле.
По С, я уже вторую неделю, читаю умную книгу, но пока туговато.
Serj_K
LQFP144 - On Top Of The Game
Posts: 330
Joined: Thu Dec 09, 2010 12:55 pm
Location: Kyiv, Ukraine

Re: SECU-64 - порт secu-3 на mega-64(128)

Post by Serj_K »

Доработал схему и плату блока индикации и добавил по нему документацию.
Добавил ещё 2 регистра - один будет индицировать расход воздуха на 5 светодиодов (типа эконометр), а второй просто на перспективу, чтоб потом не добавлять.
Post Reply