Самодельный передатчик (часть 2)

Tigra74
dollop:

Тоже на такой дисплей смотрю. В Украине теперь только они доступны. ТИКов нет больше. Судя по даташиту дисплей прекрасно работает и по SPI и по I2C. Тут видел пример инициализации и работы с ним на bascom AVR. Но с TIC154 пока не сравнивал.

Этот дисплей я уже заказал
Думаю за месяц управлюсь с прошивкой
Получиться-выложу здесь

Aleksey_Gorelikov
Tigra74:

Думаю за месяц управлюсь

Свистите, думаю поможем управитсья быстрее. 😃

sasas

Для подключения этого надо сильно много проводов. У него не SPI интерфейс.
Такой как раз используется в девятиканалках от хоббикинга и подобных.

Tigra74
sasas:

Для подключения этого надо сильно много проводов. У него не SPI интерфейс.
Такой как раз используется в девятиканалках от хоббикинга и подобных.

Причина-мне его проще купить.
И схему на 9 каналку хотелось бы глянуть -какой там проц?

sasas

Купить-то его действительно проще. Их и на Ebay навалом по бросовой почти цене. Только для подключения нужно задействовать сильно много выводов процессора. В девятиканалках проц тоже АТмега, вроде 64-й, точно не помню.

Tigra74

Нашел схему 9каналки-распечатаю,изучу,и будет видно,с каким дисплеем делать.

Aleksey_Gorelikov

Ну если о таком дисплее думать, то проще уж сразу эту девятиканалку и купить. Отличный корпус, джойстики-крутилки, выключатели-кнопочки +дисплей +готовая плата с процессором - и все это за 50 баксов - по отдельности дешевле точно не выйдет. Странно, что вы этот вариант сразу не рассматривали. И прошивка эта на том железе давно работает. 😃

rcopen.com/forum/f8/topic182549

Tigra74

Та и этот вариант рассматривался.
RDX0154-GC (6у.е)(и подсветку на него тоже взял) уже в пути.
Уже есть схема подключения и наброски в изменение пр-ки.

Tigra74

вопросы по подключению
Графического индикатора RDX0154GC
по дтшиту питание 3.3 вольта —

ATmega128A-AU питание 2.7 - 5.5V по даташиту – и влияет ли оно для этого чипа на максимальную частоту (16 мГц)? -сейчас по схеме 5 в
понизить напряжение до 3.3 в для всей схемы(как будет работать с пониженным напряжением питания ?)
или при 5 вольтах делать питание отдельно на дисплей 3.3 в и по выходам ограничивать амплитуду на дисплей по напряжению?

Tigra74

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

EagleB3
Tigra74:

будем пробовать на практике

См. даташит на ATMEGA128А, Figure 28-2. При напряжении 3,3В фирма гарантирует 10 МГц.

Эксперименты - дело хорошее, но когда вдруг (почему-то все всегда случается вдруг… 😈 ) на 20% уплывет длительность импульсов и период последовательности PPM, эксперименты могут стать делом не только хорошим, но и дорогостоящим…

Уж лучше, КМК, поставить один отдельный Step-Down для питания дисплея. Выходы внутри Atmega не пуллапь на VCC, а для надежности можно добавить по резистору и по стабилитрону в каждую интерфейсную шину (включая Reset)

Tigra74
EagleB3:

См. даташит на ATMEGA128А, Figure 28-2. При напряжении 3,3В фирма гарантирует 10 МГц.

Эксперименты - дело хорошее, но когда вдруг (почему-то все всегда случается вдруг… 😈 ) на 20% уплывет длительность импульсов и период последовательности PPM, эксперименты могут стать делом не только хорошим, но и дорогостоящим…

Уж лучше, КМК, поставить один отдельный Step-Down для питания дисплея. Выходы внутри Atmega не пуллапь на VCC, а для надежности можно добавить по резистору и по стабилитрону в каждую интерфейсную шину (включая Reset)

Спасибо за совет
Примерно так и думаю делать
Для информации я использовал вот этот даташит
Или он неполный,или я не нашёл указанного

EagleB3

Это не даташит, а Summary. Даташит на мегу128А содержит 378 страниц. 😉
Самое верное дело брать их с сайта Атмела, или с иных уважаемых мест - datasheetarchive, alldatasheet и т.п.

RW9UAO

можно запитать мегу от 3,3 вольта, но использовать внешний кварцевый генератор. у меня, кста, проблем не было с набортным кварцевым генератором при 3,3 вольта питании. работали и 12 мгц и 16 мгц кварцы. кварцы, правда индастриал, и процы тоже =)

10 days later
Tigra74

По поводу прошивки для кодера с дисплеем RDX0154-GC
Дисплей купил - сделал под него печатную плату - попробовал изменить под него прошивку - так незнаю с чего начать
(Один маленький плюс -подсветка работает,и всё)

EagleB3
Tigra74:

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

А каковы… Ээээ… Глубины незнания?

Я бы начинал так:

  1. в файле coder.c после инициализации MCU и до инициализации дисплея попищал бы бипером или подрыгал какой-нибудь ногой - чтобы убедиться в том, что камень вообще жив, адекватен и работает. А дальше бы не двигался вообще - поставил бы пустой while, скажем.
  2. в файле coder.c переставил вышеупомянутый пустой while (“затычку”) на “сразу после инициализации дисплея”, и в файле LCD_3320.c (?) курочил бы процедуру инициализации дисплея. При этом добавил бы прямо в нее вывод какого-нибудь символа, чтобы убедиться что дисплей жив, адекватен и работает.

Далее - по обстоятельствам.

Aleksey_Gorelikov

Э… Дим, судя по картинке сверху - интерфейс у дисплея И2С. И может курочить надо не лсд3320.с а аналогичную библиотеку для тик-а? 😃 Удивился, что ты не кинул парню ссылку на свой вариант и не тыкнул в пяток строчек по инициализации дисплея. К томуже ты и меню под большее расширение правил. 😃

Aleksey_Gorelikov

Похоже вся инициализация вот:

I2cstart 'rozpoczęcie transmisji
I2cwbyte &H78
I2cwbyte &HAF 'display ON
I2cwbyte &H81 ’ pot.
I2cwbyte &H60 'na pozycje 100
’ I2cwbyte &HA5 'set all pixel ON
’ I2cwbyte &H01 'column adres
’ I2cwbyte &H10 'column adres
I2cwbyte &HC4 'Lcd control
’ I2cwbyte &HB0 'page adres - numer rzędu
I2cstop

тут подробности www.elektroda.pl/rtvforum/topic1533158-0.html

Tigra74
Aleksey_Gorelikov:

Э… Дим, судя по картинке сверху - интерфейс у дисплея И2С. И может курочить надо не лсд3320.с а аналогичную библиотеку для тик-а? 😃 Удивился, что ты не кинул парню ссылку на свой вариант и не тыкнул в пяток строчек по инициализации дисплея. К томуже ты и меню под большее расширение правил. 😃

С сылками этими я ознакомлен-
щас проверяю схему подключения -
проц. рабочий - проверен на дисплее 3120 с соответствующей прошивкой
Вот рабочий ли дисплей -вот в чём вопрос
Наверное спаяю ещё одну плату кодера для экспериментов -поставлю кварц на 8 мГц и запитаю всю схему на 3.3 в -чтоб проверить дисплей -возможно у меня неправильная схема соединения дисплея(намудрил со стабилитронами и резисторами в цепях)
Вот некоторая информация по RDX0154GC
// для работы с I2C
void I2C_Open (void); // настройка MSSP модуля
void i2c_idle (void); // провекра на готовность I2C к работе
void i2c_stop (void); // формирование стоп
char i2c_start (char adres, char C_D, char R_W); // адрес устройства и управление младшими битами
char i2c_restart (char adres, char C_D, char R_W);
char i2c_write (char data); //запись байта
char i2c_read_ack (void); //чтение с подтвеждением
char i2c_read_noack (void); //чтение без подтеждения

// для работы с индикатором
void int_LCD (void); // инициализация
void clear_LCD (void); // очиска всего дисплея
void curcorG_LCD (char X,char Y); // установка курсора

// вывод строк
void String_LCD(const char *str,char inv,char width,char height,char X,char Y); // , char строка, ширина, высота, центрирование (22 символа в строке)
void Stringp_LCD(const char *str,char inv,char width,char height);

// вывод символа или числа
void symbol_LCD (int cod,char tip,char inv,char shi,char vis);

// бегущая строка
void ticker_LCD (const char *str,char start,char ends,char Y); //с ПЗУ
void tickerB_LCD (char dlinok,char start,char Y); // с озу

// для работы с индикатором графические приметивы
void point (int tip, int X, int Y); // точка
void line(int tip, int x0, int y0, int x1, int y1); // линия
void rectangle (int ugl, int tip,int zal,int tipzal, int x0, int y0, int x1, int y1);//прямоугольник
void strip (int ugl,int tip,int tipzal, int x0, int y0, int sh, int vs, char vol);// линейный индикатор

EagleB3
Aleksey_Gorelikov:

Удивился, что ты не кинул парню ссылку на свой вариант

Я почему-то подумал, что он мои исходники и взял… Ибо оно само напрашивается… Там и отличия какие-то смешные, кажется на один ряд и один (или два?) столбца.
Экран калибровки я вообще сделал с автоматическим расчетом координат по константам WidthS и HeightS. Хотел и все остальное так же сделать, но обломался.
Ограничился тем, что все (кажется, все…) координаты вынес в виде #define в модуль display.c.

Aleksey_Gorelikov

И может курочить надо не лсд3320.с а аналогичную библиотеку для тик-а?

А я LCD_init и LCD_refresh положил как раз в лсд3320, с условной компиляцией (#ifdef TIC_154).

Tigra74:

Наверное спаяю ещё одну плату кодера для экспериментов -поставлю кварц на 8 мГц и запитаю всю схему на 3.3 в

Хозяин-барин, но отлаживаться на Меге128… Шоб я так жил!
Отлаживать I2C можно на любом дешевом камне, хоть на тини. Ресурсов надо каплю, и ног интерфейсных всего 3 штуки…