Никто не сталкивался с Lcd20X4 с пятью "точками" (микросхемами - каплями компаунда) на плате? Приехало несколько штук недавно... неработаютЪ. Адреса по и2с пробил, софт перекомпилировал... кракозябры. Чо за на...х
Помогите с запуском LCD 4x20 по i2c
Сообщений 211 страница 220 из 220
Поделиться2122018-03-01 23:59:05
Никто не сталкивался с Lcd20X4 с пятью "точками" (микросхемами - каплями компаунда) на плате? Приехало несколько штук недавно... неработаютЪ. Адреса по и2с пробил, софт перекомпилировал... кракозябры. Чо за на...х
"Узкоглазый" знакогенератор...
У меня таких два было, правда 16х2, еле применение нашел... 
sasha_1973 выкладывал "Русский на китайских дисплеях" (или что-то типа этого).
Помогает на 99%, т.к. часть символов идет из аглицкого з/к.
Даже после "обрезания" код жрет некисло память - в Мега8 даже без вывода на дисплей было занято уже больше четверти...
Этот способ несомненно хорош, но трудоприменим иногда...
Поделиться2132018-03-02 07:43:40
И диод защитный на ардуине от него задымилсо
Поди потребляют килоампер эти дисплеи
Пайду нажрусь и забуду нафик все языки программирования 
Поделиться2142018-03-03 10:17:02
Ниачкуем, усё пучком! Библу переписал, вроде запустилося всё. 
Поделиться2152018-03-26 22:49:44
Библа то библой, да вот не всё понятно с дисплеями.
Итак, библу переписал полностью, с ней нет необходимости создавать константы типа Pcf_d4 и так далее.
Поправил подсветку - теперь всё работает чики-пуки и ничего не моргает.
А вот теперь самое ИНТЕРЕСНОЕ:
Для чистоты эксперимента запилил два разных дисплея, и адреса и аппаратная часть. Помоему глючить они начинают при процессе сброса или инициализации. Прочитал несколько мануалов от 44780 и от St7066. Процедуры сброса и инициализации не одинаковые, хотя пробовал и то и то - работает, но не с первого раза.
В протеусе то-же самое. Нажмёшь ресет - могут оба экрана заработать, могут и по одному, а могут и оба кракозябрить...
Итого:::
Как убедиться, что шина работает в железе?
Как программно поймать, дошло ли нужное до адресата?
Имеет ли смысл прибавить к библе процедуру опроса Busy Flag???
Поделиться2162018-03-27 20:32:02
Усё! Понял где косяк! Исправил! Теперь прям как в ардуине работает, суточный прогон и ни одной ошибки на ДВУХ дисплеях одновременно! Эврика блее 
Поделиться2172018-03-31 03:23:56
Итак, библу переписал полностью, с ней нет необходимости создавать константы типа Pcf_d4 и так далее
Это всё слова, где исходник ?
Поделиться2182018-03-31 08:01:08
Лови...
Comment = Compiled LIB file, no comment included
copyright = Kent & MardaWin
www = none
email = kent@mardawin.de
comment = NMi I2C LCD driver
libversion = 1.15
date = 2018
statement = Stable work up to 400 kHz of i2c bus.
statement = Soft i2c work >25 delay at 16 mHz CPU.
history = For any China LCD 20*4 on Pcf8574 & 44780 or 7066.
[_Init_LCD]
_Init_LCD:
*lds r0,{lcd_i2c_bl}
.OBJ 920F
.OBJ 2788
.OBJ 2799
*sts {lcd_i2c_bl}, r25
*BASIC: i2cstart
*BASIC: I2cwbyte lcd_i2c_nmi
*BASIC: I2cwbyte _temp1
*BASIC: i2cstop
rcall _Init_LCD_wait
.OBJ E083
Rcall _Write_lcd_nibble
rcall _Init_LCD_wait
.OBJ E083
Rcall _Write_lcd_nibble
rcall _Init_LCD_wait
.OBJ E083
Rcall _Write_lcd_nibble
rcall _Init_LCD_wait
.OBJ E082
Rcall _Write_lcd_nibble
rcall _Init_LCD_wait
.OBJ E288
Rcall _Lcd_Control
rcall _Init_LCD_wait
.OBJ E086
Rcall _Lcd_Control
rcall _Init_LCD_wait
.OBJ E08C
Rcall _Lcd_Control
rcall _Init_LCD_wait
.OBJ E081
Rcall _Lcd_Control
rcall _Init_LCD_wait
.OBJ E082
.OBJ 900F
*sts {lcd_i2c_bl}, r0
Rjmp _Lcd_Control
_Init_LCD_wait:
*BASIC: waitms 100
.OBJ 9508
[END]
[_Write_lcd]
_Write_lcd:
.OBJ E190
rjmp _write_lcd_byte
_Lcd_Control:
.OBJ 2799
_write_lcd_byte:
.OBJ 938F
.OBJ 9582
Rcall _Write_lcd_Nibble
.OBJ 918F
_Write_lcd_nibble:
.OBJ 708F
.OBJ 2B89
_Send_to_LCD:
.OBJ 939F
.OBJ 2F98
.OBJ FB90
.OBJ F984
.OBJ FB91
.OBJ F985
.OBJ FB92
.OBJ F986
.OBJ FB93
.OBJ F987
.OBJ FB94
.OBJ F980
.OBJ 7F89
*lds r25,{lcd_i2c_bl}
.OBJ FB90
.OBJ F983
.OBJ E094
_i2c_send_to_lcd:
*BASIC: i2cstart
*BASIC: I2cwbyte lcd_i2c_nmi
*BASIC: I2cwbyte r24
.OBJ 2789
rcall _i2c_send_to_lcd_w
*BASIC: I2cwbyte r24
.OBJ 2789
rcall _i2c_send_to_lcd_w
*BASIC: I2cwbyte r24
*BASIC: i2cstop
.OBJ 919F
_i2c_send_to_lcd_w:
@genus(200)
.OBJ 9508
[END]
Поделиться2192018-04-01 03:57:20
Лови...
Что лови, русским языком написал ИСХОДНИК, зачем нужен набор скомпилированных команд именуемый библиотекой.
Теперь прям как в ардуине работает, суточный прогон и ни одной ошибки на ДВУХ дисплеях одновременно!
Наверное сам не догадаешься, не забудь пример использования (симуляция + исходник), ну и до компании было-бы совсем не плохо, видео опупительной работы в железе.
Поделиться2202018-05-02 00:35:25
чО тут догадываться то??? Помоему всё просто.
С момента публикации (до этого за пару недель) библа работает и не одного глюка не наблюдалось!!!
Щща задумка сделать АППАРАТНЫМ IIC прям в баскоме, на INT-ах, время буИт, займусь!