Модератор: kvg
Injener.crb писал(а):Вторая микруха М150 на 8 ножек и транзистор 2А (FMMT3906)
Это эмулятор. По идее должен шиться и в Поне как 24с02. Правда, это зависит от производителя эмулятора.
Здесь- http://lapatushka.com/#X90X01 немного другие.
SymbolJet писал(а):Сначала пробуй программировать прямо на разъеме чипа. Контакты - 1- GND, 2 - VCC, 3 - SCL, 4 - SDA. Можно вот так - http://www.postodrom.ru/forum-f7/topic-t102.html . Если контроллер не даст, то надо программировать непосредственно 24с02, отпаяв или отключив хотя бы + от платы.
Injener.crb писал(а):SymbolJet писал(а):А почему 24с04, а не 24с02 (эти хоть по объему одинаковы с ХС01)?
Поясни какая разница?
Gomz писал(а):Injener.crb писал(а):SymbolJet писал(а):А почему 24с04, а не 24с02 (эти хоть по объему одинаковы с ХС01)?
Поясни какая разница?
Разница не только в объёме микрухи, но и ещё в обращении к ней. Микрухи 24с02 читаются(пишутся) по 8-бит, а 24с04 по 16-бит,
Kent писал(а):Gomz писал(а):Injener.crb писал(а):SymbolJet писал(а):А почему 24с04, а не 24с02 (эти хоть по объему одинаковы с ХС01)?
Поясни какая разница?
Разница не только в объёме микрухи, но и ещё в обращении к ней. Микрухи 24с02 читаются(пишутся) по 8-бит, а 24с04 по 16-бит,
Вы уверены в том что написали?Они обе по 8 бит http://www.atmel.com/dyn/resources/prod ... oc0180.pdf
next_bank clrf Page_counter_low
clrf Page_counter_high
;-------- Чтение из микрухи -----------------
next_page call Start_T_uslovie ; старт
movlw 0A1h
movwf BTS
call Send_T_Byte ; посылаем А1 - приём
movlw .7
movwf Buf_counter
movlw 2Ah
movwf FSR
next_byte_rt call Recieve_T_Byte ; принимаем байт
movf RDB,0
movwf INDF ; и сохраяем его по адресу FSR
incf FSR,1
decfsz Buf_counter,1
goto next_byte_rt
bsf I2C_flags,0
call Recieve_T_Byte ; дочитываем последний байт страницы
movf RDB,0
movwf INDF ; и сохраяем его по адресу FSR
Call Stop_T_uslovie ; стоп
#define PAGESIZE 16 // Постраничная запись в байтах
//функция записи всего кода в ПЗУ
void zapis() {
unsigned char i,k;
i=0;
while (i < MASSIV)
{
address = i;
if (flag==0) {
LowDensPageWrite((samsung+i),PAGESIZE);}
else {
LowDensPageWrite((xerox+i),PAGESIZE);}
i=i+0x10;
}
}
А это из библиотеки на которую ссылается функция записи.
void LowDensPageWrite(const unsigned char *data, unsigned char numbytes) //[b] *data -это данные Sam или Xer, а вот numbytes - это PAGESIZE который равен 16 для 24с04 и 8 для 24с02[/b]
{
unsigned char i; // Loop counter
unsigned char temp_control; // Temp. variable for control byte
// Merge block bits with control byte
// temp_control = (control & 0xF1) | ((address >> 7) & 0x0E);
temp_control = control;
bstart(); // Generate Start condition
byte_out(temp_control); // Output control byte
byte_out((unsigned char)address);// Output address LSB
for (i = 0; i < numbytes; i++) // Loop through data bytes
{
byte_out(data[i]); // Output next data byte
}
bstop(); // Generate Stop condition
ACK_Poll(); // Begin ACK polling
} // end LowDensPageWrite(unsigned char *data, unsigned char numbytes)
Вернуться в Картриджи, их заправка и дефекты.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 85